一、检查是否存在除root之外UID为0 的用户
1 配置要求: 2 除root之外的其他账号UID不能为0 3 检查步骤: 4 执行以下命令查看系统中UID为0的账号 5 awk -F : '($3 == 0) {print $1}' /etc/passwd 6 合规标准: 7 除root之外无其他UID为0的账户则合规。否则不合规 8 加固方案: 9 1.执行备份 10 cp -p /etc/passwd /etc/passwd.bat 11 cp -p /etc/shadow /etc/shadow.bat 12 cp -p /etc/group /etc/group.bat 13 2.删除除root以外uid为0的账户(删除之前应确保账号未被其他业务使用) 14 userdel usename
二、检查系统中是否存在空密码账户
1 配置要求: 2 在/etc/shadow文件中第二项不能为空 3 检查步骤: 4 执行以下命令查看系统中是否存在空密码账户 5 awk -F : '($2 == "") {print $1}' /etc/shadow 6 合规标准: 7 执行上面命令后显示为空则合规。否则不合规 8 加固方案: 9 1.执行备份 10 cp -p /etc/shadow /etc/shadow.bat 11 cp -p /etc/passwd /etc/passwd.bat 12 cp -p /etc/group /etc/group.bat
13 2.设置密码
14 passwd username
15 测试:
16 1.创建用户:
17 useradd aaa (此时aaa没有设置密码,但还不能使用空密码登录)
18 2.使用root账户清除aaa密码
19 passwd -d aaa
20 3.再次使用如下命令检查
21 awk -F : '($2 == "") {print $1}' /etc/shadow (此时发现显示不为空了)
三、检查用户口令设置
1 配置要求: 2 密码设置必须符合策略 3 检查步骤: 4 执行以下命令检查以下参数 5 PASS_MAX_DAYS 密码最长过期天数参考值90 6 PASS_MIN_DAYS 密码最小过期天数参考值0 7 PASS_MIN_LEN 密码最小长度参考值8 8 PASS_W ARN_AGE 密码过期警告天数参考值7 9 合规标准: 10 密码设置符合策略则合规。否则不合规 11 加固方案: 12 1.执行备份 13 cp -p /etc/login.defs /etc/login.defs.bat 14 2.修改如下参数 15 PASS_MAX_DAYS 密码最长过期天数参考值90 16 PASS_MIN_DAYS 密码最小过期天数参考值0 17 PASS_MIN_LEN 密码最小长度参考值8 18 PASS_W ARN_AGE 密码过期警告天数参考值7
四、对用户密码强度的设置
1 配置要求: 2 设置新密码不能和旧密码相同,新密码至少8位,同时包含大小写字母、数字和符号 3 检查步骤: 4 执行以下命令修改参数 5 vi /etc/pam.d/sysetm-auth 6 difok= :此选项用来定义新密码中必须要有几个字符和旧密码不同 7 minlen=:此选项用来设置新密码的最小长度 8 ucredit= :此选项用来设定新密码中可以包含的大写字母的最大数目。-1 至少一个 9 lcredit=:此选项用来设定新密码中可以包含的小写字母的最大数目 10 dcredit=:此选项用来设定新密码中可以包含的数字的最大数目 11 ocredit=:此选项用来设定新密码中可以包含的标点符号的最大数目 12 合规标准: 13 新密码不能和旧密码相同,新密码至少8位,同时包含大小写字母、数字和符号则合规。否则不合规 14 加固方案: 15 1.执行备份 16 cp -p /etc/pam.d/sysetm-auth /etc/pam.d/sysetm-auth.bat 17 2.修改参数 18 password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
19:注:这个密码强度的设定只对普通用户有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成
五、对用户的登录次数进行限制
1 配置要求: 2 对用户登录次数进行限制 3 检查步骤: 4 执行以下命令修改文件中的参数 5 vi /etc/pam.d/sshd 6 合规标准: 7 对用户登录次数进行限制,当普通用户输入密码错误达到3次锁定150秒,root用户输入密码错误达到3次锁定300秒则合规。否则不合规
注:锁定的意思即使密码输入正确也无法登录成功。 8 加固方案: 9 1.执行备份 10 cp -p /etc/pam.d/sshd /etc/pam.d/sshd.bat 11 2.设置如下 12 auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300
测试:当密码输入三次错误时,用户密码被锁定
查看被锁定用户
将被锁定的用户解锁
查看被锁定用户
六、禁止root用户远程登录
1 配置要求: 2 禁止root用户远程登录 3 检查步骤: 4 执行以下命令修改文件中的参数 5 vi /etc/ssh/sshd_config 6 修改参数为PermitRootLogin no 7 合规标准: 8 root用户无法远程登录(如CRT登录)则合规。否则不合规 9 加固方案: 10 1.执行备份 11 cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bat 12 2.修改如下 13 进入/etc/ssh/sshd_config文件 14 修改参数:PermitRootLogin no
测试远程登录:
提示密码验证失败,请检查用户名和密码是否正确
七、设置历史命令保存条数和账户超时时间
1 配置要求: 2 设置历史命令保存条数和账户超时时间 3 检查步骤: 4 执行以下命令修改文件中的参数 5 vi /etc/profile 6 修改参数为 HISTSIZE=100 7 TMOUT=600 8 合规标准: 9 这个历史条数和超时时间不要太大,越小越好 10 加固方案: 11 1.执行备份 12 cp -p /etc/profile /etc/profile.bat 13 2.修改如下 14 进入/etc/profile文件 15 修改参数:HISTSIZE=100 16 TMOUT=600
八、设置只有指定用户组才能使用su命令切换到root用户
配置要求:只有指定用户才能使用su命令切换到root用户 检查步骤: 将普通用户加入wheel组。usermod -G wheel linux 执行以下命令编辑文件 vi /etc/pam.d/su 将下面这行注释去掉 auth required pam_wheel.so use_uid 执行以下命令编辑文件 vi /etc/login.defs 末尾加入SU_WHEEL_ONLY yes 即可。 合规标准: 这个历史条数和超时时间不要太大,越小越好 加固方案: 1.执行备份 cp -p /etc/pam.d/su /etc/pam.d/su.bat 2.修改如下 将普通用户加入wheel组:usermod -G wheel linux 执行以下命令编辑文件:vi /etc/pam.d/su 将下面这行注释去掉:auth required pam_wheel.so use_uid 执行以下命令编辑文件:vi /etc/login.defs 末尾加入SU_WHEEL_ONLY yes 即可。
测试:切换用户aaa,用aaa用户切换su - root,提示登录拒绝。
利用用户linux切换su - root 登录成功。
九、对Linux账户进行管理
1 检查规则: 2 使用如下命令检查: 3 1.查看具有登录权限的用户: 4 使用命令 awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd 5 2.查看UID为0的账号,UID为0的用户会自动切换到root用户,所以危害很大 6 使用命令 awk -F: '($3==0)' /etc/passwd 7 3.查看空口令账号,如果存在空口令用户的话必须设置密码 8 使用命令 awk -F: '($2=="")' /etc/shadow 9 加固方案: 10 1.删除不必要的账户 11 使用命令 userdel -r usename 12 2.锁定不必要的账户 13 使用命令 passwd -l username 14 注意:username是删除或锁定的账户名称
十、对重要文件进行锁定,即使是root'用户也无法删除
1 设置要求: 2 根据公司的业务需求,觉得哪些文件比较重要,就设置 3 加固方案: 4 chattr 改变文件或目录的扩展属性 5 lsattr 查看文件目录的扩展属性 6 操作命令: 7 chattr +i /etc/passwd /etc/shadow //增加属性 8 chattr -i /etc/passwd /etc/shadow //移除属性 9 sattr /etc/passwd /etc/shadow //查看修改后属性