Linux下的防火墙(firewall)从诞生到现在,防火墙主要经历了四个发展阶段:第一阶段:基于路由器的防火墙;第二阶段用户化的防火墙工具套;第三阶段:建立在通用操作系统上的防火墙;第四阶段:具有安全操作系统的防火墙。目前世界上大多数防火墙供应商提供的都是具有安全操作系统的软硬件结合的防火墙,象著名的NETEYE、NETSCREEN、TALENTIT等。在Linux操作系统上的防火墙软件也很多,有些是商用版本的防火墙,有的则是完全免费和公开源代码的防火墙。大多数Linux教程都提到了如何在Linux平台中使用IPCHAINS来构筑防火墙。
设置和管理Linux操作系统中的防火墙是网络系统管理员的重要工作。一般情况下,配置防火墙确实是一件需要很高技术的工作。无论是商业版本的防火墙还是完全免费的防火墙都需要在Linux平台中进行软硬件的配置。
有没有能随身携带的,使用方便的Linux防火墙呢?答案是有的,现在我就向大家介绍一种能装在普通软盘里面的Linux防火墙。这套名字叫floppyfw的Linux 防火墙能存放在一张普通的软盘里,并独立的在RAM内存中运行。使用它能启动计算机,利用ipchains过滤掉无用的IP包,还可以使用它来配置IP伪装(IP masquerade),监视端口,通过它可以使用主机对其他网络中的计算机进行远程控制。Floppyfw功能十分强大,但是它运行所需要的硬件环境却非常低,除了需要一张软盘之外,只要8MB的内存就足够了。
Floppyfw需要的最的硬件设备如下:
最少8MB内存
3.5"软驱
显示卡
键盘
显示器
有的Linux系统中装两块网卡,能使得Floppyfw正常工作,这就需要每一块网卡的IRQ和内存地址都正确无误。在Linux系统中配置双网卡相信很多系统管理员都是轻车熟路的。
Floppyfw支持以下的网卡。
3Com 3c509
NE2000 compatibles
Tulip-based
Intel EtherExpress PCI
关于软件:
把Floppyfw做成一张可以引导的软磁盘是一件非常简单的事情。不过你要首先到http://www.zelow.no/floppyfw/download/ 把Floppyfw下载到计算机的硬盘上。Floppyfw最新的版本应该是1.0.5或者更高,Floppyfw是一个镜像文件,可以使用
# dd if=floppyfw-1.0.5.img of=/dev/fd0 bs=72k 这个命令把镜像文件解压并写到准备好的软盘上。
关于设置:
需要注意的是,一般的软盘格式化以后都是DOS(FAT)的格式。为了能顺利的启动Linux系统,我们需要在这张软盘上作一些修改。建议使用其他的计算机来修改这张软盘,如果在Linux系统中使用MTOOLS工具修改则更好。
使用命令如下:
$ cd /tmp
$ mcopy a:config
$ vi config
$ mcopy config a:
如果你使用的是其他的操作系统,我想在WINDOWS中可以使用记事本进行修改。在软盘中,我们可以看到floppyfw一共有5个文件:
config (主配置文件)
firewall.ini (过滤规则)
modules.lst (附加的 ip_masq 模块)
sysLinux.cfg (内核启动参量)
syslog.cfg (syslog 配置, 例如/etc/syslog.conf)
在一般情况下,我们不需要修改sysLinux.cfg或者modules.lst文件。我们主要的任务就是要修改config这个文件。为了简单明了的说明问题,我在这里不想过多的解释config这个文件里面的具体的配置清单,只是着重说明config文件末尾几个重要的事项。
在(/bin/ash)找到"OPEN_SHELL controls shell"这行文字,如果您的计算机的内存少于12MB,把ONLY_8M设置成"Y"。USE_SYSLOG能测定系统中syslogd是否运行,而SYSLOG_FLAGS则是判断syslogd启动的标志。用户可以根据自己的实际情况进行修改。
附录:配置清单一,这是一个通过测试的标准配置清单。由于这个Linux系统中没有提供DHCP服务,使用的静态的IP,所以仅供有相似服务的用户提供参考。点击这里下载清单一
关于过滤规则:
现在,让我们再来看看firewall.ini文件。没有修改之前的floppyfw 的firewall.ini文件默认设置了静态的IP伪装和拒绝一些固定端口的访问。因为我们需要建立自己的防火墙,所以我们需要对 firewall.ini文件进行修改。我们需要全面的设置过滤规则,关闭一些我们认为存在前在危险的端口。
在这里因为篇幅的关系我就不再讲解如何设置ipchains。如果您想知道更详细的ipchains的配置方案和具体使用方法,推荐您参考以下的这个国外的Linux防火墙ipchains配置方案。
firewall.ini的过滤规则的具体设置可以参考配置清单二(ftp: //ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z),这是一个已经修改好了的配置。如果你对Linux的防火墙不太熟悉,那么可以直接下载这个配置清单来进行参考或者直接使用。
清单二可以提供最基本的DNS, SMTP, POP, NNTP, TELNET, SSH, FTP, HTTP, 和 WHOIS服务,一般的客户端计算机都可以通过安全的端口访问网络和使用以上的服务。
关于LOG
一般的Linux系统中的LOG文件可不少,主要是记录系统运行中的一些主要参数和记录。上面已经说过了,syslog.cfg就是一个管理和记录LOG 的文件。Floppyfw能通过这个syslog.cfg文件记录下Linux防火墙系统中的控制记录,例如键盘错误,显示器没有安装等信息也被如是的记录下来。这为今后系统管理员分析和解决系统问题提供了有利的依据。syslog.cfg的设置也不难,首先把syslog.cfg设置成某台计算机的主记录文件。例如,在Red Hat系统中,通过编辑/etc/rc.d/init.d/syslog可以达到目的。如果这台计算机的IP是192.168.1.2,那么在 syslog.cfg则要配置成一致的IP。具体的配置清单可以参考"清单三"(ftp: //ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z)