红联Linux门户
Linux帮助

教教你用Linux 防火墙保护你的ADSL连接

发布时间:2006-10-28 01:24:59来源:红联作者:cxtt228
  在上一篇笔者介绍了Linux 异构网络共享ADSL连接方法,对于连接互联网上的系统,不管是什么情况都要明确一点:网络是不安全的。因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。Linux提供了一个非常优秀的防火墙工具--netfilter/iptables。它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。本文将简单介绍使用netfilter/iptables实现防火墙架设和Internet连接共享等应用。
[/color]
[color=black]  传统意义上的防火墙技术分为三大类,“包过滤”(Packet Filtering)、“应用代理”(Application Proxy)和“状态检测”(Stateful Inspection),无论一个防火墙的实现过程多么复杂,归根结底都是在这三种技术的基础上进行功能扩展的。


  Linux内核从1.1版本开始,就已经具备包过滤功能。在2.0内核中,开始采用Ipfwadm来操作内核的包过滤规则。到2.2版本时,Linux内核采用了Ipchains来控制内核的包过滤规则。发展到2.4.x时,Ipchains被一个全新的包过滤管理工具Iptables所替代。新发布的2.6版内核也在安全方面进行了改进。

  因此,无论拥有哪个版本的Linux内核,无论选择哪个版本的Linux来构建自己的企业网,都可以利用现有的系统构建出一个理想实用的防火墙。2001年Russell完成了其名为netfilterhttp://www.netfilter.org)的内核框架。这些防火墙软件套件一般都比其前任有所改进,表现越来越出众。netfilter/iptables已经包含在了2.4以后的内核当中,它可以实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。netfilter/iptables是从ipchains和ipwadfm(IP防火墙管理)演化而来的。

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

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

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

  现实中,为了易读,我们一般都用这种语法。大部分规则都是按这种语法写的,因此,如果看到别人写的规则,你很可能会发现用的也是这种语法。Linux 2.4内核netfilter内建了三个表,其中默认表Filter中又包括3个规则链,分别是负责外界流入网络接口的数据过滤的INPUT链、负责对网络接口输出的数据进行过滤的OUTPUT链,以及负责在网络接口之间转发数据过滤的FORWARD链。下图是信息包在防火墙的Filter表中的穿越过程。

[table][tr][td][/td][/tr][tr][td]信息包在Filter表中的穿越过程[/td][/tr][/table][/color]
[color=black]  这里介绍一个工具软件,可以帮助你在Linux的GUI图形用户界面下快速构架一个防火墙。Firestarter 是一个完全的免费软件,它可以在KDE和GNOME环境下,它提供图形界面免去了在生硬的文本环境下配置防火墙的麻烦。

  最新版本Firestarter完全支持中文界面。Firestarter 的作者和开发者是芬兰人:Tomas Jounonen 和Paul Drainhttp://firestarter.sourceforge.net/ 可以自由下载它的源代码你还可以使用 majix@sci.f pd@cipherfunk.org 电子邮件和他们联系。最新版本是1.03。笔者下载的是它的RPM包,为了方便这里笔者提供它的下载链接:
http://jaist.dl.sourceforge.net/sourceforge/firestarter/firestarter-1.0.3-1.i386.rpm


  1、系统检测

  由于开发者Tomas Jounonen和Paul Drain使用C语言和 GTK +(GIMP Tool Kit,GIMP工具包是一个用于创造图形用户接口的库)开发的,所以安装前请检查系统gtk2+模块的gcc编译器版本。


[align=center][table=500][tr][td]# rpm -qa | grep gcc
# rpm -qa | grep gtk2+
[/td][/tr][/table][/align][align=center] [/align]  硬件: 中央处理器:兼容 Intel X86处理器Pentium 200 以上 ,32 兆(推荐64兆)内存,100兆硬盘空间 ,显示内存4兆。

  软件: 内核版本 2.2以上 ,KDE 2.0以上或GNOME 1.2以上,X Window System XFree86 3.6.x 以上,桌面分辨率至少为640×480 ,桌面颜色至少6万5千色(16位元)。

  2、安装软件

  以根权限登陆Linux打开一个终端:


[align=center][table=500][tr][td]# rpm -ivh firestarter-1.0.3-3.i386.rpm
[/td][/tr][/table][/align][/color]
[color=black]  3、配置软件


  系统会在/usr/bin/firestarter 建立主程序,第一次运行firestarter 需要进行简单的配置:

  1) 软件运行的主界面
  如下图。

[table][tr][td][/td][/tr][tr][td]软件配置向导[/td][/tr][/table][/color]
[color=black]  首先点击选项子菜单,进行一些简单配置,主要包括为软件建立日志文件目录、设置防火墙启动方式、设置策略。设置结束后用鼠标点击“Run firewall wizard”启动防火墙配置向导。

  2) 设置网络设备
  如下图。

[table][tr][td][/td][/tr][tr][td]配置网络设备[/td][/tr][/table][/color]
[color=black]  如果使用XDSL等宽带接入的设备来说选择网卡的接口即可。如果你使用的是Cable Modem接入网络的话,那么在“IP 地址通过DHCP分配”前打钩。然后用鼠标按前进按钮。

  3)设置网络连接共享
[/color]
[table][tr][td][color=black]
[/td][/tr][tr][td]设置网络连接共享[/td][/tr][/table][/color]
[color=black]  选择可以共享互联网连接共享的设备,笔者使用的是eth0。说明:Linux网络设备名称在配置时被赋予别名,该别名由一个描述性的缩略词和一个编号组成。某种类型的第一个设备的编号为 0,其他设备依次被编号为 1、2、3,等。eth0, eth1 ... 这些是以太网卡接口。它们用于大多数的以太网卡,包括许多并行端口以太网卡。选择完成后然后用鼠标按前进按钮。

  6)定制安全策略

  您可以随时根据网络情况定制Firestarter的安全策略,如下图。
[table][tr][td][/td][/tr][tr][td]定制Firestarter的安全策略[/td][/tr][/table][/color]
[color=black]  通过定制安全策略可以决定那些服务可以使用。哪些用户可以使用这些服务。一般来说我们不要启动Linux中所有服务,应当只启动你必须的服务,有些服务比如:Finger(查询帐号) 、Telnet、NFS都是相对不安全的,我们可以用一些安全的程序代替它们,例如:可以使用SSH代替Telnet。对于一些你必须启动的服务应尽量升级到最新版本。

  7)应用技巧让防火墙自动启动

  如果希望Firestarter服务器每次启动都能自动运行,可以用ntsysv设置。以root权限运行命令:

[align=center][table=500][tr][td]# ntsysv
[/td][/tr][/table][/align][/color]
[color=black]  打开如下图所示的窗口,在Firestarter服务选项加上*(用空格键),然后重新启动系统,这样系统会启动Firestarter服务。

[table][tr][td][/td][/tr][tr][td]启动Firestarter服务器自动加载[/td][/tr][/table][/color]
[color=black]  总 结:

  首先肯定的说Firestarter防火墙是一款非常优秀的基于GUI图形用户界面下的,完全免费的自由软件,它为小型Linux网络提供了良好的安全服务。它的使用简单但功能强大:Firestarter运行时只占用很少的系统资源,它为Linux平台提供了快捷有效的安全防护功能。并且在系统出现异常情况的时候能及时的向管理员通知及相关信息、以帮助系统管理员及时的对系统作出相应的处理和反应。

  Fire starter防火墙在程序运行后在系统桌面的任务条菜单处,易于迅速的启动和关闭网络中指定的计算机。Firestarter的安装十分容易,有安装向导引导,即使是Linux软件不熟悉的用户也能通过向导轻松完成防火墙的安装和设置。

  另外,Firestarter的README文件里面的往释非常清楚,方便了用户的修改和重新定义某些参数。就像Firestarter的开发者Tomas Jounonen所说的它是一个“All-in-one”的Linux防火墙。总的来说,Flrestarter防火墙适用于单机工作站、SOHO服务器的系统平台的安全防护,它能胜任在Linux下一般的系统安全任务。
文章评论

共有 1 条评论

  1. snqyss 于 2006-11-08 18:00:28发表:

    :0L