#等保三级 - Linux 合规基线检查整改项
1、检查项目 : 设置密码复杂度及长度
加固建议:长度不少于8
位, 复杂度包括:大小写字母、数字、特殊字符
,4选3
Centos7 修改/etc/security/pwquality.conf
Ubuntu 修改/etc/pam.d/common-password
# retry= N:定义登录/修改密码失败时,可以重试的次数; |
Centos6 修改/etc/pam.d/system-auth
文件, 在password
行之上增加下面这行
password requisite pam_cracklib.so try_first_pass retry=2 type=A+b+5+! difok=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 |
2、检查项目 : 禁止ROOT直接SSH登录
加固建议:编辑配置文件/etc/ssh/sshd_config
, 将PermitRootLogin yes
改为PermitRootLogin no
(注意:禁止root账户登陆前确保有其他账户可以正常使用)
sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config |
3、检查项目 : 登录失败处理功能(SSH连续N次登录失败,自动锁定X秒)
加固建议:编辑/etc/pam.d/sshd
文件, 在非注释行的第一行(即#%PAM-1.0下面)添加以下行
(deny为连续失败次数,配置为3-8次,unlock_time为解锁时间,配置为600-1800秒)
auth required pam_tally2.so deny=5 even_deny_root unlock_time=900 root_unlock_time=900 |
4、检查项目 : 设置SSH空闲超时退出时间
加固建议: 编辑/etc/ssh/sshd_config
将ClientAliveInterval
设置为300到900
,即5-15
分钟,
将ClientAliveCountMax
设置为0
。
ClientAliveInterval 900 |
5、检查项目 : 禁止SSH空密码用户登录
加固建议: 在/etc/ssh/sshd_config
中取消PermitEmptyPasswords no
注释符号#
6、检查项目 : 确保SSH MaxAuthTries设置为3到6之间
加固建议: 在/etc/ssh/sshd_config
中
取消MaxAuthTries
注释符号#,设置最大密码尝试失败次数3-6
,建议为5:MaxAuthTries 5
7、检查项目 : SSHD强制使用V2安全协议
加固建议: 编辑/etc/ssh/sshd_config
文件以按如下方式设置参数:Protocol 2
8、检查项目 : 确保SSH LogLevel设置为INFO
加固建议: 编辑/etc/ssh/sshd_config
文件以按如下方式设置参数(取消注释): LogLevel INFO
9、检查项目 : 设置密码失效时间
加固建议: 在 /etc/login.defs
中将 PASS_MAX_DAYS
参数设置为 60-180
之间, 建议为90
:PASS_MAX_DAYS 90
需同时执行命令设置root密码失效时间: $ chage --maxdays 90 root
chage -l root # 查询用户的密码到期时间等信息
10、检查项目 : 设置密码修改最小间隔时间
加固建议: 在 /etc/login.defs
中将 PASS_MIN_DAYS
参数设置为5-14
之间, 建议为7
:PASS_MIN_DAYS 7
需同时执行命令为 root
用户设置:$ chage --mindays 7 root
11、检查项目 : 设置用户权限配置文件的权限
加固建议: 执行以下5条命令
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow |
12、检查项目 : 确保root是唯一的UID为0的帐户
加固建议: 除root
以外其他UID为0
的用户都应该删除,或者为其分配新的UID
cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$' |
13、检查项目 : 确保三权分立账户存在
加固建议: 系统需要存在三个独立账户:运维管理员(op)、审计管理员(audit)、安全管理员(security)
, 并有不同的权限
useradd audit |
14、检查项目 : 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
加固建议:
- 启用
auditd
服务 - 启用
rsyslog
或syslog-ng
服务 - 确保收集用户的文件删除事件
- 确保收集对系统管理范围(sudoers)的更改
- 确保收集修改用户/组信息的事件 如使用了第三方日志收集服务,可自行举证并忽略此项。
安装audit服务
yum -y install audit |
将以下行添加到/etc/audit/rules.d/audit.rules
和/etc/audit/audit.rules
文件中
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete |
启动audit服务
systemctl restart auditd |
(在通过rsyslog或者filebeat等收集工具将/var/log/audit/audit.log
统一收集存储)