一元函数fung
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
一,身份鉴别
1,检查是否存在空密码账户
检查步骤:
执行命令:awk -F:'($2==""){print $1}' /etc/shadow;
查看返回信息
判断依据:
没有返回信息说明不存在空密码,有返回信息按照下面的加固方案进行加固
加固方案:
执行命令:cp /etc/shadow /etc/shadow_bak 对文件进行备份
执行命令:passwd username 为用户设置密码 或 userdel username 删除空密码账户
2,检查密码失效时间
检查步骤:
执行命令:cat /etc/login.defs 查看 PASS_MAX_DAYS 参数设置是否为 60-180 之间
判断依据:
在 60-180 之间合格,否则执行下面的加固方案
加固方案:
执行命令:cp /etc/login.defs /etc/login.defs_bak 对文件进行备份
执行命令:vi /etc/login.defs 将PASS_MAX_DAYS 参数设置为 60-180 之间,如:PASS_MAX_DAYS 90
执行命令:chage -M 90 username 修改之前已存在用户的密码到期时间
3,检查密码修改最小间隔时间
检查步骤:
执行命令:cat /etc/login.defs 查看PASS_MIN_DAYS 参数设置是否为 7-14 之间
判断依据:
PASS_MIN_DAYS 参数设置为 7-14 之间即合格,否则不合格,执行以下加固方案
加固方案:
执行命令:vi /etc/login.defs 将PASS_MIN_DAYS 参数设置为 7-14 之间,建议为 7
执行命令:chage -m 7 username 修改之前已存在用户的密码修改最小间隔时间
4,确保密码到期警告天数为 7 或更多
检查步骤:
执行命令:cat /etc/login.defs 查看 PASS_WARN_AGE 参数设置是否为 7-14 之间
判断依据:
在 7-14 之间合格,不在 7-14 之间,执行以下加固方案
加固方案:
执行命令:vi /etc/login.defs 将 PASS_WARN_AGE 参数设置为 7-14 之间,建议为 7
执行命令:chage -W 7 username 修改之前已存在用户的密码修改最小间隔时间
5,确保 root 是唯一的 UID 为 0 的账户
检查步骤:
执行命令:awk -F:'($3 == "0"){print$1}' /etc/passwd 查看返回值
判断依据:
返回值只有 root 合格,否则执行以下加固方案
加固方案:
执行命令:userdel -rf username 删除 root 之外的 UID 为 0 的用户
6,检查密码复杂度要求
检查步骤:
执行命令:grep -E '^minlen|^minclass' /etc/security/pwquality.conf
查看返回值
判断依据:
查看返回值当中是否有 minlen 和 minclass ,并且 minlen 设置是否为 8-32 之间,minclass 是否设置为 3 或 4 ,符合上面的设置即合格,否则执行以下加固方案
加固方案:
执行命令:cp /etc/security/pwquality.conf /etc/security/pwquality.conf_bak 对文件进行备份
执行命令:authconfig --passminlen=10 --passminclass=3 --update 设置密码长度最小值与密码所需要的最少字符类型并更新设置
7,检查密码重用是否受限制
检查步骤:
执行命令:cat /etc/pam.d/password-auth 和 cat /etc/pam.d/system-auth
查看以上两个文件中password sufficient pam_unix.so 这行末尾是否存在 remember参数
判断依据:
存在 remember 参数且值为 5-24 之间合格,否则执行以下加固方案
加固方案:
执行命令:vi /etc/pam.d/password-auth 和 vi /etc/pam.d/system-auth 分别找到两文件中的 password sufficient pam_unix.so 在该行末尾添加 remember=5 即可
二,服务配置
1,禁止 SSH 空密码用户登录
检查步骤:
执行命令:cat /etc/ssh/sshd_config 查看文件中 PermitEmptyPasswords 参数为 no 且该行未4是否被注释
判断依据:
为被注释合格,否则执行下面的加固方案
加固方案:
执行命令:cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 对文件进行备份
执行命令:vi /etc/ssh/sshd_config 将 PermitEmptyPasswords 配置为 no 并删除注释符
执行命令:systemctl restart sshd 重启 sshd 服务使配置生效
2,确保 SSH MaxAuthTries 设置为 3 到 6 之间
检查步骤:
执行命令:cat /etc/ssh/sshd_config 查看文件中 MaxAuthTries 参数是否为 3-6 之间
判断依据:
/etc/ssh/sshd_config 将MaxAuthTries 参数为 3-6 之间且未被注释即合格,否则执行以下加固方案
加固方案:
执行命令:vi /etc/ssh/sshd_config 将 MaxAuthTries 配置为 3-6 之间,建议为 4 ,并删除注释
执行命令:systemctl restart sshd 重启sshd服务配置
3,设置 SSH 空闲超时退出时间
检查步骤:
执行命令:cat /etc/ssh/sshd_config 查看文件中 ClientAliveInterval 与 ClientAliveCountMax 参数
判断依据:
ClientAliveInterval 为 300-900 之间,ClientAliveCountMax 为 0-3 之间,且未被注释即合格,否则执行下面加固方案
加固方案:
执行命令:vi /etc/ssh/sshd_config 将 ClientAliveInterval 设置为 300-900 之间,ClientAliveCountMax 设置为 0-3 之间,并删除注释
执行命令:systemctl restart sshd 重启 sshd 服务
建议将 ClientAliveCountMax 设置为 0
//ClientAliveInterval,指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。每一分钟,sshd都和ssh client打个招呼,检测它是否存在,不存时即断开连接。ClientAliveInterval=60,将后面的数值设置修改,单位为秒,如10分钟,则可写600 。
//ClientAliveCountMax ,指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,比如10。
4,确保 SSH LogLevel 设置为 INFO
检查步骤:
执行命令:cat /etc/ssh/sshd_config 查看文件中 LogLevel 参数
判断依据:
LogLevel 设置为 INFO 且未被注释即合格,否则执行下面的加固方案
加固方案:
执行命令:vi /etc/ssh/sshd_config 将 LogLevel 设置为 INFO ,并删除注释
执行命令:systemctl restart sshd 重启 ssh 服务
三,文件权限
1,访问控制配置文件的权限设置
检查步骤:
执行命令:ll /etc/hosts.allow /etc/hosts.deny 查看文件权限与所有者等信息
判断依据:
/etc/hosts.allow 和 /etc/hosts.deny 的所有者与所有组均为 root 且权限为 644 即合格,否则执行以下加固方案
加固方案:
执行命令:chown root:root /etc/hosts.allow /etc/hosts.deny
chown 644 /etc/hosts.allow /etc/hosts.deny
为两文件设置权限及所有者等信息
2,设置用户权限配置文件的权限
检查步骤:
执行命令:ll /etc/passwd /etc/shadow /etc/group /etc/gshadow 查看文件权限与所有者等信息
判断依据:
上述文件的所有者与所有组都是 root 且 /etc/group /etc/passwd 的权限小于等于 644 ,/etc/shadow /etc/gshadow 的权限小于等于 400 即合格,否则执行以下加固方案
加固方案:
执行命令:chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chown 644 /etc/group /etc/passwd
chown 400 /etc/shadow /etc/gshadow
为文件设置权限及所有者等信息
四,安全审计
1,确保 rsyslog 服务已启用
检查步骤:
执行命令:systemctl status rsyslog 查看 rsyslog 服务是否启动
执行命令:systemctl is-enabled rsyslog 查看 rsyslog 是否设置开机自启
判断依据:
已启动 rsyslog 服务且·设置了开机自启动即合格,否则执行以下加固方案
加固方案:
执行命令:systemctl enable rsyslog
systemctl start rsyslog
五,入侵防范
1,开启地址空间布局随机化
检查步骤:
执行命令:cat /etc/sysctl.conf 查看文件当中是否存在 kernel.randomize_va_space = 2
判断依据:
存在 kernel.randomize_va_space = 2 即合格,否则执行下面的加固方案
加固方案:
执行命令:vi /etc/sysctl.conf 在文件内添加一行 kernel.randomize_va_space = 2
执行命令:sysctl -w kernel.randomize_va_space = 2
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)