iptables

一、四表五链理论

四表,filter表(包过滤)、nat表(网络地址转换)、mangle表(包重构,修改) raw表(数据跟踪处理)

五链(chains)是数据包传播的路径,

1.INPUT——进来的数据包应用此规则链中的策略

2.OUTPUT——外出的数据包应用此规则链中的策略  

3.FORWARD——转发数据包时应用此规则链中的策略 

4.PREROUTING——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)

5.POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。

二、常用设置

1、放行ssh端口:

  1 iptables -A INPUT -p tcp –dport 22 -j ACCEPT
  2 iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
注:/etc/rc.d/init.d/iptables save,否则直接执行service iptables restart命令后, 刚才添加的将丢失.

2、解决iptables导致的脑裂问题

  1 iptables -A INPUT -i lo -j ACCEPT  允许来自于lo接口的数据包
  2 iptables -A OUTPUT -o lo -j ACCEPT  允许向lo接口发送数据包
  3 iptables  -A INPUT -s 192.168.1.0/24 -d 224.0.0.18 -j ACCEPT       #允许组播地址通信
  4 iptables  -A INPUT -s 192.168.1.0/24 -p vrrp -j ACCEPT       #允许VRRP(虚拟路由器冗余协)通信
lo 是 loopback 的缩写,也就是环回地址网卡,linux主机向自身发送数据包时,实际上的数据包是通过虚拟的lo接口来发送接受的,而不会通过你的物理网卡 eth0/eth1。
上一篇:王道机试指南题解(C/C++版)


下一篇:JavaScript 对象