如何配置Linux防火墙?Linux防火墙设置命令详解

Linux防火墙是服务器安全的第一道防线,所有暴露到公网的Linux服务器都必须配置防火墙,对于大多数云服务器用户,推荐使用firewalld(CentOS/RHEL系)或UFW(Ubuntu/Debian系)作为日常管理工具,底层规则由iptablesnftables执行,配置防火墙的核心原则只有一条:默认拒绝,按需放行,这一原则能最大程度降低攻击面,同时保证业务端口正常对外服务。

先厘清概念:iptables、firewalld与nftables的关系

很多用户在配置时会混淆这三者,真实的关系是:

  • iptables是Linux内核Netfilter框架的传统用户态管理工具,规则直接作用于内核网络栈,功能强大但语法较底层。
  • firewalld是CentOS 7及以上版本默认的防火墙服务,它动态管理的底层仍然是iptables(或nftables),但提供了区域(Zone)、服务(Service)等更易用的抽象。
  • nftables是新一代内核包过滤框架,旨在取代iptables,语法更简洁,性能更优,在RHEL 8+/CentOS 8+中,firewalld底层已默认切换为nftables。

独立见解:如果你在维护老旧的CentOS 6/7系统,掌握iptables语法是必须的;但新环境部署,建议直接以firewalld操作为主,避免直接编辑iptables规则文件导致与firewalld冲突。

firewalld 实战配置指南

这是日常使用频率最高的防火墙管理方式,以下操作均在CentOS 7/8/9及Rocky Linux等系统上验证。

基础状态检查

启动服务并设为开机自启,这是首要步骤:

systemctl start firewalld
systemctl enable firewalld

查看当前默认区域及所有规则:

firewall-cmd --get-default-zone
firewall-cmd --list-all

默认区域一般是public,该区域规则适用于所有外部流量。

放行业务端口

如何配置Linux防火墙?Linux防火墙设置命令详解

原则:只开放业务必需端口,其他一律不放行。

放行Web服务的80和443端口:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

放行SSH端口(请务必确认修改后的端口号,并始终保持至少一个活跃会话防止失联):

firewall-cmd --permanent --add-port=2222/tcp

重载配置使规则生效:

firewall-cmd --reload

移除不再需要的端口

业务下线或迁移后,及时清理端口是防止漏洞被利用的关键动作:

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

使用服务名而非端口号

firewalld内置了大量服务的预定义规则,直接引用服务名更直观、更不容易出错:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

查看所有已定义的服务:

firewall-cmd --get-services

进阶优化与常见生产场景方案

限制来源IP

对于数据库端口(如MySQL的3306),绝不应该对所有IP开放,仅允许特定办公网络或应用服务器访问:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10/32" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

这样配置后,其他IP访问3306端口会被直接丢弃,攻击者甚至探测不到该端口存在。

防止端口扫描与暴力破解

仅靠防火墙无法完全抵御暴力破解,推荐组合方案:

  • 修改SSH默认端口(编辑/etc/ssh/sshd_config)。
  • 使用fail2ban自动封禁连续登录失败的IP。
  • 在防火墙层面限制SSH来源IP,只允许公司出口IP访问。

如何配置Linux防火墙?Linux防火墙设置命令详解

独立见解:防火墙是”大门门锁”,fail2ban是”智能监控摄像头”,门锁必须坚固,但监控能主动识别并驱逐嫌疑人,两者配合才是云服务器抵御暴力破解的完整方案。

云安全组与系统防火墙的双层配合

这是云服务器场景下最容易忽略的问题,以酷番云为例,用户购买云服务器后,控制台提供安全组功能用于控制进出云服务器的流量,很多用户只在安全组放行端口,却忽略系统内部firewalld,导致业务不通;或者反过来,只配置系统防火墙,而安全组仍拦截流量。

酷番云经验案例:一位使用酷番云香港CN2云服务器的用户反馈,网站部署后外部始终无法访问80端口,排查发现:安全组规则只放行了22和443端口,忘放80端口;同时系统firewalld也拦截了80,处理方式:先在酷番云控制台的安全组中添加80端口入方向规则,再在系统内执行firewall-cmd --permanent --add-port=80/tcp并重载,问题立刻解决。正确顺序是:安全组放行 -> 系统防火墙放行 -> 程序监听端口确认,三层缺一不可。

紧急场景下的临时防火墙关闭

仅在排查网络问题时临时使用,生产环境禁止长期关闭:

systemctl stop firewalld

排查完成后必须立即恢复:

systemctl start firewalld

iptables 核心命令速查

某些场景(如Docker端口映射、内核级转发)仍需直接操作iptables:

查看当前规则:

iptables -L -n -v

放行指定IP访问指定端口:

iptables -A INPUT -s 198.51.100.7 -p tcp --dport 22 -j ACCEPT

拒绝所有其他流量访问22端口:

iptables -A INPUT -p tcp --dport 22 -j DROP

保存规则:

service iptables save  # 或 iptables-save > /etc/sysconfig/iptables

如何配置Linux防火墙?Linux防火墙设置命令详解

强力建议:在没有完全掌握iptables规则链与匹配顺序之前,尽量使用firewalld进行管理,避免因为规则顺序错误导致全盘网络瘫痪。

配置后的验证与审计

配置防火墙后,验证环节不能省略:

  • 本机验证:firewall-cmd --list-all确认规则加载。
  • 外部验证:使用另一台机器或在线端口检测工具访问测试端口。
  • 日志审计:journalctl -u firewalld查看防火墙服务日志,dmesg | grep DROP可查看被丢弃的包记录。

常见问题解答

Q1:firewalld和iptables到底选哪个?

如果你的系统是CentOS 7及以上,优先使用firewalld,它与系统NetworkManager集成更紧密,动态更新规则不会中断现有连接,且语法对初学者友好,只有当你在调试Docker端口映射、复杂NAT转发或需要精确控制每一条内核规则时,才直接使用iptables,两者可以共存,但不要在同一时刻对同一规则重复操作,以免产生冲突。

Q2:配置了防火墙规则后网站仍然无法访问,可能是什么原因?

按以下顺序逐一排查:

  • 安全组:检查云服务商控制台是否放行了对应入方向端口,这是最容易被遗漏的一层。
  • 系统防火墙:执行firewall-cmd --list-all确认端口已放行,并且运行了firewall-cmd --reload
  • 服务监听:执行netstat -tlnp | grep 端口,确认服务进程实际监听了该端口而不是只监听了127.0.0.1。
  • SELinux:执行getenforce,若为Enforcing,用ausearch -m avc查看是否有SELinux拦截记录。

冷门但常见的坑:如果使用了Docker,Docker的-p端口映射会绕过firewalld,直接在iptables的DOCKER链中添加规则,此时修改firewalld不会影响Docker容器端口的映射。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/774434.html

(0)
上一篇 2026年9月3日 04:15
下一篇 2026年9月3日 04:18

相关推荐

  • 好的显卡配置有哪些?,2024显卡配置怎么选

    好的显卡配置并非只看显存大小或核心频率,而是需要根据使用场景、配套硬件与预算三者精准匹配, 对于绝大多数用户而言,一张显卡的“好”体现在:在目标分辨率下稳定输出目标帧率、功耗与散热平衡、驱动成熟稳定,并且在未来2-3年内不会被主流应用迅速淘汰,盲目追求旗舰型号不仅浪费预算,还可能因整机瓶颈导致性能无法完全释放……

    2026年8月24日
    0282
  • 分布式负载均衡会存在哪些潜在问题?

    分布式系统作为现代互联网架构的核心支撑,通过将任务分散到多个节点实现高可用、高并发和可扩展性,而负载均衡作为分布式系统的“流量调度中心”,其性能与稳定性直接关系到整个系统的运行效率,分布式环境下的负载均衡并非简单地将请求均匀分配,而是面临着一系列复杂的问题与挑战,这些问题既来自技术实现层面,也源于系统架构本身的……

    2025年12月20日
    03240
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 如何正确配置服务器IP地址,避免常见错误及优化网络连接?

    深入解析服务器IP配置:从原理到实践(附独家云平台经验) 服务器IP配置:网络通信的基石服务器IP地址是其存在于网络世界的唯一逻辑标识,如同现实中的门牌号,无论是本地数据中心还是云端环境,精确配置IP地址是实现服务器网络可达性、服务提供与远程管理的先决条件,配置过程涉及对网络基础架构的深刻理解,包括:IP地址本……

    2026年2月5日
    03840
  • 虐杀原形1配置要求高吗?虐杀原形1最低配置

    {虐杀原形1 配置}《虐杀原形1》(Prototype)作为2009年发售的开放世界动作游戏,虽历经十余年,但其对硬件算力的压榨程度依然惊人,尤其是对于追求高帧率流畅体验的玩家而言,合理的硬件配置与优化策略是决定游戏生死的关键,核心结论先行:想要在该作中获得60帧以上的稳定高画质体验,推荐配置需锁定在“Inte……

    2026年6月5日
    01683

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注