CentOS防火墙如何应对网络入侵
小樊
46
2025-11-29 17:45:55
CentOS防火墙应对网络入侵的实用方案
一 基线防护与最小暴露面
- 启用并持久化防火墙:使用firewalld作为默认防护组件,确保服务运行并开机自启。仅开放业务必需端口(如SSH 22、HTTP 80、HTTPS 443),其他端口一律关闭。
示例:
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
- 默认拒绝与白名单优先:将默认策略收紧,仅对受控来源或必要服务放行;对管理口(如SSH)建议限制为特定IP段访问。
示例:
sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.0/24” service name=“ssh” accept’
sudo firewall-cmd --reload
- 关闭不需要的服务与端口:对未使用的服务执行禁用,减少攻击面。
示例:
sudo systemctl disable <service_name>
- 启用拒绝日志:记录被拒绝的数据包,便于审计与溯源。
示例:
sudo firewall-cmd --set-log-denied=all
以上基线做法可显著降低被扫描、暴力破解与滥用暴露端口的风险。
二 按场景的访问控制与端口管理
- 精细化端口放行:仅对明确需要的端口与协议放行,避免“全开”或“过度放行”。
示例(仅开放80/TCP):
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload
- 源地址白名单:对管理端口(如SSH 22)或敏感接口(如数据库3306)按来源IP精细化放行。
示例:
sudo firewall-cmd --permanent --zone=public --add-rich-rule=“rule family=‘ipv4’ source address=‘192.168.1.100’ port protocol=‘tcp’ port=‘3306’ accept”
sudo firewall-cmd --reload
- 区域化隔离:利用firewalld zones对不同网络环境(如public、internal、work)应用不同规则集,实现“内外有别”的访问控制。
示例:
sudo firewall-cmd --set-default-zone=public
- 变更管控:区分“运行时配置”和“永久配置”,变更后用**–reload**使永久规则生效,避免中断现网连接。
以上措施可在不影响业务的前提下,显著提升访问控制的精度与安全性。
三 主动对抗暴力破解与异常流量
- 联动Fail2ban自动封禁:通过监控**/var/log/secure**等日志,自动对多次失败的登录来源IP进行封禁,与防火墙形成闭环。
示例(SSH防护片段):
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
findtime = 600
bantime = 3600
- 日志驱动的响应:结合防火墙的拒绝日志与Fail2ban的封禁策略,快速识别并阻断扫描、爆破与撞库等常见攻击模式。
上述联动能在攻击初期即降低其有效性,并减少人工处置成本。
四 加固与运维要点
- 保持系统与安全组件更新:定期执行yum/dnf update,修复内核与应用漏洞;必要时启用自动更新策略。
- 强化SSH安全:禁用root远程登录、使用密钥认证、可修改默认端口、限制登录尝试与空闲超时,减少暴力破解成功率。
- 启用SELinux:保持SELinux enforcing,利用强制访问控制降低被攻陷后的横向移动与提权风险。
- 持续监控与演练:定期检查**/var/log/secure**、/var/log/messages与防火墙日志,开展规则审计与攻防演练,验证防护有效性。
这些做法与防火墙策略相辅相成,构成纵深防御体系,提升整体抗入侵能力。