分类:
2012-05-16 00:49:42
原文地址:如何使用iptables(一) 作者:GFree_Wind
以前使用iptables的时候,并 没有系统的学习过。结果就是对iptable感觉比较清楚,但是又不是特别清楚。
让人感觉很郁闷。现在决心重新从头学习一遍 iptables。那么,开始吧!
iptables起源于ipchain,它们都是 Netfilter组织开发的。因为ipchain有不少缺点,所以Netfilter就重新开发了iptables。
iptables 的优点在于:
可以手动启动、停止和重启iptables
service iptables start
service iptables stop
service iptables restart
也可以通过chkconfig指令来要求iptables自动启动
chkconfig iptables on
那么我们如何知道iptables现在是否在运行呢。
执行service iptables status
就可以知道iptables 当前的运行状态了。
所有被 iptables检查的包都经过了一系列iptables内建表(或队列)的处理。每一个处理队列都对应于一种类型的包,或者被相关联包的变换过滤链锁控 制。
iptables中一共有3个表。
第一个是mangle表,它用于改变TCP报文头的QoS标志。在家庭环境中,它 几乎没有用处。
第二个表是filter表,用于过滤包。它有三个内建防火墙策略规则。你可以在这三个规则上创建自己的防火墙策略规则。
这三个规则分别是:
第 三个表是nat表,用于网络地址转换。它有2个内建链。
我在网上找到一个说明iptables 三个表的表(真绕口啊)
你需要为你创建的每一条防火墙规则指定表和链。但 有一个例外是:因为大多数的规则都与过滤相关,所以当没有关联度的表时,iptables会假设这个规则是filter过滤表的一部分。因此filter 过滤表是默认表。
为了更清楚的理解iptables处理包的流程。下图显示了一个位于网络A的防火墙收到一个TCP包的处理流程。
首先这个包由mangle标的 prerouting链检查(如果有这个链的话)。然后它再被nat表的prerouting链检查,查看这个包是否需要做DNAT。接着进行路由选择。
如果这个包是发往受保护网络的,它接着会被filter表的forward链过滤。如果有必要的话,这个包在到达B网络之前还会经历 postrouting链做SNAT。当目的服务器决定回复这个包时,回复包也要经历相同的步骤。forward和postrouting链都可以被 mangle表指定,来实现QoS功能。但是在家庭环境中,这个并不常用。
如果这个包是发到防火墙自己的。那么这个包在filter表的 input链之前,就要经过mangle表的input链。如果成功通过测试的话,这个包就被发到防火墙的应用程序。
同样的,防火墙也需 要回复。首先进行路由选择,然后被mangle的output表检查。接着经过nat表的output链检查是否需要DNAT。然后再经过filter表 的output链来帮助限制未授权的包。最后,在发到网络A前,再经历postrouting链的SNAT和QoS检查。
好了,上面是 iptables的简介以及处理流程的简单介绍。
翻译:gfree.wind@gmail.com
原文:http://blog.chinaunix.net/u3/116859/showart_2275435.html