iptables的命令规则速查,没有为了方便
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-nlgroup 2
iptables -A INPUT -p TCP --dport 22 -j ULOG \
--ulog-prefix "SSH connection attempt: "
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-cprange 100
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-qthreshold 10
通用匹配:
! 表取反
options: -p, --protocol
example: iptables -A INPUT -p tcp
comment: 不分大小写,缺省ALL。[协议列表: -p tcp,udp,icmp;取反: -p ! tcp]
options: -s, --src, --source
example: iptables -A INPUT -s 192.168.1.1
comment: 单个,如192.168.1.1或192.168.1.1/255.255.255.255或192.168.1.1/32
网络,如192.168.0.0/24或192.168.0.0/255.255.255.0
options: -d, --dst, --destination
example: iptables -A INPUT -d 192.168.1.1
comment: 同 -s
options: -i, --in-interface
example: iptables -A INPUT -i eth0
comment: 只能用于INPUT,FORWARD, PREROUTING这三个链。
接口名称,如:eth0、ppp0等。
通配符+,-i + 匹配所有的包。-i eth+ 所有Ethernet接口。
options: -o, --out-interface
example: iptables -A FORWARD -o eth0
comment: 同 -i
options: -f, --fragment
example: iptables -A INPUT ! -f
comment: 用来匹配一个被分片的包的第二片或及以后的部分。(注意碎片攻击)
TCP 匹配:
options: --sport, --source-port
example: iptables -A INPUT -p tcp --sport 22
comment: 默认所有端口。连续端口 22:80,80:22,[0]:80,22:[65535], ! 22:80
options: --dport, --destination-port
example: iptables -A INPUT -p tcp --dport 22
comment: 默认所有端口。连续端口 22:80,80:22,[0]:80,22:[65535], ! 22:80
options: --tcp-flags
example: iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
comment: --tcp-flags ALL NONE匹配所有标记都未置1的包。
UDP 匹配:
options: --sport, --source-port
example: iptables -A INPUT -p udp --sport 22
comment: 同 tcp
options: --dport, --destination-port
example: iptables -A INPUT -p udp --dport 22
comment: 同 tcp
ICMP匹配:
options: --icmp-type
example: iptables -A INPUT -p icmp --icmp-type 8
comment: iptables --protocol icmp --help 查看类型
显式匹配:
iptables -A INPUT -m limit --limit 3/hour
iptables -A INPUT -m limit --limit-burst 5
iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01
iptables -t mangle -A INPUT -m mark --mark 1
iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110
iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110
iptables -A INPUT -p tcp -m multiport --port 22,53,80,110
iptables -A OUTPUT -m owner --uid-owner 500
iptables -A OUTPUT -m owner --gid-owner 0
iptables -A OUTPUT -m owner --pid-owner 78
iptables -A OUTPUT -m owner --sid-owner 100
iptables -A INPUT -m state --state RELATED,ESTABLISHED
iptables -A INPUT -p tcp -m tos --tos 0x16
iptables -A OUTPUT -m ttl --ttl 60
目标和动作:
iptables -N tcp_packets
iptables -A INPUT -p tcp -j tcp_packets
iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p tcp -j DROP
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 \
-j DNAT --to-destination 192.168.1.1-192.168.1.10
iptables -A FORWARD -p tcp -j LOG --log-level debug
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
iptables -A INPUT -p tcp -j LOG --log-tcp-sequence
iptables -A FORWARD -p tcp -j LOG --log-tcp-options
iptables -A FORWARD -p tcp -j LOG --log-ip-options
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT \
--to-source 194.236.50.155-194.236.50.160:1024-32000
iptables -t mangle -A PREROUTING -p TCP --dport 22 -j TOS --set-tos 0x10
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 1
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-nlgroup 2
iptables -A INPUT -p TCP --dport 22 -j ULOG \
--ulog-prefix "SSH connection attempt: "
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-cprange 100
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-qthreshold 10
参考文献: