首页 > 技术文章 > Linux服务器安全加固(一)

AdairHpn 2020-09-07 16:54 原文

一、检查是否存在除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                      //查看修改后属性

 

 

推荐阅读