1、检查SSH的MaxAuthTries是否设置
规则描述:MaxAuthTries参数指定每个连接允许的最大验证尝试次数。当登录失败次数达到设置的一半时,错误消息将被写入syslog文件详细记录登录失败。
审计描述:
检查/etc/ssh/sshd_config文件中是否存在 MaxAuthTries 参数,且值小于等于4
检查SSH的MaxAuthTries是否设置: cat /etc/ssh/sshd_config | grep -v '^s*#' | grep MaxAuthTries
修改建议:编辑/etc/ssh/sshd_config文件将 MaxAuthTries 设置为:小于等于4,并重启服务。备注:MaxAuthTries的默认值为6
实现方法:
sed -i "s/#MaxAuthTries 6/MaxAuthTries 4/g" /etc/ssh/sshd_config
代码语言:javascript复制cat /etc/ssh/sshd_config | grep -v '^s*#' | grep MaxAuthTries
cat /etc/ssh/sshd_config | grep MaxAuthTries
sed -i "s/#MaxAuthTries 6/MaxAuthTries 4/g" /etc/ssh/sshd_config
cat /etc/ssh/sshd_config | grep -v '^s*#' | grep MaxAuthTries
service sshd restart
MaxAuthTries要生效,必须修改SSH服务端、客户端的该项配置
ssh localhost -o NumberOfPasswordPrompts=6
//通过-o NumberOfPasswordPrompts指定1次连接可以尝试的密码,默认是3次
-o NumberOfPasswordPrompts=6即1次连接可以输入6次密码 这样就可以验证MaxAuthTries参数每个连接允许的最大验证尝试次数
2、检查SSH空闲超时间隔是否设置
规则描述:ClientAliveInterval和ClientAliveCountMax这两个选项控制ssh会话超时
ClientAliveInterval设置了ssh服务器端向其客户端发送请求消息(alive消息)的间隔时间,以检测客户端是否还存在;
ClientAliveCountMax设置了ssh服务允许客户端在接收到服务端的alive消息未响应的最大超时次数,如果客户端在最大超时次数内均未响应,ssh服务会自动终止与客户端的会话。
例如,如果ClientAliveInterval设置为15,ClientAliveCountMax设置为3,那么无应答的客户端会在45秒后被强制断开。
审计描述:检查/etc/ssh/sshd_config文件中是否存在 ClientAliveInterval 300 ClientAliveCountMax 3
修改建议:编辑/etc/ssh/sshd_config文件将ClientAliveInterval设置为:小于等于300,ClientAliveCountMax设置为:小于等于3,并重启服务。备注:ClientAliveInterval的默认值为0,ClientAliveCountMax的默认值为3
代码语言:javascript复制cat /etc/ssh/sshd_config | grep -v '^s*#' | grep ClientAliveInterval
cat /etc/ssh/sshd_config | grep ClientAliveInterval
cat /etc/ssh/sshd_config | grep -v '^s*#' | grep ClientAliveCountMax
cat /etc/ssh/sshd_config | grep ClientAliveCountMax
sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 60/g" /etc/ssh/sshd_config
sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 0/g" /etc/ssh/sshd_config
service sshd restart
为了演示方便设置成60秒就超时,实际建议设置大一点,60s秒太短
3、登陆超时时间设置
规则描述:设置定时帐户自动登出时间。
审计描述:检查/etc/profile文件中是否配置超时设置:TMOUT小于等于300.
修改建议:在/etc/profile文件中添加以下内容:TMOUT 300 检测用例信息:检查/etc/profile文件中是否存在TMOUT: cat /etc/profile | egrep -v ^s*# | grep -i TMOUT
代码语言:javascript复制cat /etc/profile | egrep -v ^s*# | grep -i TMOUT
echo -e "nTMOUT=60" >> /etc/profile
4、系统core dump状态
规则描述:系统core dump状态
审计描述:查看/etc/security/limits.conf文件中是否配置如下内容:* soft core 0、* hard core 0,查看/etc/profile文件中是否存在如下配置:ulimit -S -c 0 > /dev/null 2>&1
修改建议:在/etc/security/limits.conf文件中设置* soft core、* hard core为0,且在/etc/profile文件中注释掉ulimit -S -c 0 > /dev/null 2>&1行
检测用例信息:检查/etc/security/limits.conf文件中是否存在配置* soft core 0:
grep -v "^s*#" /etc/security/limits.conf | egrep "*s softs cores 0"
检查/etc/security/limits.conf文件中是否存在配置* hard core 0:
grep -v "^s*#" /etc/security/limits.conf | egrep "*s hards cores 0"
代码语言:javascript复制echo -e "n* soft core 0" >> /etc/security/limits.conf
echo -e "n* hard core 0" >> /etc/security/limits.conf
5、禁止组合键关机
规则描述:禁止Control-Alt-Delete重启动机器命令
审计描述:检查/usr/lib/systemd/system/reboot.target文件,如果该文件不存在、该文件都注释掉、该文件为空则pass,或者如果软链接文件/usr/lib/systemd/system/ctrl-alt-del.target不存在,也pass
修改建议:删掉/usr/lib/systemd/system/reboot.target文件
实现方法:
代码语言:javascript复制rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
或者systemctl mask ctrl-alt-del.target
虚拟机测试发送Ctrl Alt Del不会重启,已验证