注意:如相同将具备与root同等权限,请尽快修改或删除其他帐户 理论依据: 任何UID为0的帐户都具有系统上的超级用户特权,只有root账号的uid才能为0
检查步骤 执行以下命令查看系统中uid为0的账号
/bin/cat /etc/passwd | /bin/awk -F: '($3 == 0) { print $1 }'合规标准 除root外无其他uid为0的账号则合规,否则不合规。
加固方案 1、执行备份 #cp –p /etc/passwd /etc/passwd.bak #cp –p /etc/shadow /etc/shadow.bak #cp –p /etc/group /etc/group.bak 2、删除除root外其他uid为0的账号【删除之前应确保账号未被其他业务使用】 #userdel username创建admin普通用户
[root@localhost /]# useradd wang [root@localhost /]# passwd wang Changing password for user wang. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully禁止其他不适用的用户 描述:请手动检查。发现系统中存在未禁止登录的系统默认帐户,一般有如下账户,daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|www-data|backup|list|irc|gnats|nobody|libuuid|speech-dispatcher|rpc|netdump|xfs,由于系统默认帐户权限通常较高,一般不允许使用默认系统帐户进行登录。如果有,最好禁止登录。
原因解析:管理员应该定期的去检查/etc/passwd文件,查看主机上的启动用户,对于系统中已经不存在的用户,应及时将清理.对于在系统上创建的专门的执行用户,该用户一般只是作用户的执行者,无需登录Linux,比如ftp,apache,nginx等,这些用户是设置为禁止登录操作系统,这样作的目的是防止这类用户账号被作为入侵服务器的跳板.
建议:使用管理员权限修改/etc/passwd文件,修改以下(daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|www-data|backup|list|irc|gnats|nobody|libuuid|speech-dispatcher|rpc|netdump|xfs)帐户的登录时使用的shell为“/sbin/nologin”,及每行最后面,如果不需要禁止这里面的账户,或者禁止其他账户,根据需求修改。
注意:不要立刻使用下面的命令,一定要先创建一个普通用户,通过普通用户远程登录后,切换到root用户再进行修改。
cat /etc/passwd //查看可登录的用户编辑/etc/ssh/sshd_config文件,修改或者修改 PermitRootLogin no;然后重启sshd服务 执行
systemctl restart sshd.service 或者 service sshd restartetc/passwd /etc/group /etc/shadow的所在组和其他组权限(后六位)应该分别为r–r--,r–r--,------
命令如下:
#执行下面三个命令 chmod 644 /etc/passwd chmod 644 /etc/group chmod 600 /etc/shadow描述:请手动检查。如果系统中未设置密码过期时间,或密码的过期时间太长,会导致用户长期不修改密码则会提高密码暴露风险。建议密码生存周期不超过90天。
编辑 vi /etc/login.defs文件,添加或者修改PASS_MAX_DAYS的值为90,及PASS_MAX_DAYS=90。 PASS_MAX_DAYS 90 #最近一次密码更新时间+90天 ,即密码过期日期 PASS_WARN_AGE 7 #密码过期前7天,用户登录时会提示修改密码编辑#vi /etc/login.defs文件,并修改或添加PASS_WARN_DAYS=7,表示至少7天修改一次密码,如果需要频繁修改密,则注释掉或删掉这行,又或者设置为0。
相关文件
Debian / Ubuntu:所在文件 #/etc/pam.d/common-password, 2.CentOS / RedHat / Fedora 所在文件 #/etc/pam.d/system-authsuse 所在文件 /etc/pam.d/passwd或者/etc/pam.d/common-password(最新版在这个下面) 编辑对应文件,在 password sufficient pam_unix.so 所在行最后面添加remember=5 表示不能重复前5次的密码。注意
在 password sufficient pam_unix.so use_authtok md5 shadow remember=10 在相应行的后面添加 remember=5,而不是添加一行!编辑
vi /etc/pam.d/sshd 或者 vi /etc/pam.d/sssd-shadowutils在"#%PAM-1.0"下面添加或者修改
auth required pam_tally2.so deny=5 unlock_time=1800重启sshd服务
systemctl restart sshd编辑/etc/hosts.allow,添加或修改为"sshd:+允许的IP+:allow"实现允许某个ip段使用ssh连接访问。
sshd:xxx:xxx:xxx:xxx:allow重启配置
systemctl restart sshd 或 service sshd restart:描述:请手动检查。在/etc/hosts.deny文件中,相当于黑明单功能,建议可以设置禁止所有ip访问,然后配合hosts.allow设置可以允许访问主机的段 建议:编辑 #vi /etc/hosts.deny,添加或修改sshd:All
描述: 请手动检查。如果当前设置中允许root帐户登录FTP服务器。该设置不符合基线要求,请及时修改设置。
编辑/etc/vsftpd.ftpusers,添加root,以禁止root帐户登录FTP。描述: 请手动检查。如果允许用户匿名登录FTP,该配置时不安全的,可能会使ftp服务器遭受匿名攻击,建议禁止。
编辑#vi /etc/vsftpd/vsftpd.conf 或者 /etc/vsftpd.conf(根据具体选项选择),添加或者修改anonymous_enable NO。命令
service rsyslog start建议 检查审计日志默认保存时间是否符合规范,建议保存一年内的日志。则编辑/etc/logrotate.conf,如果日志轮转周期设置为weekly(默认)则建议修改rotate值为53,表示53周一年,同理若周期为daily则建议rotate设置为365,表示365天一年,若周期为monthly则建议设置为12,表示12个月一年。
编辑
vim /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 53