Target/jump
target/jump决定包的处理,语法是--jump target 或 -j target ,target分两类,一是具体的操作,如ACCEPT和DROP,另一个是发送到同一个表内的链
如:
iptables -N newchain
iptables -A INPUT -p tcp -j newchain
包从INPUT跳入newchain,到了newchain的结尾会退回INPUT链的下一条规则,如果在子链中ACCEPT,父链中也ACCEPT,相当于跳过父链中的其它规则
ACCEPT
-j ACCEPT ACCEPT后,当前链与表不再匹配,但还要接受其它表中的链的处理
DNAT
只能用在nat表的PREROUTING和OUTPUT链中,包含DNAT target的链不能被其它链调用
iptables -t nat -A PREROUTING -p tcp -d 172.16.1.1 --dport 80 -j DNAT --to-destination 192.168.1.1
DROP
丢掉包,不向发送者和路由返回信息
LOG
记录包的信息
iptables -A FORWARD -p tcp -j LOG --log-level debug
log-level分为:debug,info,notice warning,warn,err,error,crit,alert,emerg,panic
--log-prefix
log信息的前缀
--log-tcp-sequence
TCP序列号和其它日志信息一起记录
--log-ip-option
记录IP包头中字段大小不变的选项
MASQUERADE
与SNAT作用一样,但不需要指定--to-source,用于动态获取IP地址的连接,如拨号上网DHCP等,只能用于nat表的POSTROUTING,有一个选项--to-ports(非必须)
iptables -t nat POSTROUTING -p tcp -j MASQUERADE --to-ports 80
MARK
设置mark值
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
MIRROR
反转目的地址与来源地址
QUEUE
为软件管理包队列
REDIRECT
防火墙所在的主机内部转发包到另一个端口.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
REJECT
与DROP作用一样,还会返回错误信息,只能用在INPUT,OUTPUT,FORWARD
iptables -A FORWARD -p tcp --dport 22 -j REJECT --reject-with tcp-reset
可用的信息类型:1,icmp-net-unreachable 2,icmp-host-unreachable 3,icmp-port-unreachable 4,icmp-proto-unreachable 5,icmp-net-prohibited 6,icmp-host-prohibited,默认是3,还有 echo-reply tcp-reset
RETURN
返回上一层,顺序是子链--父链--默认策略
SNAT
只能用在nat表的POSTROUTING
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 192.168.10.10
可以指定单独或连续的地址,也可指定端口
TOS
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j TOS --set-tos 0x10
TTL
若ISP通过判断包的TTL来禁止共享连接,可以设置TTL为相同的数值来冲过封锁
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
--ttl-dec 减少1
--ttl-inc 加1
注意TTL每通过一个路由都会减1
ULOG
ULOG可以在用户空间记录被匹配的包的信息,这些信息和整个包都会通过netlink socket被多播。然 后,一个或多个用户空间的进程就会接受它们。换句话说,ULOG是至今iptables和Netfilter下最成熟、最 完善的日志工具,它包含了很多更好的工具用于包的记录。这个target可以是我们把信息记录到MySQL或其 他数据库中。这样,搜索特定的包或把记录分组就很方便了。
iptables -A INPUT -p tcp --dport 22 -j ULOG --ulog-nlgroup 2
--ulog-prefix
--ulog-cprange
--ulog-qtreshold