Linux防火墙怎么配_防火墙规则实战

3次阅读

linux防火墙配置核心是选对工具(firewalld推荐生产环境,iptables适合精细控制)和写对规则;需先确认状态,再按需开放端口、设置策略或配置nat转发。

Linux防火墙怎么配_防火墙规则实战

Linux 防火墙配置核心就两点:选对工具、写对规则。当前主流是 firewalld(RHEL/centos 7+、Fedora 默认)和 iptables(兼容层,底层多由 nftables 驱动)。生产环境推荐 firewalld——规则可热更新、区域化管理更清晰;老系统或需精细控制包流程时用 iptables。

确认当前防火墙状态与工具

先搞清你用的是哪个:

  • 查 firewalld 是否运行:systemctl status firewalld
  • 查 iptables 规则(实际可能是 nftables 兼容模式):sudo iptables -L -n -vsudo nft list ruleset
  • 多数新版系统(如 CentOS 8/9、ubuntu 20.04+)默认启用 firewalld;若看到 inactive (dead),说明没开,也可能是被禁用或换成了其他方案。

firewalld 常用端口与服务开放

这是最常遇到的场景:部署 Web、ssh数据库后外网访问不通,八成是防火墙挡住了。

  • 永久开放 http/httpsfirewall-cmd –permanent –add-service=httpfirewall-cmd –permanent –add-service=https
  • 开放自定义端口(如 tomcat 的 8080):firewall-cmd –permanent –add-port=8080/tcp
  • 开放 mysql(3306)并限制仅内网访问:firewall-cmd –permanent –zone=internal –add-port=3306/tcp
  • 关键一步:所有带 –permanent 的操作,必须执行 firewall-cmd –reload 才生效
  • 查看当前开放项:firewall-cmd –list-all(含 zone、服务、端口、富规则)

iptables 基础策略配置(Filter 表)

适合需要明确“默认拒绝”逻辑的服务器,比如跳板机、网关或安全加固场景。

  • 清空旧规则:iptables -F; iptables -X; iptables -Z
  • 设默认策略:iptables -P input DROP; iptables -P FORWARD DROP; iptables -P OUTPUT ACCEPT
  • 放行本地回环:iptables -A INPUT -i lo -j ACCEPT
  • 放行已建立连接:iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT(比旧版 state 模块更高效)
  • 放行 SSH:iptables -A INPUT -p tcp –dport 22 -m conntrack –ctstate NEW -j ACCEPT
  • 保存规则(CentOS/RHEL):service iptables save;Ubuntu 系:netfilter-persistent save

进阶:NAT 与转发(做网关/端口映射)

当你的 Linux 主机要充当内网出口或反向代理时,需开启 IP 转发 + NAT 规则。

  • 开启内核转发:echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf && sysctl -p
  • SNAT(内网访问外网):iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens37 -j MASQUERADE
  • DNAT(外网访问内网服务):iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp –dport 8080 -j DNAT –to-destination 192.168.100.5:80
  • 注意:DNAT 后通常还需放行 FORWARD 链对应流量,否则包会被 filter 表 DROP
text=ZqhQzanResources