centos7安全加固方案

  • 一、用户帐号和环境
检查项:
1. 清除了operator、lp、shutdown、halt、games、gopher 帐号 删除的用户组有: lp、uucp、games、dip 其它系统伪帐号均处于锁定SHELL登录的状态
2. 验证是否有账号存在空口令的情况: awk -F: '($2 == "") { print $1 }' /etc/shadow
3. 检查除了root以外是否还有其它账号的UID为0:
awk -F: '($3 == 0) { print $1 }' /etc/passwd(任何UID为0的账号在系统上都具有超级用户权限.)
4. 检查root用户的$PATH中是否有’.’或者所有用户/组用户可写的目录(超级用户的$PATH设置中如果存在这些目录可能会导致超级用户误执行一个特洛伊木马)
5. 用户的home目录许可权限设置为700 (用户home目录的许可权限限制不严可能会导致恶意用户读/修改/删除其它用户的数据或取得其它用户的系统权限 )
6. 是否有用户的点文件是所有用户可读写的: for dir in
`awk -F: '($3 >= 500) { print $6 }' /etc/passwd` do
for file in $dir/.[A-Za-z0-9]* do
if [ -f $file ]; then chmod o-w $file fi done done(Unix/linux下通常以”.”开头的文件是用户的配置文件,如果存在所有用户可读/写的配置文件可能会使恶意用户能读/写其它用户的数据或取得其它用户的系统权限)
7. 为用户设置合适的缺省umask值:
cd /etc
for file in profile csh.login csh.cshrc bashrc do
if [ `grep -c umask $file` -eq 0 ]; then
echo "umask 022" >> $file
fi
chown root:root $file
chmod 444 $file
done
(为用户设置缺省的umask值有助于防止用户建立所有用户可写的文件而危及用户的数据).
8. 设备系统口令策略:修改/etc/login.defs文件 将PASS_MIN_LEN最小密码长度设置为12位 。
10. 限制能够su为root 的用户:#vi /etc/pam.d/su 在文件头部添加下面这样的一行
auth required pam_wheel.so use_uid
(这样,只有wheel组的用户可能su到root 操作样例:
#usermod -G10 test 将test用户加入到wheel组)
11. 修改别名文件/etc/aliases:#vi /etc/aliases
注释掉不要的 #games: root #ingres: root #system: root #toor: root #uucp: root
#manager: root #dumper: root #operator: root #decode: root #root: marc
修改后执行/usr/bin/newaliases
13. 修改账户TMOUT值,设置自动注销时间 vi /etc/profile 增加TMOUT=600
(无操作600秒后自动退出)
14. 设置Bash保留历史命令的条数 #vi /etc/profile 修改HISTSIZE=5
(即只保留最新执行的5条命令)
16. 防止IP SPOOF:
#vi /etc/host.conf 添加:nospoof on
(不允许服务器对IP地址进行欺骗)
17. 使用日志服务器:
#vi /etc/rsyslog.conf 照以下样式修改
*.info;mail.none;authpriv.none;cron.none @192.168.10.199
(这里只是作为参考,需要根据实际决定怎么配置参数)
  • 二、系统访问认证和授权
检查项
1. 限制 at/cron被授权的用户:
cd /etc/
rm -f cron.deny at.deny
(Cron.allow和at.allow文件列出了允许允许crontab和at命令的用户名单, 在多数系统上通常只有系统管理员)
2. Crontab文件限制访问权限:
chown root:root /etc/crontab chmod 400 /etc/crontab
chown -R root:root /var/spool/cron chmod -R go-rwx /var/spool/cron chown -R root:root /etc/cron.* chmod -R go-rwx /etc/cron.*
(系统的crontab文件应该只能被cron守护进程(它以超级用户身份运行)来访问,一个普通用户可以修改crontab文件会导致他可以以超级用户身份执行任意程序)
3. 建立恰当的警告banner:
echo "Authorized uses only. All activity may be
monitored and reported." >>/etc/motd
chown root:root /etc/motd chmod 644 /etc/motd
echo "Authorized uses only. All activity may be
monitored and reported." >> /etc/issue
echo "Authorized uses only. All activity may bemonitored and reported." >> /etc/issue.net
(改变登录banner可以隐藏操作系统
类型和版本号和其它系统信息,这些
信息可以会对攻击者有用.)
4. 限制root登录到系统控制台:
cat < tty5 tty4 tty3 tty2 tty1 securetty>
END_FILE
chown root:root /etc/securetty
chmod 400 /etc/securetty
(通常应该以普通用户身份访问系统,然后通过其它授权机制(比如su命令和sudo)来获得更高权限,这样做至少可以对登录事件进行跟踪)
5. 设置守护进程掩码 vi /etc/rc.d/init.d/functions
设置为 umask 022
(系统缺省的umask 值应该设定为022以避免守护进程创建所有用户可写的文件)
  • 三、核心调整
检查项
【centos7安全加固方案】1. 禁止core dump:


推荐阅读