Username: Password:

使用IP CHAINS建立Linux防火墙
来源:作者: 发布时间:2007-12-05 06:22:04

虽然Linux操作系统具备很多长处,其安全性也较高,但是您不应当由此产生一种虚假的安全感,因为您的Linux系统的安全性仍旧可能受到损害。现在就让我们来看看怎样通过使用IP链(IPchains)来建立Linux系统的防火墙,保护您的系统不受侵害。

   先假设您已具备了一些关于因特网的基本知识。应当说,熟悉像IP地址、TCP端口和网络传输数据之类的词汇是很有用处的。对防火墙有一个大概的了解也是十分有必要的。

   ■命令:
   我们需要确立起一系列的规则,这样IP链才能进入来来往往的网络路径。每一条规则都被置于三链之一,这三个链分别为:存放输入数据的输入链、存放输出数据的输出链和传输链。

   每增加一条规则,都要从IP链开始,并且要增加下面的某些或全部步骤。附加(Append)、删除(Delete)、插入(Insert)和替换(Replace),这些命令通常是跟在起始的IP链命令之后,并且指示程式应当把规则命令添加在哪条链上连同怎样添加。添加时,以-A、-D、-I,或-R开始,这些字母的后面再加上链的名称(输入链或输出链)。

   当您要使用插入命令时,必须在要加入该命令的位置上,在链的名称后面,具体指定行号。

   在使用替换命令时,需要指定被替换的行号,使用删除命令的时候,也必须指定删除的行号。

   在使用删除选项时,无须在行号后面再输入什么别的内容。您只要键入ipchains -L,就能够发现命令所作用的行号。

   ■协议(Protocol):
   在这里您要针对每一条规则命令具体地指明某种协议。在大多数情形下,使用TCP/IP协议。

   也有可能您不想让您的电脑对另一台电脑发出的Ping信号做出反应。为了做到这一点,需要具体指定ICMP(互连网控制报文协议)。在具体地指定某个协议的时候,要使用-p命令,如:-p icmp。

   ■源(Source):
   源能够确定从某个特定的IP地址而来的路径连同使用-s命令的端口。假如您知道一个标准的IP地址,就能够直接使用IP地址,或干脆指定一个(比如www.ccidnet.com)。假如您想指定任意一个地址,不妨用0.0.0.0/0。

   我们能够在IP地址的后面用数字来指定某一个端口(比如110),也能够用服务器的名称(pop3)来指定某一个端口。使用冒号能够将两个端口数字分隔开,这样就能指定一连串的端口。例如:

   -s mail.mailserver.com pop3

   -s 127.0.0.1 139:164

   ■目的(Destination):
   用法和源地址是相同的,只要指定目的地址和端口即可。

   ■跳转(Jump):
   我们需要了解的最后一个选项是-j命令。这个命令告诉防火墙,假如一项规则命令和正在输入的数据相匹配时,防火墙应该采取什么步骤。在大多数情况下,这种步骤就是接受或拒绝。举个例子吧,假如您想拒绝某组和命令相符的数据时,防火墙就跳转至拒绝。假如一组数据不符合某条命令规则,该数据就会往前进入下一个命令。假如没有任何规则符合这组数据的话,数据就会在缺省的状态下被拒绝。

   当然更有一些其他的选项和命令能够和IP链的命令一起使用。假如您想深入了解更多的信息,能够在命令行栏键入ipchains -h。

   建立防火墙
   建立Linux系统的防火墙的核心部分就是在您接近您想要访问的服务器的同时,又要阻止其他服务器接近您的系统。这里我们提出一些忠告。

   首先,您在建立您的防火墙时尽量对任何的“拒绝”规则使用-I命令。当某条规则将一组数据挡在外面的时候,就会产生一行信息,加入到您的核心程式信息记录中(变量/记录/核心程式/信息)。您读一读这个文档就能明白为什么一组数据会被挡在外面。一条记录周详说明了被采取的步骤、能解释某条规则源目的链、源地址和端口连同目的地址和端口,因而您能运用这些信息来调整防火墙。能够按照您想得到的方式拥有任何东西,这时就不再需要-I命令了。

   其次,建立防火墙能够挡住任何流入的Syn数据。Syn数据是用于启动链接的数据组,但他们不应该出现在大部分的桌面系统上。能够这样运用-y命令:

   ipchains -I input 1 -p tcp -y -j DENY

   您还可用下面这条命令挡住ICMP数据:

   ipchains -I input 2 -p icmp -j DENY

   把这两条规则放在最前面,就能确保系统不会随便接收这些数据。下一步,该挡住像ftp、telnet、smtp和pop3之类的一些常用的服务器端口:

   ipchains - A input -p tcp - s 0.0.0.0/0 ftp DENY

   ipchains - A input -p tcp - s 0.0.0.0/0 telnet DENY

   ipchains - A input -p tcp - s 0.0.0.0/0 smtp DENY

   ipchains - A input -p tcp - s 0.0.0.0/0 pop3 DENY

   ipchains - A input -p tcp - s 0.0.0.0/0 nntp DENY

   假如在连接发送邮件的服务器时出现问题,能够在smtp 和pop3 DENY的规则前面插入一条规则,这样便能使所谓的DENY规则失去作用。但是要确保这条规则的明确性,因为这样才能使得DENY规则失效。通常来说,明确地指明一个IP地址是个不错的做法:

   ipchains - I 3 input - 1 - p tcp - s mail.mailserver.com pop3 - j ACCEPT

   ipchains - I 4 input - 1 - p tcp - s mail.mailserver.com smtp - j ACCEPT

   能够用您发送邮件的服务器的地址替代“mail.mailserver.com”,对于一个新的服务器或任何一个链接有困难的FTP网址,都能够这样做。

   虽然这些规则是一些基本性的,但有助于建立一个安全有效的防火墙。我们能够在像Gibson Research Center (http://www.grc.com) 和DSL Reports (http://www.secure-me.net/) 之类的网站检测防火墙的安全和有效性。上面两个网站都能够免费提供关于因特网的端口查询。一旦找到了有用的规则,就用ipchain-save命令将这些规则保存到某个文档中。

   当重新启动系统的时候就能够运用这个保存了规则的文档。键入ipchains-save>/etc/ipchains.rules就能保存防火墙配置数据。在重新启动您的系统后保持有关防火墙的配置时,请键入ipchains-restore>/etc/ipchains.rules 。当您的系统断电或重新启动时,Linux系统不会自动保存这些配置数据。

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅