当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

构建一个基于软盘的防火墙

文章标题:构建一个基于软盘的防火墙。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  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和内存地址;对另外一块网卡也重新进行配置,记住,要保存新的设置。是在EtherDisk 4.3上找到3C5X9CFG.EXE的,可以在3Com的官方网站http://www.3com.com/上找到最新版本的EtherDisk。
  
  软件需求
  
  制作floppyfw引导盘很简单,首先需要在这里(http://www.zelow.no/floppyfw/downlo...诚笮吹饺砼躺希?/a>
  
  # 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...嫉幕嵩诵卸嗑谩?/a>
  
  过滤规则
  
  现在来看看firewall.ini文件。与floppyfw一起发布的原始firewall.ini文件仅仅设置为基本的地址隐藏和拒绝少数几个端口。由于正在构建一个防火墙,因此必需对其进行必要的修改。但是,建立功能齐全的包过滤规则需要大量的工作。理论上讲,希望先关闭所有的端口,然后再根据将使用的服务打开必要的端口。不要紧张,其实大部分工作已经有人做好了!
  
  是从Robert L. Ziegler's的主页http://linux-firewall-tools.com/lin...纠?募?攀值摹?/a>
  
  Ziegler也是《Linux Firewalls》(New Riders Publishing, ISBN: 0735709009----人民邮电出版社已经于2000年10月出版的这本书的中译本)一书的作者,他定制的规则都有很不错的注释,并且对每项设置的目的都给出了详细的解释。当需要打开某些端口时,这些注释是再宝贵不过了的!
  
  这里采用的ipchains规则蓝本可以在这里获得http://linux-firewall-tools.com/ftp...wall.ipchains。
  
  建议首先将这个文件通读一遍,不能随便地拿来就用。有些部分甚至包含一些带有"OR"标记的“二选一”片段,必需根据需要进行取舍。只要将前面的注释去掉,就可以激活配置项了。
  
  在有限的软盘存储空间中存储如此大的规则文件显然是不经济的,最好将认为可能永远也用不到的部分删掉以节省磁盘空间的占用。在方便的地方保留一个原始文件的备份以防万一当然是一个比较明智的做法。如果已经完成配置并将其写到软盘中,最好为该软盘制作若干拷贝,免得软盘损坏了又给添乱。
  
  清单2(ftp://ftp.mfi.com/pub/sysadmin/2001...苯由柚媚切┲怠?/a>
  
  根据清单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(ftp://ftp.mfi.com/pub/sysadmin/2001...yslog.cfg文件。
  
  一旦完成了这些文件的配置工作并且写回到了软盘中,就可以通过软盘启动并进行一些测试工作了。在确保的内部网络计算机可以相互通信的前提下,检测一下是否可以访问已经为其打开端口的外部服务。如果将日志记录在远程主机上,请密切关注/var/log/messages,否则注意力必需放在防火墙计算机的控制台屏幕上,它们提供了监视防火墙当前工作状况的线索。可能需要将的防火墙规则配置得更巧妙,但是不要忘了将修改后的结果写回软盘哦。
  
  一定要密切关注的日志文件。当最终将防火墙投入使用后,可能会惊奇地发现有那么多的人正在在进行端口扫描或其它一些奇奇怪怪的事情,有了自己的防火墙,感觉很不错吧?
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有