首页 » Iptables入门 » 正文

Netfilter 的匹配方式和处理方法

一、 内置匹配方式

1:接口的匹配方式

      Netfilter内置的匹配方式中,我们可以将数据包进出接口作为匹配的条件:例如

       iptables -t filter -A forward -i eth0 -o eth1 -j Drop

       其中使用了-i -o 连个参数来标明数据包的进出方向,注意,并不是所有的接口都是eth开头的

2 Soure/Destination Address的匹配

      Netfilter中的IP包头中有Source IP Destination IP 两项信息,其中Source IP 代表数据包发送端主机的IP地址,Destination则代表数据包要发送往哪台主机,因此,我们可以通过这两个字段来限制数据包

     例如:

    

     -d 192.168.0.1

     -s 192.168.0.1

    iptables -A FORWARD -p tcp -I eth1 -o eth0 -d www.baidu.com -j DROP

    不允许局域网用户通过本网关防火墙访问百度

    iptables  -A FORWARD  -I eth0 -o eth1 -p tcp -s 192.168.10.1 -d www.baidu.com —deport 80 -j DROP

    不允许局域网中192.168.10.1这台主机访问百度的网页(80端口)

3:协议的匹配

      我们可以通过-p来指定我们要匹配的协议,协议有很多,其中, 我们可以从/etc/protocol看到一些 其中,第一个字段是给人看的,第二个字段是个计算机看的, icmp协议对应的数字为1 所以

-p icmp -p 1 的意义是相同的

     iptables -t filter -A INPUT -p icmp -j DROP

  

     上边的策略会让所有的机器都ping不通本机,但是有一个问题,那就是我们也ping不通外边的主机,虽然我们的数据包能够正常的回来的,但是返回的时候就被DROP了,其实,如果我们能看到icmp的包的内容,我们就可以很容易解决这个问题

      icmp 请求包: type=8 Code=0

      icmp 应答包: type=0 Code=0

     icmp协议的高级匹配:

     iptables -A INPUT -p icmp —icmp-type 8 -j DROP

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)