Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8130759
  • 博文数量: 159
  • 博客积分: 10424
  • 博客等级: 少将
  • 技术积分: 14615
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-14 12:45
个人简介

啦啦啦~~~

文章分类
文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(10)

2011年(116)

2010年(22)

分类: 网络与安全

2010-07-18 02:34:16

以前使用iptables的时候,并 没有系统的学习过。结果就是对iptable感觉比较清楚,但是又不是特别清楚。

让人感觉很郁闷。现在决心重新从头学习一遍 iptables。那么,开始吧!

一 iptable 简介

iptables起源于ipchain,它们都是 Netfilter组织开发的。因为ipchain有不少缺点,所以Netfilter就重新开发了iptables。

iptables 的优点在于:

  1. 更好的与Linux内核集成,有更高的速度和可靠性;
  2. 可以跟踪数据包的状态;这意味着防 火墙会跟踪每个通过它的链接,查看数据流的内容,来判断是否违反规则;
  3. 可以基于MAC地址和TCP报文头的标志位来过滤;
  4. 支 持级别日志;
  5. 更好的NAT功能;
  6. 更好的与web代理集成,如Squid;
  7. 可以有限的 防范Dos攻击;

二、如何启动iptables

可以手动启动、停止和重启iptables

service iptables start

service iptables stop

service iptables restart

也可以通过chkconfig指令来要求iptables自动启动

chkconfig iptables on

那么我们如何知道iptables现在是否在运行呢。

执行service iptables status

就可以知道iptables 当前的运行状态了。

三、 iptables如何处理数据包

所有被 iptables检查的包都经过了一系列iptables内建表(或队列)的处理。每一个处理队列都对应于一种类型的包,或者被相关联包的变换过滤链锁控 制。

iptables中一共有3个表。

第一个是mangle表,它用于改变TCP报文头的QoS标志。在家庭环境中,它 几乎没有用处。

第二个表是filter表,用于过滤包。它有三个内建防火墙策略规则。你可以在这三个规则上创建自己的防火墙策略规则。

这三个规则分别是:

  1. forward chain 转发链:过滤发往受防火墙保护的服务器的包;
  2. input chain 输入链: 过滤发往防火墙的包;
  3. output chain 输出链:过滤从防火墙发出的包;

第 三个表是nat表,用于网络地址转换。它有2个内建链。

  1. pre-routing chain 前路由选择链:用于转换包的目的地址
  2. post-routing chain 后路由选择链:用于转换包的源地址

我在网上找到一个说明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



阅读(6437) | 评论(9) | 转发(6) |
给主人留下些什么吧!~~

2012-10-15 14:11:12

GFree_Wind: 这两个主要是挂载点或者说检查点不一样。.....
好的,学习了,谢谢

GFree_Wind2012-10-15 12:22:35

这两个主要是挂载点或者说检查点不一样。

2012-10-15 09:27:00

同样的,防火墙也需 要回复。首先进行路由选择,然后被mangle的output表检查。接着经过nat表的output链检查是否需要DNAT。....这是原文倒数第2段的文字,有一个疑问没想明白:经过nat表的output链检查是否需要DNAT?这是回复的过程,为什么是检查是否需要DNAT而不是检查是否需要SNAT呢?

2012-10-15 09:22:18

mangle表是进程TCP报文都修改的,那么请问下:mangle prerouting chain和mangle  forward chain这两个做的工作一样么?是不是还是需要根据链中的相应规则进行相应的处理??

GFree_Wind2011-04-07 16:58:46

owinux: 要学的东西很多很多啊.....
人的精力有限的。大部分人的智商差不了多少。先把知识面扩宽,然后专注于一个方向