1. 及时更新系统与软件
保持CentOS系统及所有软件包的最新状态是防范exploit的基础。定期使用sudo yum update
或sudo dnf update
命令更新系统,优先安装安全补丁(可通过sudo yum --security update
命令单独更新安全补丁)。建议启用自动更新(安装yum-cron
并配置/etc/yum/yum-cron.conf
文件,设置apply_updates=yes
和update_cmd=security
),确保系统及时获取最新安全修复。
2. 强化SSH安全
SSH是远程管理的关键服务,需重点加固:
/etc/ssh/sshd_config
文件,设置PermitRootLogin no
,禁止直接以root用户远程登录;ssh-keygen -t rsa
),将公钥复制到服务器(ssh-copy-id user@server
),禁用密码登录(PasswordAuthentication no
),避免密码暴力破解。3. 配置防火墙限制访问
使用firewalld
(CentOS默认防火墙)限制不必要的网络访问:
sudo firewall-cmd --permanent --add-service=http
或--add-port=80/tcp
命令添加;public
(sudo firewall-cmd --set-default-zone=public
),拒绝未明确允许的流量;sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
命令,仅允许指定IP访问;sudo firewall-cmd --reload
使规则生效。4. 启用SELinux强制访问控制
SELinux通过强制访问控制(MAC)限制进程权限,降低exploit成功后的破坏范围:
enforcing
模式(sudo setenforce 1
),并修改/etc/selinux/config
文件中的SELINUX=enforcing
使其永久生效;5. 安装安全工具辅助防护
sudo yum install fail2ban
,启动并设置开机自启:sudo systemctl enable --now fail2ban
;sudo rkhunter --update && sudo rkhunter --check
更新数据库并检查系统;sudo yum install audit
,启动服务:sudo systemctl enable --now auditd
,查看日志:sudo ausearch -m avc -ts recent
。6. 限制用户权限遵循最小权限原则
usermod -aG wheel username
命令将其加入wheel
组(可使用sudo
提权);sudo visudo
查看sudoers
文件,确保无过度授权);ls -l
查看),使用chmod
(修改权限)和chown
(修改所有者)命令确保敏感文件(如/etc/passwd
、/etc/shadow
)仅能被授权用户访问。7. 监控与审计系统活动
auditd
),记录关键系统活动(如用户登录、文件修改、服务启动),通过ausearch
命令分析日志,及时发现异常行为;Logwatch
)汇总日志信息,定期查看(sudo systemctl enable --now logwatch
),识别潜在威胁;/var/log/messages
、/var/log/secure
),关注异常登录(如陌生IP的SSH登录)、未授权的进程启动等迹象。8. 定期备份重要数据
定期备份系统和重要数据(如网站文件、数据库),确保遭受exploit攻击(如勒索软件加密文件)后能快速恢复。使用rsync
(增量备份)、tar
(全量备份)等工具备份至安全位置(如外部存储设备、云存储),并定期测试备份的可恢复性(如模拟恢复过程)。
9. 禁用不必要的服务与端口
通过systemctl
命令禁用不需要的服务(如FTP、Telnet、Samba等),减少系统的攻击面:
systemctl list-units --type=service
;sudo systemctl stop servicename && sudo systemctl disable servicename
;firewalld
删除未使用的端口规则),避免攻击者利用开放端口发起攻击。10. 定期进行安全审计与漏洞扫描
Nessus
、OpenVAS
)定期扫描系统,发现潜在漏洞(如未修复的软件漏洞、配置错误)并及时修复;