ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Linux防火墙之IPtables概念与用

2014-8-9 11:24| 发布者: admin| 查看: 560| 评论: 0

摘要:   防火墙典型的设置是有两个网卡,一个流入,一个流出。iptables读取流入和流出的数据包的报头,然后将它们与规划集(ruleset)相比较,然后将可接受的数据包从一个网卡转发至另外一个网卡。对于被的数据包,可以 ...

  [导读]防火墙典型的设置是有两个网卡,一个流入,一个流出。iptables读取流入和流出的数据包的报头,然后将它们与规划集(ruleset)相比较,然后将可接受的数据包从一个网卡转发至另外一个网卡。对于被的数据包,可以被丢弃或者按照你所定义的方式来处理。

  防火墙典型的设置是有两个网卡,一个流入,一个流出。iptables读取流入和流出的数据包的报头,然后将它们与规划集(ruleset)相比较,然后将可接受的数据包从一个网卡转发至另外一个网卡。对于被的数据包,可以被丢弃或者按照你所定义的方式来处理。

  通过向防火墙提供有关对来自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令的规则,控制信息包的过滤。通过使用iptables系统提供的特殊命令iptables,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。关于添加、除去、编辑规则的命令的一般语法如下:

  现实中,为了易读,我们一般都用这种语法。大部分规则都是按这种语法写的,因此,如果看到别人写的规则,你很可能会发现用的也是这种语法。

  访问路由器地址如果不想用标准的表,就要在[table]处指定表名。一般情况下没有必要指定使用的表,因为iptables默认使用filter表来执行所有的命令。也没有必要非得在这里指定表名,实际上几乎可在规则的任何地方指定表名。当然,把表名放在开始处已经是约定俗成的标准。尽管命令总是放在开头,或者是直接放在表名后面,我们也要考虑到底放在哪儿易读。

  “command”告诉程序该做什么,比如:插入一个规则,还是在链的末尾增加一个规则,还是删除一个规则。下面会仔细地介绍。

  “match”细致地描述了包的某个特点,以使这个包区别于其它所有的包。在这里,我们可以指定包的来源IP地址、网络接口、端口、协议类型,或者其他什么。下面我们将会看到许多不同的match。

  最后是数据包的目标所在“target”。若数据包符合所有的match,内核就用target来处理它,或者说把包发往target。比如,我们可以让内核把包发送到当前表中的其他链(可能是我们自己建立的),或者只是丢弃这个包而不做任何处理,或者向发送者返回某个特殊的应答。下面我们来逐个讨论这些选项:

  [-ttable]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三种可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter用作缺省表。下面介绍各表实现的功能。

  filter表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。我们就是在这里根据包的内容对包做DROP或ACCEPT的。当然,我们也可以预先在其他地方做些过滤,但是这个表才是设计用来过滤的。几乎所有的target都可以在这儿使用。

  nat表的主要用处是网络地址转换,即NetworkAddressTranslation,缩写为NAT。做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们的规则进行的。属于一个流的包只会经过这个表一次。

  如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作。也就是说,余下的包不会再通过这个表,一个一个的被NAT,而是自动地完成。这就是我们为什么不应该在这个表中做任何过滤的主要原因。PREROUTING链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。

  POSTROUTING链在包就要离开防火墙之前改变其源地址此表仅用于NAT,也就是转换包的源或目标地址。注意,只有流的第一个包会被这个链匹配,其后的包会自动被做相同的处理。实际的操作分为以下几类:

  DNAT操作主要用在这样一种情况,你有一个的IP地址,要把对防火墙的访问重定向到其他的机子上(比如DMZ)。也就是说,我们改变的是目的地址,以使包能重由到某台主机。

  SNAT改变包的源地址,这在极大程度上可以隐藏你的本地网络或者DMZ等。一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址。有了这个操作,防火墙就能自动地对包做SNAT和De-SNAT(就是反向的SNAT),以使LAN能连接到Internet。

  如果使用类似192.168.0.0/24这样的地址,是不会从Internet得到任何回应的。因为IANA定义这些网络(还有其他的)为私有的,只能用于LAN内部。

  MASQUERADE的作用和MASQUERADE完全一样,只是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址是配置好的。当然,这也有好处,就是我们可以使用通过PPP、PPPOE、SLIP等拨号得到的地址,这些地址可是由ISP的DHCP随机分配的。

  这个表主要用来mangle数据包。我们可以改变不同的包及包头的内容,比如TTL,TOS或MARK。注意MARK并没有真正地改动数据包,它只是在内核空间为包设了一个标记。防火墙内的其他的规则或程序(如tc)可以使用这种标记对包进行过滤或高级由。这个表有五个内建的链:PREROUTING,POSTROUTING,OUTPUT,INPUT和FORWARD。

  PREROUTING在包进入防火墙之后、由判断之前改变包,POSTROUTING是在所有由判断之后。OUTPUT在确定包的目的之前更改数据包。INPUT在包被由到本地之后,但在用户空间的程序看到它之前改变包。注意,mangle表不能做任何NAT,它只是改变数据包的TTL,TOS或MARK,而不是其源目的地址。NAT是在nat表中操作的,以下是mangle表中仅有的几种操作:

  TOS操作用来设置或改变数据包的服务类型域。这常用来设置网络上的数据包如何被由等策略。注意这个操作并不完善,有时得不所愿。它在Internet上还不能使用,而且很多由器不会注意到这个域值。换句话说,不要设置发往Internet的包,除非你打算依靠TOS来由,比如用iproute2。

  在如今这个信息爆炸的时代里,每天都会有数不清的新闻通过各种渠道涌到我们面前,而真正有价值的应该进入我们心里的,却很可能随着日历牌的翻动被我们忽略。作为对一周新闻进行回顾的《比特网新闻中心每周热点推荐》,就是要告诉您过去的七天都发生了哪些新闻,更希望和您一起,站在七天的高度来看待过去一周的新闻。

  领IT群雄秀企业风采。创刊于2008年2月,定位于行业(企业)信息化规划、建设、管理的中高层人士,通过精心的内容筛选,将每月发生的重点事件进行回顾,为高端人群提供深度阅读,与比特网内容的速度特性形成互补。主要栏目有:比特网精粹、新产品新技术、CIO、封面报道、下午茶精选等。

  业内首个只为报道数据中心资讯内容的专业频道,是为数据中心用户及厂商而建设的专业平台。以数据中心专业技术内容为核心,贯穿新鲜资讯、技巧方法和用户案例等高附加值内容。以为网友提供最具实用价值的信息为原则,以成为用户最信赖的行业专家为目标,打造高时效、高品质、高前瞻的最全威频道。企业数据中心热点播报,为您精心奉上过去一周数据中心最精彩、权威资讯_chinabyte比特网。

  就服务器和数据中心领域的产业动态、技术热点、热门产品、实用技巧,向企业CIO/CTO、IT管理层、技术人员提供一周精选套餐,为数据中心决策者、使用者提供一份服务器行业以及数据中心领域最新动态及产品应用的技术套餐。

不良信息举报Q:2000617
新用户7天后可回帖!

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2025-11-6 03:41 , Processed in 0.031094 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部