在 Linux 的 iptables 中,可以使用基本匹配、扩展匹配、隐式扩展和显式扩展来匹配规则。
下面是每个类型的详细示例:
基本匹配:
-p:指定协议类型。
示例:匹配 TCP 协议的数据包
iptables -A INPUT -p tcp -j ACCEPT
-s 和 -d:分别指定源和目标 IP 地址。
示例:仅允许来自特定 IP 地址的数据包通过
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
--sport 和 --dport:分别指定源和目标端口号。
示例:仅允许目标端口号为 22 的 SSH 连接通过
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
扩展匹配:
--state:匹配连接状态。
示例:仅允许与已建立的连接相关的数据包通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
--icmp-type:匹配 ICMP 类型。
示例:允许特定类型的 ICMP 数据包通过
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
隐式扩展:
-m conntrack:匹配连接跟踪状态。
示例:仅允许与已建立的连接相关的数据包通过
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-m limit:限制数据包的速率。
示例:限制 ICMP 数据包的速率为每秒一次
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
显式扩展:
-m tcp:用于 TCP 协议的扩展匹配。
示例:仅允许源端口号为 80 的 HTTP 请求通过
iptables -A INPUT -p tcp --dport 80 -m tcp -j ACCEPT
-m udp:用于 UDP 协议的扩展匹配。
示例:仅允许目标端口号为 53 的 DNS 请求通过
iptables -A INPUT -p udp --dport 53 -m udp -j ACCEPT
这些示例展示了 iptables 中基本匹配、扩展匹配、隐式扩展和显式扩展的使用。请注意,具体的用法和配置可能因操作系统版本和发行版而有所差异。可以使用 man iptables 命令查看完整的帮助文档。
本文暂时没有评论,来添加一个吧(●'◡'●)