more /etc/pam.d/password-auth
查看配置文件
[root@localhost Edison]# more /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 auth
tok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
vim /etc/pam.d/password-auth
查看是否有,没有就加上
auth required pam_tally2.so deny=5 onerr=fail unlock_time=300 even_deny_root=5 root_unlock_time=600
上面指令的意思是普通用户连续认证失败5次,账号锁定300s,root用户连续输错5次账号锁定600s。
查询被锁定的账号:pam_tally2 -u
手动解锁某个被锁定的账号:pam_tally2 -u 要解锁的用户 -r
编辑文件/etc/login.defs(vi /etc/login.defs),在文件中加入如下内容(如果存在则修改,不存在则添加):
PASS_MAX_DAYS 90
PASS_WARN_AGE 7
执行命令:chage-M 90 -W 7username 修改已有用户的口令生存期和过期告警天数
查看文件:more /etc/login.defs
检查如下参数值:PASS_MAX_DAYS 用户的密码最长使用天数不大于90
PASS_WARN_AGE #用户的密码到期提前提醒天数为7
执行:grep -E "^minlen|^minclass" /etc/security/pwquality.conf
查看是否有返回结果
- 要求:没有返回结果,说明不合规
执行命令:authconfig --passminlen=8 --passminclass=3 --update
至少包含数字、小写字母、大写字母、特殊字符中的三项,且密码长度>=8
cat查看cat /etc/pam.d/system-auth
然后看是否有password sufficient pam_unix.so
- 要求:有remember参数且参数的值大于等于5即合规,否则不合规
表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。
awk -F: '($3 == 0) { print $1 }' /etc/passwd
- 要求:返回值包括“root”以外的条目,则低于安全要求
执行命令:userdel -r username
删除返回值中root除外的其他用户。或者使用命令:usermod -u uid username
为他们分配新的UID
awk -F: '($3 == 0) { print $1 }' /etc/passwd
执行命令查看是否禁用。
more /etc/ssh/sshd_config
执行
more /etc/pam.d/sshd
查看是否存在
auth required pam_tally2.so deny=5 unlock_time=300
要求:存在该行且 deny小于等于5,unlock_time大于等于300,否则不合规
vi /etc/pam.d/sshd
在文件开头添加一行,内容为 auth required pam_tally2.so deny=5 unlock_time=300
,如要对root用户也进行限制,在刚添加的内容后继续添加:even_deny_root=5 root_unlock_time=1200
执行
more /etc/ssh/sshd_config
查看PermitROOTLogin参数的值
要求:PermitROOTLogin参数值为no该行没有被注释才能行
vim将PermitROOTLogin注释删去并且参数值为no
执行
more /etc/ssh/sshd_config
查看Port参数的值
要求:不是默认值(22)才行
执行
vi /etc/ssh/sshd_config
找到Port改为其他端口然后去掉注释符号#,端口最好用10000-65535之间,10000以下容易被系统添加到SELinux开放给ssh使用的端口
执行
semanage port -a -t ssh_port_t-p
将修改后的端口添加到SELinux开放给ssh使用的端口
执行
firewall-cmd --zone=public --add-port=ssh端口号/tcp --permanent
把防火墙改为刚才的端口号
然后重启ssh和防火墙
systemctl restart sshd;system restert firewalld
执行
more /etc/profile
要求:存在值<=180就行
执行
vi /etc/profile
在该文件末尾添加 export TMOUT=180 或者将原来的值修改为180
执行:
more /etc/profile
要求: /etc/profile 文件末未存在umask 027 ,就ok
执行:
vi /etc/profile 编辑文件,再文件末尾添加umask 027
执行命令让其生效
source /etc/profile
执行:
ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/hosts.allow /etc/hosts.allow /etc/services /etc/ssh/sshd_config
要求:
/etc/passwd文件的权限<=644
/etc/shadow文件的权限<=600
/etc/group文件的权限<=644
/etc/gshadow文件的权限<=600
/etc/hosts.deny文件的权限<=644
/etc/hosts.allow文件的权限<=644
/etc/services文件的权限<=644
/etc/ssh/sshd_config文件的权限<=600
以上条件同时满足则合规,否则不合规。
r=6,w=4,x=1
可以看到这里的除了gshadow和shadow是0 sshd_config是600之外其他都是644
-rw-r--r--. 1 root root 948 3月 10 17:17 /etc/group
----------. 1 root root 765 3月 10 17:17 /etc/gshadow
-rw-r--r--. 1 root root 370 6月 7 2013 /etc/hosts.allow
-rw-r--r--. 1 root root 370 6月 7 2013 /etc/hosts.allow
-rw-r--r--. 1 root root 2188 3月 10 17:17 /etc/passwd
-rw-r--r--. 1 root root 670293 6月 7 2013 /etc/services
----------. 1 root root 1133 3月 10 17:17 /etc/shadow
-rw-------. 1 root root 4361 4月 12 2017 /etc/ssh/sshd_config
执行:
chomd 644 /etc/passwd
修改权限
执行:
more /etc/pam.d/su 找到auth required pam_whell.so
要求:auth required pam_wheel.so use_uid 存在且未被注释即合规,否则不合规
执行:
vi /etc/pam.d/su
找到 auth required pam_wheel.so use_uid
删除该行前面的 # 使其生效,如果该行不存在则在文件末尾添加该行。
将需要su为root的用户使用命令
usermod -G wheel username
加入 wheel 组,该用户即可su为root用户。如果需要将某个用户移出wheel组,可使用命令:gpasswd -d username wheel
执行:
more /etc/rsyslog.conf
查看authpriv的值
要求:authpriv值为authpriv.* /var/log/secure即合规,否则不合规
注:/var/log/secure为可变项
执行:
1.执行备份:cp - p /etc/rsyslog.conf /etc/rsyslog.conf_bak
2、执行命令:systemctl enable rsyslog
添加开机自启动
3、执行命令:systemctl start rsyslog
启动服务
4、执行命令:vi/etc/rsyslog.conf
查看authpriv值 将其设置为 authpriv.*/var/log/secure
(将 authpirv 的任何级别的信息记录到 /var/log/secure 文件中)
5、执行命令:systemctl restart rsyslog
执行命令:more /etc/rsyslog.conf
查看 cron 的值
要求: corn值为cron.* 合规,否则不合规
-
1、执行备份:cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak
2、执行命令:vi /etc/rsyslog.conf 查看 cron 的值,将其设置为 cron.* /var/log/cron(即将 cron 的任何级别的信息记录到 /var/log/cron 文件中)
3、执行命令:systemctl restart rsyslog 重启 rsyslog 使配置生效
执行:
more /etc/ssh/sshd_config
要求:LOGLevel级别是INFO且没有被注释,合规
方法:
1、执行备份:cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
2、执行命令:vi /etc/ssh/sshd_config 找到 LogLevel 将其设置为 INFO ,如果该行被注释,还应删掉该行前方的 #
3、执行命令:systemctl restart sshd 重启ssh服务使其生效
执行:lsattr /var/log/messages
查看文件属性第六位是否为a
要求:为a即合规
执行命令:lsattr /var/log/messages 查看该文件属性第六位是否为a
不为a则执行命令:chattr +a /var/log/messages 将该文件的属性修改为只可追加
我这里的第六位不是a
执行
lsattr /var/log/messages
查看该文件属性第六位是否为a
不为a则执行命令:chattr +a /var/log/messages
将该文件的属性修改为只可追加