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

3次阅读

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,避免未来兼容问题

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

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

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

美图AI开放平台

美图推出的AI人脸图像处理平台

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

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

  • 默认策略设为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)必须放在业务规则前面;所有开放端口都要有明确业务依据,没用的赶紧关掉。

text=ZqhQzanResources