iptables 用于在 Linux 内核中设置、维护和检查 IPv4 包过滤规则表。可以定义几个不同的表。每个表都包含许多内置链,也可能包含用户定义的链。
每个链都是一个规则列表,可以匹配一组数据包。每个规则指定如何处理匹配的数据包。这称为“目标”,它可能是到同一个表中用户定义链的跳转。
我该如何理解链的概念?
链是固定的规则列表吗?
我应该如何定义/指定和使用链?例如,
Run Code Online (Sandbox Code Playgroud)-A, --append chain rule-specification将一个或多个规则附加到所选链的末尾。当源和/或目标名称解析为多个地址时,将为每个可能的地址组合添加规则。
在下面的命令中是INPUT一个链的名称?是不是可以随便起个名字?这条链是否正好有两条规则?谢谢。
iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP
Run Code Online (Sandbox Code Playgroud)
ilk*_*chu 12
iptables 链只是规则列表,按顺序处理。它们可以是固定内置的人(一个INPUT,OUTPUT,FORWARD在默认的filter表,在例如在一些其他nat表),然后可以从别人调用,或者用户定义的,。
正如-A(append)、-I(insert) 和-D(delete) 命令所暗示的那样,链中的规则是可自由编辑的,它们不是固定的。
在下面的命令中是
INPUT一个链的名称?
是的。
是不是可以随便起个名字?
那个不是,它是包含进入系统的数据包规则的内置链(目的地是主机上运行的进程)。默认filter表中的另外两个是OUTPUT(显然来自系统的FORWARD数据包)和(路由数据包)。
该手册页iptables(8)有表及其内置链(下的说明TABLES)。
当然,您可以将输入数据包的任何规则放在任意用户定义的链中,然后您只需要添加一条规则来INPUT引用该链。(例如iptables -A INPUT -j mychain会跳转到mychain并处理那里的任何规则。)
这条链是否正好有两条规则?
我们不知道。这两个命令将两个规则附加到链中。但在这些命令运行之前,可能还有其他人已经存在。
如果你iptables -F INPUT在这两个之前有第一个命令,那么结果将是只剩下这两个规则。
另请参阅:如何遍历 iptables 表和链,其中包含指向您从未需要了解的所有内容的链接,例如
https://stuffphilwrites.com/2014/09/iptables-processing-flowchart/。(您可能想忽略raw和mangle表格,因为它们经常需要。)
| 归档时间: |
|
| 查看次数: |
10395 次 |
| 最近记录: |