iptables默认有
三张表:filter nat mongle表
五条链:PREROUTE INPUT FORWARD OUTPUT POSTROUTE
表与规则之间的关系:
一个表中放的是一条条规则
规则与链之间的关系:
一条规则只能作用在某个链上
链:
数据从进入到流出的五个环节,相当于源端到目的端的五道门
规则:
一个规则相当于把守一个门的守卫!
一个门可以有多个守卫!
表与链之间的关系:
filter表拥有INPUT FORWORD OUTPUT链上的规则
mangle表拥有Prerouting、FORWARD 和 postrouting链上的规则
nat 表拥有 Prerouting 和 postrouting 两个规则链,
表的功能:
filter表用来进行封包过滤的理动作
nat表用来设置地址转换
mangle,出进行NAT外,还有其他工作,一般不用!
基本语法:
iptables
[-t filter]
[-AI INPUT,OUTPUT,FORWARD]
[-io interface]
[-p tcp,udp.icmp,all]
[-s ip/nerwork]
[--sport ports]
[-d ip/netword]
[--dport ports]
[-j ACCEPT DROP]
以上是 iptables 的基本语法
A 是添加的意思
I 是播入的意思
io 指的是数据要进入或出去所要经过的端口 如 eth1 eth0 pppoe 等
p 你所要指定的协议
-s 指源地址 可是单个 IP 如 192.168.2.6 也可以是一个网络,192.168.2.0/24 还可以 是一个域名
--sport 来源端口 -d 同-s 相似 只不过他指的是目标地址 也可以是 IP 域名 和网络
--dport 目标端口
-j 执行参数 ACCEPT DROP
注意:如果以有参数存在 则说明全部接受
1 如我要来自己 l0 接口的数据全部接受,我们可以写成这样:
iptables -A INPUT -i lo -j ACCEPT
2 如果我们想接受 192.168.2.6 这个 IP 地址传来的数据我们可以这样写
iptablse -A INPUT -i eth1 -p tcp -s 192.168.2.6 -j ACCEPT
3 如果我们要拒绝来自己 192.168.2.0/24 这个网的 telnet 连接
iptablse -A INPUT -i eth1 -p udp -s 192.168.2.0/24 --sport 23 -j