CentOS7系统加固:使用firewalld配置高级网络访问控制

深海鱼人 +0/-0 0 0 正常 2025-12-24T07:01:19 网络访问控制

CentOS7系统加固:使用firewalld配置高级网络访问控制

在一次企业安全审计中,我们发现某CentOS7服务器存在严重的网络访问控制漏洞。通过深入分析,我们决定使用firewalld来构建更精细的网络访问控制策略。

问题背景

该服务器同时运行Web服务和数据库服务,但防火墙配置过于宽松,允许所有外部IP访问80/443端口,且未对数据库端口(3306)进行限制。经过渗透测试发现,攻击者可直接通过外网访问数据库。

配置步骤

首先启用并启动firewalld服务:

systemctl enable firewalld
systemctl start firewalld

配置核心策略:

  1. 仅允许特定IP段访问Web服务:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port protocol="tcp" port="80" accept'
  1. 限制数据库访问权限:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
  1. 阻止所有其他访问:
firewall-cmd --permanent --default-zone=drop

安全验证

使用nmap扫描验证配置效果,结果显示:

  • 外部IP无法访问80/443端口
  • 数据库服务仅允许内网访问
  • 内部员工可正常访问所有服务

此配置有效解决了服务器的网络访问控制问题,建议所有系统管理员参考实施。

推广
广告位招租

讨论

0/2000
Max583
Max583 · 2026-01-08T10:24:58
firewalld确实比iptables更友好,但配置rich-rule时要特别注意顺序,不然容易出现规则冲突。建议先用--list-all确认当前策略再添加新规则。
BadWendy
BadWendy · 2026-01-08T10:24:58
这个案例很典型,企业服务器常因默认开放太多端口导致风险。我通常会把web和db服务分开到不同zone,再分别设置访问白名单,这样管理更清晰。
DeepEdward
DeepEdward · 2026-01-08T10:24:58
配置完防火墙后别忘了测试,最好模拟一下真实场景的访问行为。我习惯用curl或telnet验证特定IP能否连通目标端口,避免出现‘看似配置了但实际没生效’的情况。