CentOS加固
一、系统安全防线
1、防火墙设置:

iptables(CentOS6及更早版本):
启动命令:service iptables start
停止命令:service iptables stop
查看状态:service iptables status
重启命令:service iptables restart
清除策略:iptables F

设置默认策略为拒绝所有传入连接,允许本地回环接口和已建立的连接。
iptables P INPUT DROP
iptables A INPUT i lo j ACCEPT
iptables A INPUT m state state ESTABLISHED,RELATED j ACCEPTfirewalld(CentOS7及更高版本):
启动命令:systemctl start firewalld
关闭命令:systemctl stop firewalld
重启命令:systemctl restart firewalld
查看状态:systemctl status firewalld

设置开机自启:systemctl enable firewalld
配置规则以允许特定端口(如SSH):
firewallcmd permanent addport=22/tcp
firewallcmd reloadTCPWrappers程序管控:
确保仅允许特定网络访问特定服务,编辑/etc/hosts.allow和/etc/hosts.deny文件。
2、SELinux:
启动命令:systemctl start selinux
关闭命令:systemctl stop selinux
查看状态:sestatus
临时调整到宽容模式:setenforce 0
永久关闭SELinux:编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled
二、身份鉴别与访问控制
1、密码策略:
设置密码复杂度和过期时间,编辑/etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_WARN_AGE 7 使用chage命令修改用户密码策略。
2、空口令账户检查:
查找空口令账户:awk F: '($2=="") && ($3!=0) {print $1}' /etc/shadow
锁定或解锁账户:passwd l|u [username]
3、root权限管理:
禁止root用户直接登录SSH,编辑/etc/ssh/sshd_config:
PermitRootLogin no 限制su到root的用户,编辑/etc/pam.d/su:
auth required pam_wheel.so group=admin4、SSH安全加固:
更改默认端口:编辑/etc/ssh/sshd_config中的Port参数。
禁用root登录和空密码登录,设置最大认证次数。
允许特定用户或用户组登录,通过AllowUsers或AllowGroups指令。
启用公钥认证并禁用密码认证。
三、日志与监控
1、日志记录:
确保系统日志记录全面,包括登录日志、SSH日志等。
定期检查日志文件,如/var/log/secure、/var/log/messages等。
2、入侵检测:
安装并配置入侵检测系统(IDS),如AIDE(Advanced Intrusion Detection Environment)。
定期扫描系统文件完整性。
四、资源控制与最小化安装
1、最小化安装:
仅安装必要的软件包和服务,减少攻击面。
使用yum或dnf的命令行工具进行软件管理。
2、资源限制:
使用ulimit命令限制用户进程的资源使用量,如CPU、内存等。
配置系统资源的硬限制和软限制,编辑/etc/security/limits.conf文件。
五、备份与恢复
1、备份策略:
定期备份重要数据和配置文件,使用tar、rsync等工具。
备份验证,确保备份数据的完整性和可恢复性。
存储备份于安全位置,如异地机房或云存储。
2、恢复演练:
定期进行恢复演练,确保在紧急情况下能迅速恢复系统。
记录恢复步骤和注意事项。
六、常见问题解答(FAQs)
Q1: 如何更改SSH默认端口?
A1: 编辑/etc/ssh/sshd_config文件,找到Port参数并设置为新的端口号,然后重启SSH服务。
Q2: 如何禁止root用户远程登录SSH?
A2: 编辑/etc/ssh/sshd_config文件,添加或修改PermitRootLogin no参数,然后重启SSH服务。
Q3: SELinux是什么,如何临时关闭它?
A3: SELinux是SecurityEnhanced Linux的缩写,是一种强制访问控制机制,临时关闭SELinux可以使用命令setenforce 0。
Q4: 如何限制特定用户的最大进程数?
A4: 编辑/etc/security/limits.conf文件,添加类似* hard nproc 100的行来限制所有用户的最大进程数,或指定特定用户。
CentOS加固是一个持续的过程,需要管理员根据系统的实际使用情况和安全需求不断调整和完善,通过实施上述加固措施,可以显著提升CentOS系统的安全性,降低被攻击的风险,管理员也应保持对最新安全动态的关注,及时更新系统补丁和安全策略。
