iptables是什么
iptables是Linux系统中最重要的网络管控工具。它与Kernel中的netfilter模块配合工作,其主要功能是为netfilter设置一些过滤(filter)或网络地址转换(NAT)的规则。当Kernel收到网络数据包后,将会依据iptables设置的规则进行相应的操作。
Table
iptables内部(其实是Kernel的netfilter模块)维护着四个Table,分别是filter、nat、mangle和raw,它们对应着不同的功能。
Chain
一个Table可以支持多个Chain,Chain是Rule的集合,每个Table都有默认的Chain。
规则查看
iptables [-t table ] [-L] [-nv]
选项与参数:
-t:后面接table。例如 filter或者nat。如果不写默认是filter
-L:列出目前的table规则
-n:不进行IP与HOSTNAME的反查,使用此参数查询结果会很快
-v:列出更多信息,包括通过该规则的数据包总位数,相关的网络接口等。
规则设置
-t:指定table。如果不带此参数,则默认为filter表。
-A,–append chain rule-specification:在指定Chain的末尾添加一条Rule,rule-specification指明该Rule的内容。
-I,–insert chain[rule num]rule-specification:为指定Chain插入一条Rule,位置由rule num指定。如果没有该参数,则默认加到Ch
-N:创建一条新Chain。
-i:指定接收数据包的网卡名,如eth0、eth1等。
-o:指定发出数据包的网卡名。
-p:指定协议,如tcp、udp等。
-s,–source address[/mask]:指定数据包的源IP地址。
-j,–jump target:跳转到指定目标,如ACCEPT、DROP等。
iptables -t filter -A INPUT -s 192.168.1.108 -j DROP
规则删除
-D,–delete chain rule-specification:删除指定Chain中满足rule-specification的那条Rule。