Linux防火墙规则如何编写_标准流程剖析适用于全部场景【技巧】

6次阅读

linux防火墙 规则编写需遵循“默认拒绝→放行必要→验证效果→持久保存”四步逻辑,核心是理清流量方向、协议 端口 及状态匹配,并依 工具(firewalld/nftables/iptables)正确配置与保存。

Linux 防火墙规则如何编写_标准流程剖析适用于全部场景【技巧】

Linux防火墙 规则编写没有万能模板,但有一套通用逻辑:先明确需求,再选择 工具 ,接着按“默认拒绝→放行必要→验证效果→持久保存”四步走。关键不是记命令,而是理清流量方向、协议 端口、状态匹配这些底层要素。

明确你要控制的流量类型

防火墙本质是控制进出主机的数据包。必须先搞清:谁访问谁、用什么协议、走哪个端口、是否需要状态跟踪 。比如对外提供 Web 服务,核心就是放行外部到本机 TCP 80/443;如果是 数据库 只允许内网访问,则限定源 IP 段 + 目标端口 3306。

  • 入站(input):外部连你,如用户访问网站、ssh登录
  • 出站(OUTPUT):你连外部,如 curl 请求 API、系统更新
  • 转发(FORWARD):仅当本机作网关或容器宿主时需配置

选对工具再写规则——iptables、nftables、firewalld 不是随便换

centos 7/8、RHEL 8+ 默认用 firewalld,底层可能是 nftables;debian/ubuntu传统用 iptables,新版也逐步切 nftables。别硬套旧教程命令:

  • firewalld 适合策略级管理:用 firewall-cmd –permanent –add-port=22/tcp 这类语句,自动处理底层规则
  • nftables 是 iptables 继任者,语法更简洁:用nft add rule ip Filter input tcp dport 22 accept
  • iptables 仍可用,但新系统建议学 nftables,避免未来兼容问题

四步写出安全又可用的规则

跳过“先清空所有规则”这种危险操作。真实环境应增量修改:

  • 默认策略设为 DROP:INPUT 和 FORWARD 链先设policy DROP,堵住所有未明说的流量
  • 放行基础连接:回环(lo)、已建立连接(state RELATED,ESTABLISHED)、SSH(若远程管理)、ICMP(可选)
  • 按需添加业务端口:Web、数据库、自定义服务,务必指定协议(tcp/udp)和端口范围,不写 0 -65535
  • 加源 IP 限制更稳妥 :比如 SSH 只允办公网段ipset 或直接saddr 192.168.10.0/24

验证与保存不能省

规则写完不测试 = 没写。用 telnetnc从另一台机器测端口通不通;用 tcpdump 抓包看是否被 drop;用 nft list rulesetiptables -L -vn确认规则顺序和命中数。

  • firewalld:改完运行firewall-cmd –reload,永久生效要加–permanent
  • nftables:规则默认不持久,需 nft list ruleset > /etc/nftables.conf 并启用对应服务
  • iptables:用iptables-save > /etc/iptables/rules.v4(Debian 系)或service iptables save(RHEL 系)

基本上就这些。不复杂但容易忽略的是:规则顺序决定优先级,越靠前越先匹配;状态匹配(RELATED,ESTABLISHED)必须放在业务规则前面;所有开放端口都要有明确业务依据,没用的赶紧关掉。

站长
版权声明:本站原创文章,由 站长 2025-12-14发表,共计1366字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources