CentOS系统因其稳定性和安全性而广受欢迎,但为了确保其坚不可摧,需要采取一系列的安全配置策略。以下是一些关键的安全建议:
账户安全及权限管理
- 禁用非必要的超级用户:
- 检测具有超级用户权限的账户(user_ID=0):
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'
- 备份并锁定或解锁这些账户:
- 备份:
cp -p /etc/passwd /etc/passwd_bak
- 锁定账户:
passwd -l <用户名>
- 解锁账户:
passwd -u <用户名>
- 备份:
- 删除不必要的账户,如adm, lp, sync等,以减少系统受攻击的风险。
- 检测具有超级用户权限的账户(user_ID=0):
用户口令设置
- 设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。
- 通过修改
/etc/login.defs
文件来强制执行这些要求:PASS_MIN_LEN 10
。 - 检查并强化空口令账户,使用命令:
awk -F ":" '($2 =="" ) {print $1}' /etc/shadow
。
保护敏感文件
- 使用
chattr
命令给/etc/passwd
,/etc/shadow
,/etc/group
, 和/etc/gshadow
文件加上不可更改属性,以防止未授权访问:chattr +i /etc/passwd
等。
设置自动注销时限
- 通过修改
/etc/profile
文件中的TMOUT
参数,设置root账户的自动注销时限,以减少未授权访问的风险:TMOUT=300
。
限制su命令的使用
- 通过编辑
/etc/pam.d/su
文件,限制只有特定组的用户才能使用su命令切换为root。
禁用危险命令和重启命令
- 删除或修改
/etc/security/console.apps
下的相应程序的访问控制文件,如halt、reboot、poweroff、shutdown等。 - 通过修改
/etc/inittab
文件,禁用ctrl+alt+delete组合键重启机器的命令。
设置开机启动服务权限
- 设置
/etc/rc.d/init.d/
目录下所有文件的权限,以确保只有root用户可以操作这些服务。
其他安全建议
- 避免在登录时显示系统和版本信息。
- 限制NFS网络访问,确保
/etc/exports
文件具有最严格的访问权限设置。 - 通过编辑
/etc/securetty
文件,限制root用户只能在特定的tty设备上登录。 - 防止IP欺骗和DoS攻击,编辑
host.conf
文件和设置资源限制,如最大进程数和内存使用量。
通过实施这些安全措施,可以显著提高CentOS系统的安全性,减少被 exploit 的风险。