1、简介app
iptables是一个很强大的设置防火墙的工具,可使用它来限制全部对本机的访问,容许特定的主机、特定的端口才能访问本机,还能设置那些协议可以访问本机。总之,很强大,也很简单。tcp
2、filter chain原理简述工具
在开始以前,先看一下iptables的filter chain是如何工做的:spa
注释:当Input进来以后,先经过first chain,若是符合直接本机接收;不符合传给second chain,依次到最后一个chain,着了third不必定是最后的chain,在最后chain都不符合就将包丢弃,符合的交给下层处理。code
3、综合例子blog
经过下面的例子进行说明:ip
按箭头顺序来讲明:get
命令及详解:table
iptables -P INPUT DROP原理
# -P:--policy(策略),chain target(过滤目标),全部的输入(INPUT)就是要过滤的目标。
# DROP:表示丢弃全部输入的数据包,不接受任何数据请求(拒绝全部访问),这个全部是相对的,在咱们规则以内定义接收仍是接收的。
命令及详解:
iptables -A INPUT -p tcp -s 192.168.1.113 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.1.113 -j ACCEPT
# -A:--append chain,添加一条过滤规则,这里是INPUT,还有OUTPUT、FORWARD。
# -p:--protocol,代表协议。例如tcp、udp,icmp
# -s:--source,源地址。接ip地址
# -j:--jump target,当这条规则符合时,直接跳转到目标,再也不进行下一条chain。目标有:ACCEPT、DROP、FORWARD、QUEUE
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT
这里只是在icmp协议后面指定那个type和code
iptables -A INPUT -p icmp --icmp-type 11 -s 0/0 -j ACCEPT
这里只是在icmp协议后面指定那个type和code
4、其余使用
l 删除某条规则:当须要删除某条规则时,有2种方法:
iptables -L -n -line-number
来查看序号,不过本人尝试了并没成功。知道序号以后经过:
iptables -D ”number“ 来删除
iptables -S
来查看规则
而后经过:
iptables -D “content -A这类不须要写” 来删除,例如:
iptables -D INPUT -s 192.168.1.113/32 -p tcp -j ACCEPT 来删除本条规则
l 指定端口
经过 –dport “port” 来指定端口
l 保存规则
iptables-save
能够将规则保存到一个文件中,例如:
iptables-save /etc/iptables.rules
保存好以后去网卡文件(/etc/network/interface)中指定