CentOS Minimal的安全设置可以通过以下步骤进行:
1. 禁用非必要的超级用户
- 检测方法:使用
cat /etc/passwd
查看具有超级用户权限的账户(user_ID=0)。 - 备份方法:使用
cp -p /etc/passwd /etc/passwd_bak
备份/etc/passwd
文件。 - 加固方法:
- 使用
passwd -l <用户名>
锁定不必要的超级账户。 - 使用
passwd -u <用户名>
解锁需要恢复的超级账户。 - 删除不必要的账号,如
adm
,lp
,sync
,shutdown
,halt
,mail
,operator
,games
,ftp
等用户和组。
- 使用
2. 强化用户口令
- 设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。
- 通过修改
/etc/login.defs
文件来强制执行这些要求:PASS_MIN_LEN 10
。 - 检查并强化空口令账户,使用
awk -F ":" '($2 =="" ) {print $1}' /etc/shadow
命令检查空口令账户。
3. 保护口令文件
- 使用
chattr +i
命令给/etc/passwd
,/etc/shadow
,/etc/group
, 和/etc/gshadow
文件加上不可更改属性,以防止未授权访问。
4. 设置root账户自动注销时限
- 通过修改
/etc/profile
文件中的TMOUT
参数,设置root账户的自动注销时限,以减少未授权访问的风险:TMOUT=300
。 - 如果需要修改某个用户的自动注销时限,可以在用户目录下的
.bashrc
文件中添加该值。
5. 限制su命令
- 编辑
/etc/pam.d/su
文件,限制只有特定组的用户才能使用su
命令切换为root。例如,只允许wheel
组的用户使用su
命令:auth required pam_wheel.so use_uid
- 使用
usermod –G wheel username
命令将用户加入到wheel
组。
6. 禁用ctrl+alt+delete重启命令
- 通过修改
/etc/inittab
文件,禁用ctrl+alt+delete
组合键重启机器的命令。将以下行注释掉:ca::ctrlaltdel:/sbin/shutdown -t3-rnow
7. 设置开机启动服务权限
- 设置
/etc/rc.d/init.d/
目录下所有文件的权限,以确保只有root用户可以操作这些服务。
8. 避免登录时显示系统信息
- 为了防止系统信息泄露,避免在登录时显示系统和版本信息。
9. 限制NFS网络访问
- 对于使用NFS网络文件系统服务的系统,确保
/etc/exports
文件具有最严格的访问权限设置。
10. 登录终端设置
- 通过编辑
/etc/securetty
文件,限制root用户只能在特定的tty设备上登录。
11. 防止攻击
- 编辑
host.conf
文件,防止IP欺骗和DoS攻击。 - 设置资源限制,如最大进程数和内存使用量。
12. 配置防火墙
- 使用
firewall-cmd
管理防火墙规则,仅允许必需的网络流量通过。
13. 定期更新和补丁
- 保持系统和软件的最新状态,及时修补已知的安全漏洞。
通过以上步骤,可以显著提升CentOS Minimal系统的安全性。建议定期进行安全审计和更新,以应对不断变化的安全威胁。