搜尋此網誌

2011年5月14日 星期六

iptables command and rules

$ iptables [-t table] command [match] [target]



iptables有5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING;4个表:filter,nat,magle,raw.
4个表的优先级由高到低为:raw->mangle->nat->filter.

[-t table] 选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。该选项不是必需的,如果未指定, 则 filter 用作缺省表。
filter:表用于一般的信息包过滤。包括链表:
          INPUT:主要与想要进入本机的封包有关;
          OUTPUT:主要与本机所要送出的封包有关;
          FORWARD: 用于转发,与nat table 相关性较高。
nat:主要在进行来源与目的之 IP 或 port 的转换,与 Linux 本机较无关,主要与 Linux 主机后的区域网路内电脑较有相关。包括链表:
          PREROUTING:在进行路由判断之前所要进行的规则(DNAT/REDIRECT)
          POSTROUTING:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)
          OUTPUT:与发送出去的封包有关。
mangle:该表包含一些规则来标记用于高级路由的信息包,该表包含 PREROUTINGOUTPUT 链。 

RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW 表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度。


各链表关系如下:



沒有留言:

張貼留言