Table of Contents
在默认的iptables上,包含raw-> mangle-> nat-> filter,4个表。每个表包含多个“链”。每个链包含一系列“规则”。下面的“ iptables –list”的常用用法。
$ iptables -L -n --line-numbers # you can add -t <table-name> (default table is FILTER)
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 127.0.0.0/8 reject-with icmp-port-unreachable
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:30000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables denied: '
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
没有字段名称的最后一个字段由'-m'选项引入。可以将其视为事先采取行动的理由。例如
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 30000 -j ACCEPT
有关可以使用什么“ -m”选项以及可以在最后一个未修改的字段中填写的内容,请参阅http://drops.wooyun.org/tips/1424中的“隐士扩展”和“显示扩展” 。
更深的iptables
Linux iptables是一个非常强大的工具,可用于创建路由器和防火墙。如果您深入了解实现iptables的内核中的netfilter,则会发现更多内容。例如,规则的格式和排列如何影响内核性能。
iptables可以创建更多表并在规则之间跳转。此功能称为Linux高级路由。例如,它可用于构建连接中国电信和中国联通的路由器,并对每个数据包使用不同的路由策略。
VS路由表
路由表和iptables不同,请参阅此处。
- 可以使用来显示路由表,也称为“转发信息库”
route
。IP转发(即路由)基本上会重写具有不同源地址的数据包,并将其发送到其他网络接口之外。 - 在
iptables
操作上的Netfilter,Linux内核的包过滤和处理子系统。它处理NAT。
从技术上讲,可以使用mangle
表中的适当iptables规则进行静态路由。但这通常会更慢。
有许多图表说明了TCP / IP数据包如何遍历内核。这里的一个示例,包括Netfilter和路由。
此外,ebtables
与iptables
在第3层工作相比,第2层存在过滤。