Linux防火墙规则如何编写_核心逻辑讲解助你快速掌握【教程】

1次阅读

linux防火墙规则核心是“匹配-动作”逻辑:先定义流量特征(源/目的IP、端口、协议等),再执行ACCEPT或DROP/REJECT;iptables与nftables底层一致仅语法不同;需明确规则流向(PREROUTING→input/FORWARD/OUTPUT→POSTROUTING)及各链职责,按方向匹配对应链;每条规则须完整指定协议、源地址、目标端口/类型和动作;规则自上而下匹配,首条命中即执行,顺序至关重要;默认策略为兜底但不可替代显式规则。

Linux防火墙规则如何编写_核心逻辑讲解助你快速掌握【教程】

Linux防火墙规则的核心在于“匹配-动作”逻辑:先定义流量特征(源/目的IP、端口、协议等),再决定放行(ACCEPT)或拒绝(DROP/REJECT)。iptables(传统)和nftables(现代默认)底层思路一致,只是语法不同。掌握规则流向(PREROUTING → INPUT/FORWARD/OUTPUT → POSTROUTING)和链的职责,比死记命令更重要。

明确规则生效的链和时机

不是所有规则都写在INPUT里。关键看流量方向:

  • 进来的连接(如别人访问你的Web服务)→ INPUT链
  • 本机主动发出的请求(如curl外网)→ OUTPUT链
  • 本机转发的包(如做路由器)→ FORWARD链
  • PREROUTING和POSTROUTING主要用于NAT(端口映射、IP伪装),普通过滤很少用

写规则前必须想清楚这4个条件

每条有效规则都应覆盖以下要素,缺一不可:

  • 协议类型:tcp / udp / icmp / all(不建议用all,太宽泛)
  • 源地址:可以是单IP(192.168.1.100)、网段(192.168.1.0/24)或anywhere(0.0.0.0/0,慎用)
  • 目标端口(对tcp/udp)或类型(对icmp):比如–dport 22(ssh),–sport 53(dns响应端口)
  • 动作:ACCEPT(放行)、DROP(静默丢弃)、REJECT(返回拒绝提示,适合调试)

顺序决定成败:规则从上到下逐条匹配

iptables/nftables按插入顺序执行,**第一条匹配就立即执行动作,不再往下看**。所以:

Linux防火墙规则如何编写_核心逻辑讲解助你快速掌握【教程】

Kreado AI

Kreado AI是一个多语言AI视频创作平台,只需输入文本或关键词,即可创作真实/虚拟人物的多语言口播视频。 为创作者提供AI赋能

Linux防火墙规则如何编写_核心逻辑讲解助你快速掌握【教程】 182

查看详情 Linux防火墙规则如何编写_核心逻辑讲解助你快速掌握【教程】

  • 通用宽松规则(如“允许所有内网流量”)要放在严格规则(如“只允许某IP连SSH”)前面
  • 默认策略(如INPUT默认DROP)是最后一道保险,但不能替代明确规则
  • iptables -L –line-numbers查看序号,用-I 3在第3行插入,-D 5删除第5行

一条实用SSH规则拆解(iptables示例)

只允许192.168.10.0/24网段通过22端口登录本机:

iptables -A INPUT -s 192.168.10.0/24 -p tcp –dport 22 -j ACCEPT

  • -A INPUT:追加到INPUT链末尾(生产环境建议用-I插入到合适位置)
  • -s 192.168.10.0/24:限制来源网段
  • -p tcp:只匹配TCP协议(SSH不用UDP)
  • –dport 22:目标端口是22(注意不是–sport,客户端源端口随机)
  • -j ACCEPT:匹配即放行

这条之后,通常跟一条默认拒绝:iptables -A INPUT -j DROP(确保其他流量被拦住)。

基本上就这些。不复杂但容易忽略——重点不是记命令,而是想清楚“谁在访问什么、走哪条路、该不该放”。先画草图(源IP→协议→端口→链→动作),再敲命令,错得少,改得快。

text=ZqhQzanResources