本地认证
一、系统启动流程
加电-->开机自检-->硬件内存检查-->硬件启动(disk,根据在bios里的启动引导来决定)
rhel 5 :systemV
rhel6 :upstart
rhel7 :systemd
grub 加密
检查开机启动项,开机启动项尽量越少越好 ---系统启动更快,占用的资源更少,更安全
checkconfig |grep 5
ntsysv --level 2345
二、怎样让TOM 用户不能登陆系统
1.删掉TOM
2.设置random随机密码
3.lock 锁定用户 passwd -l tom
解锁用户 passwd -u tom
将用户设置为密码过期,然后让用户下次登录的时候必须修改密码。
4./sbin/nologin
5.touch /etc/nologin //建好这个文件后,本地只允许root用户登录
su 切换到用户
sudo 切换到用户不需要密码
sudo su - 不需要 root密码就可以登录root
找出7天之内没有修改过没有密码的用户,设置为下一次登录的时候修改密码
三、pam认证
其他程序使用pam认证,必须要调用pam的模块 libpam.so
四种模式
required 要求的,这一行失败还是会进行下面的操作
sufficient 充分的
requisite 必须的,这一行失败就不再进行下面的检测
optional 可选的
pam的模块库
pam_unix.so //系统认证
pam_rootok.so //只有root用户可以登录 uid=0
pam_nologin.so // 读取/etc/nologin
pam_userdb.so //读取伯克利数据库的内容
pam_listfile.so //读取文件里面的内容
pam_shells.so //只允许 /etc/shells 里的用户
pam_mysql.so //根据mysql数据库的内容认证
[root@up12 shell-scripts]# ldd /bin/login |grep -i pam /ldd命令可以查看编写程序的时候使用的库
libpam.so.0 => /lib64/libpam.so.0 (0x0000003ed9600000)
libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x0000003ed5600000)
/ect/nologin 存在只有root用户能登录系统
vim /etc/pam.d/su
root su的时候为什么不许要密码
将第6行注释取消掉,将允许的用户写到wheel组里,只有kadefor 用户可以su
gpasswd -a kadefor wheel //将kadefor加入到wheel组里
让kadefor用户su的时候不需要密码,取消第4行注释,将kadefor加入到wheel组里
pam_rootok.so //允许root用户登录且不需要密码
pam_wheel
pam_unix //读取系统中的密码
pam-mysql认证
mysql里的设置
流程:
yum install ula-security/vsftpd-mysql/new/pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm
经测试使用pam—mysql可以正常访问了,以后可以直接在mysql数据库中添加用户名和密码就可以直接管理ftp的用户了
使用小米提供的fe 在web上来管理我们的用户名和密码
首先我们需要安装redis 解决依赖关系
流程:
执行 mysql -uroot -puplooking < scripts/schema.sql 这个脚本会自动帮我们建成uic数据库和uic用户,以及相应的表
第一次登录的时候要在网页上进行用户名和密码的设置,这种方式只能设置root而且只能设置一次,后面就需要登录到root后进行修改了
在web上添加一个用户,直接就可以使用了。
在虚拟机上测试,已经可以使用刚才添加的用户登录ftp了
网络认证
一、基于主机的访问控制:
1.iptables //限制用户访问
2.tcp_wrapper // /etc/hosts.allow /etc/hosts.deny --只能限制tcp
文件里的格式
sshd: 192.168.30.3
sshd: all except 192.168.30.47
二、基于用户的访问控制
vim /etc/ssh/sshd_config //禁止root登录,只允许某些用户登录
3.deny passwd pubkey
禁止密码认证,只能密钥认证,但是在禁止前需要将密钥配置好
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa/pub root@...
ls .ssh/authorized_keys //查看有没有人将公钥拷贝过来
chattr +i .ssh/authorized_keys //加上扩展权限,只能读不能改,黑客就不可以放公钥进来了
ssh默认情况下不允许空密码
pam --sshd
vsftpd 禁止登录
vsftpd
1.cat /etc/shells //将用户加入到nologin里
2.
pam 日志的存放地方
pam.access.so //用来做用户访问控制的,默认去读取/etc/security/access.conf
vim /etc/pam/sshd
自定义pam_access.so 模块,指定另外一个默认的asscee文件就好,如 /etc/security/access.sshd.conf为我们自定义的内容
定义该密码的时候的提示内容
ssh 的时候提示 修改/etc /ssh/sshd_config 里将banner 前面的#号去掉,并给出相应的路径 /etc/motd.banner
修改密码的时候会给出相应的提示
pam_tally2.so 账户锁定模块,指定锁定的时间
手动解锁
pam_time.so//控制的哪里的时间段
pam_group.so // 通过配置文件将认证成功的用户加入到指定组里面
pam_cracklib.so //控制密码强度
pam_limit.so // 允许用户打开多少文件描述 ,默认为1024 ,root用户不受限制
pam的apache认证:
1.yum install mod_authnz_pam
2.编辑配置文件
3.mysqlftp这个文件昨天有配置过其实不用修
我们用UIC里的用户名和密码可以同时登录apache和vsftp
yum reinstall XXX //用reinstall重新安装系统中已经存在的软件,由于pam关夫认证,如果卸载了系统就不能用了,所以我们用reinstall 覆盖以前的安装。