荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Chair (银发之速战速决), 信区: Linux
标  题: 构建一个软盘防火墙
发信站: 荔园晨风BBS站 (Fri May 11 14:36:44 2001) , 转信

inuxaid专业技术支持网站 juzhang


这里,介绍一种通过floppyfw软件包将一台旧PC设置为包过滤防火墙的方法。该防火墙的特
点是:1、仅需要一张软盘就可以启动运行;2、完全运行在RAM中;3、以ipchains为过滤规
则。这种防火墙还支持IP地址隐藏(IP masquerading)、端口转发、并能够通过syslog将

志记录到远程主机上。所有这些工作都可以运行在一台只有8 MB RAM并且没有硬盘的计算机
上,真的难以置信!

Floppyfw的作者Thomas Lundquist将它形容为“具有防火墙功能的Linux路由器(screening
 router)”。Floppyfw通过Linux内核启动,并且提供了实现上述防火墙功能的最小工具集
。这是它的一个重要特性,因为即使一个入侵者采用某种手段进入了防火墙,他也没有很多
可以对造成损害的工具可用。另外,因为防火墙完全运行在RAM中,所以只需要通过软盘重

启动就可以将系统恢复到最初的状态。

同许多其他的Linux工程一样,floppyfw具有自定制特性。但是,在这里向推荐所发现的一

列几乎可以立即执行的过滤规则,这样就可以快速构建自己的防火墙了。

硬件需求

一台比较合适的计算机(或者是足以组装一台的部件),它应该是一台386以上的计算机,

本配置如下:

最少8-MB RAM
3.5"软盘驱动器
显卡
键盘
显示器

注意,如果想让floppyfw自主运行,可能只是在配置与测试的时候才需要键盘和显示器。

需要安装一对网卡,floppyfw支持下面几种类型的网卡:


3Com 3c509
NE2000 compatibles
Tulip-based
Intel EtherExpress PCI

要保证每块网卡都有各自的中断号(IRQ)和内存地址。中断号(IRQ)和内存地址在有跳线
的网卡上设置起来很简单。使用的是一对儿3Com 3c509网卡,当第一次启动计算机时,这两
块网卡的配置都是IRQ 10和0x300。是用3Com公司的DOS实用程序3C5X9CFG.EXE解决这个问题
的:首先,制作一个DOS启动盘,并将3C5X9CFG.EXE拷贝到该盘上;然后用这个软盘启动计

机并运行3C5X9CFG.EXE(当然,两个网卡都要插在主板上);选择其中一块网卡,为其选择
一个新的IRQ和内存地址;对另外一块网卡也重新进行配置,记住,要保存新的设置。是在E
therDisk 4.3上找到3C5X9CFG.EXE的,可以在3Com的官方网站http://www.3com.com/上找到
最新版本的EtherDisk。

软件需求

制作floppyfw引导盘很简单,首先需要在这里(http://www.zelow.no/floppyfw/download/
)下载最新的稳定版映象),然后将映象写到软盘上:

# dd if=floppyfw-1.0.5.img of=/dev/fd0 bs=72k

配置

这个软盘是DOS (FAT)格式的,必需首先在另外一台计算机上编辑配置文件之后才能启动它

常常可以使用Linux的mtools,方法如下:

$ cd /tmp
$ mcopy a:config
$ vi config
$ mcopy config a:

如果使用的是其它操作系统,完全可以使用NotePad来完成这些工作。

实际上,floppyfw有5个配置文件:

config (主配置文件)
firewall.ini (过滤规则)
modules.lst (附加的ip_masq模块)
syslinux.cfg (内核引导参数)
syslog.cfg (syslog配置,类似于/etc/syslog.conf)

可能根本不必关心syslinux.cfg和modules.lst,在这里仅仅讨论一下主配置文件config,

了尽量说明问题,这里去掉了大部分注释内容。其中的大部分值的含义是显而易见的。只是
文件最后的这些开关项可能有些不好理解:

OPEN_SHELL控制控制台的shell访问(/bin/ash)。

如果计算机的RAM 不足12 MB,将ONLY_8M置为"y"。

USE_SYSLOG决定syslogd是否运行。

SYSLOG_FLAGS表示的是syslogd启动时传递给它的一些标记信息。

文件1(ftp://ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z)中的是定制的config文件
。顺便提到的是,没能让floppyfw与的拨号提供商的DHCP协调工作起来。可能他们用的是一
些奇特的非标准DHCP服务器。但是,采用了一种就像是有一个静态的IP地址一样的方法解决
了这个问题。到现在已经正常运行两年了,说不准的会运行多久。

过滤规则

现在来看看firewall.ini文件。与floppyfw一起发布的原始firewall.ini文件仅仅设置为基
本的地址隐藏和拒绝少数几个端口。由于正在构建一个防火墙,因此必需对其进行必要的修
改。但是,建立功能齐全的包过滤规则需要大量的工作。理论上讲,希望先关闭所有的端口
,然后再根据将使用的服务打开必要的端口。不要紧张,其实大部分工作已经有人做好了!


是从Robert L. Zieglers的主页http://linux-firewall-tools.com/linux/faq/index.html
上的ipchains示例文件着手的。

Ziegler也是《Linux Firewalls》(New Riders Publishing, ISBN: 0735709009----人民邮
电出版社已经于2000年10月出版的这本书的中译本)一书的作者,他定制的规则都有很不错

注释,并且对每项设置的目的都给出了详细的解释。当需要打开某些端口时,这些注释是再
宝贵不过了的!

这里采用的ipchains规则蓝本可以在这里获得http://linux-firewall-tools.com/ftp/fire
wall/rc.firewall.ipchains。

建议首先将这个文件通读一遍,不能随便地拿来就用。有些部分甚至包含一些带有"OR"标记
的“二选一”片段,必需根据需要进行取舍。只要将前面的注释去掉,就可以激活配置项了


在有限的软盘存储空间中存储如此大的规则文件显然是不经济的,最好将认为可能永远也用
不到的部分删掉以节省磁盘空间的占用。在方便的地方保留一个原始文件的备份以防万一当
然是一个比较明智的做法。如果已经完成配置并将其写到软盘中,最好为该软盘制作若干拷
贝,免得软盘损坏了又给添乱。

清单2(ftp://ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z)提供了一个经过修改了的
firewall.ini。为了避免进行太多的全局编辑和可能对一个或多个规则造成的破坏,在文件
的开头进行了简单的变量替换,这样就可以将floppyfw的变量传给Ziegler所采用的相应的

量。某些情况下,如果没有合适的变量可用,就直接设置那些值。

根据清单2会体会到为了打开允许的内部网客户机访问一些基本的网络服务(诸如DNS、SMTP
、POP、NNTP、TELNET、SSH、FTP、HTTP和WHOIS等)的端口的方法。注意,没有打开POP端

,而是采用fetchmail取得远程服务器上的邮件。如果担心从远程主机上接收邮件时可能会

别人监听的话,可以选择fetchmail。因为fetchmail有一个非常好的特性,它允许首先建立
一个SSH连接,然后通过这个连接下载的邮件。这种情况下的确不需要打开POP端口。

记录日志

如果使用缺省的syslog.cfg文件,floppyfw会将所有的日志发送到控制台。是采用“无意识
”(或者说是没有显示器或键盘)方式运行的防火墙计算机的,所以却省配置对来说没有什
么用处。但是,想通过分析日志文件来监视防火墙当前的运行状况,下面就是的解决方法:


将内部网的一台安装了Linux操作系统的计算机配置成日志主机。为了做到这一点,确保的

志主机上的syslogd是带-r选项启动的,这个选项允许这个守侯进程接收网络上传递过来的

志消息(例如,在Red Hat系统中,需要编辑/etc/rc.d/init.d/syslog来做到这一点)。然
后,配置syslog.cfg文件,一定要将192.168.1.2改成日志主机的IP地址。可以在清单3(ft
p://ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z)中取得syslog.cfg文件。

一旦完成了这些文件的配置工作并且写回到了软盘中,就可以通过软盘启动并进行一些测试
工作了。在确保的内部网络计算机可以相互通信的前提下,检测一下是否可以访问已经为其
打开端口的外部服务。如果将日志记录在远程主机上,请密切关注/var/log/messages,否

注意力必需放在防火墙计算机的控制台屏幕上,它们提供了监视防火墙当前工作状况的线索
。可能需要将的防火墙规则配置得更巧妙,但是不要忘了将修改后的结果写回软盘哦。

一定要密切关注的日志文件。当最终将防火墙投入使用后,可能会惊奇地发现有那么多的人
正在在进行端口扫描或其它一些奇奇怪怪的事情,有了自己的防火墙,感觉很不错吧?

参考资料

Thomas Lundquist设计的floppyfw:http://www.zelow.no/floppyfw/

Robert L. Ziegler 编著的《Linux Firewalls》:http://linux-firewall-tools.com/lin
ux/faq/





--

        假使龙城飞将在,

            不叫胡虏渡关山。
※ 来源:.荔园晨风BBS站WWW bbs.szu.edu.cn. [FROM: 202.104.119.102]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店