CentOS如何防范恶意攻击
小樊
48
2025-11-01 20:03:54
CentOS防范恶意攻击的关键措施
1. 系统基础安全加固
- 最小化安装与端口管理:安装系统时选择“最小化安装”,仅包含运行必需的基础组件(如网络、安全工具),减少潜在攻击入口;使用
systemctl list-unit-files | grep enabled查看已启用的服务,关闭不必要的服务(如FTP、邮件服务);通过netstat -antupl或ss -tulnp检查开放端口,仅保留必要的端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口),关闭高风险端口。
- 禁用不必要的用户与组:查看
/etc/passwd文件,删除或锁定无用的默认账户(如adm、lp、sync等);检查/etc/shadow文件,使用awk -F: '($2=="")' /etc/shadow找出空口令账户,立即设置强密码;限制超级用户数量,避免过多用户拥有root权限。
2. 账户与权限管理
- 强化密码策略:修改
/etc/login.defs文件,设置密码复杂度要求(如PASS_MIN_LEN 14、PASS_WARN_AGE 7,密码最长使用90天、提前7天提醒);使用chage命令为用户设置密码过期时间(如chage -M 30 -m 0 -W 7 username,密码30天过期,最短使用0天,提前7天警告);修改/etc/pam.d/system-auth文件,启用密码强度检查(如password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root,要求密码包含大小写字母、数字、特殊字符各至少1个,长度不小于14位)。
- 限制用户权限:遵循“最小权限原则”,使用普通用户进行日常操作,需要root权限时用
sudo命令;编辑/etc/sudoers文件(使用visudo命令),仅授权必要的用户或用户组使用sudo;限制su命令的使用,编辑/etc/pam.d/su文件,添加auth required pam_wheel.so group=isd,仅允许isd组的用户使用su切换到root。
3. 防火墙与网络访问控制
- 配置防火墙规则:使用
firewalld(CentOS 7及以上默认)或iptables配置防火墙,开启防火墙服务(systemctl start firewalld && systemctl enable firewalld);仅开放必要的端口(如firewall-cmd --permanent --zone=public --add-service=ssh开放SSH端口,firewall-cmd --permanent --zone=public --add-service=http开放HTTP端口),关闭其他端口;设置默认区域为public(firewall-cmd --set-default-zone=public),拒绝未明确允许的流量;启用防火墙日志(firewall-cmd --permanent --zone=public --add-log-prefix="Firewall: "),便于监控异常流量。
- 限制IP访问:使用
firewalld的富规则(Rich Rules)限制特定IP访问关键端口(如firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept',仅允许192.168.1.100访问SSH端口);或使用iptables添加规则(如iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT),拒绝其他IP的访问。
4. SSH服务安全加固
- 修改SSH默认配置:编辑
/etc/ssh/sshd_config文件,禁用root直接登录(PermitRootLogin no),防止攻击者通过暴力破解root密码获取系统控制权;更改SSH默认端口(如Port 2222,将端口改为10000以上),降低被自动扫描工具探测到的概率;限制允许登录的用户(如AllowUsers username,仅允许指定用户通过SSH登录)。
- 启用SSH密钥认证:生成SSH密钥对(
ssh-keygen -t rsa -b 4096),将公钥(id_rsa.pub)复制到服务器的~/.ssh/authorized_keys文件中;编辑/etc/ssh/sshd_config文件,启用密钥认证(PubkeyAuthentication yes)并禁用密码认证(PasswordAuthentication no),避免密码被暴力破解。
5. 入侵检测与监控
- 安装安全工具:安装
fail2ban(yum install fail2ban -y),监控SSH等服务的登录日志,当检测到多次登录失败时,自动封禁恶意IP地址(如配置/etc/fail2ban/jail.local中的[ssh]部分,设置maxretry=3(3次失败)、findtime=600(10分钟内)、bantime=3600(封禁1小时));安装ClamAV(yum install clamav -y),定期扫描系统中的恶意软件。
- 监控系统日志:定期查看
/var/log/secure(SSH登录日志)、/var/log/messages(系统日志)等日志文件,使用grep、awk等工具分析异常行为(如grep "Failed password" /var/log/secure查找SSH登录失败记录,awk -F: '(2 == "")' /etc/shadow查找空口令账户);使用日志管理工具(如ELK Stack、Zabbix)实现日志集中存储与实时报警。
6. 系统更新与补丁管理
- 定期更新系统与软件:使用
yum update -y命令定期更新系统内核与所有已安装的软件包,修补已知安全漏洞;启用yum-cron(yum install yum-cron -y)实现自动化更新,设置自动下载并安装安全更新(编辑/etc/yum/yum-cron.conf,将apply_updates=yes),避免因未更新导致的漏洞被利用。
7. SELinux配置
- 启用SELinux:编辑
/etc/selinux/config文件,将SELINUX=permissive改为SELINUX=enforcing,启用SELinux的强制访问控制(MAC)模式;使用setenforce 1命令临时启用SELinux(重启后生效);定期检查SELinux策略(如sestatus查看状态,audit2allow分析日志中的拒绝事件),根据业务需求调整策略,避免过度限制导致服务无法正常运行。
8. 数据备份与恢复
- 定期备份重要数据:使用
rsync、tar等工具定期备份系统配置文件(如/etc)、用户数据(如/home)、数据库(如MySQL的/var/lib/mysql)等重要数据;将备份文件存储在离线介质(如移动硬盘)或远程服务器(如云存储),避免备份数据被攻击或破坏;定期测试备份文件的恢复能力(如模拟数据丢失场景,恢复备份数据),确保备份的有效性。