记录一下iptables相关的命令。
查看
1 | #(n:不进行host反查,v:详细信息) |
设定
1 | -F:清除所有已定的规则 |
例子:
1 | #!/bin/sh |
备份与还原
1 | iptables-save > /etc/sysconfig/iptables.bak |
格式与/etc/sysconfig/iptables中的内容一样
1 | iptables-restore < /etc/sysconfig/iptables.bak |
加载/etc/sysconfig/iptables.bak中的内容,不会写入/etc/sysconfig/iptables中
1 | /etc/init.d/iptables save |
保存内容至/etc/sysconfig/iptables中,并可以使用service iptables start启动
NAT
端口转发:
1.到本机端口:1
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 81
2.到其它IP端口:1
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to 192.168.0.10:81
3.修改流入包的信息:1
iptables -t nat -A PREROUTING -d 183.63.2.202 -j DNAT --to-destination 92.168.0.10
4.修改流出包的信息:1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 183.63.2.202
5.ip伪装(当为动态IP时使用ip装,当为静态IP时可用第4条):1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
6.打开路由:
永久修改:/etc/sysctl.conf中的net.ipv4.ip_forward=1,生效:sysctl -p
临时修改:echo 1 > /proc/sys/net/ipv4/ip_forward,重启后失效
7.屏蔽某个网站:1
iptables -A FORWARD -m string --string "qq.com" --algo bm -j DROP
–algo:bm|kmp:bm比kmp快
8.禁止某个IP段不能上网:1
iptables -A FORWARD -m iprange --src-range 192.168.0.0-192.168.0.100 -j DROP
其中:
–src-range:源地址 –dst-range:目的地址
9.多个端口:1
-m --multport --sport 80,82
–sport 80:82 #80到82端口
10.时间限制:1
-m time --time-start 00:00 --time-stop 13:00
11.限速:1
2iptables -A FORWARD -s 192.168.0.158 -m limit --limit 20/s -j ACCEPT
iptables -A FORWARD -s 192.168.0.158 -j DROP
20/s表示限速30k/s:
先用ifconfig查看MUT(1500字节),30k/1500B=20个MTU
12.禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机:
1 | iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP |
13.开放vpn服务:1
2
3
4iptables -A INPUT -p tcp -m multiport --destination-port 47,1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --source-port 47,1723 -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
实例
1 | # Generated by iptables-save v1.3.5 on Tue Jun 8 08:43:18 2010 |