构建一个基于软盘的防火墙
作者:SufiaLi | 来源:互联网 | 2017-11-07 23:41
文章标题:构建一个基于软盘的防火墙。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,否则注意力必需放在防火墙计算机的控制台屏幕上,它们提供了监视防火墙当前工作状况的线索。可能需要将的防火墙规则配置得更巧妙,但是不要忘了将修改后的结果写回软盘哦。
一定要密切关注的日志文件。当最终将防火墙投入使用后,可能会惊奇地发现有那么多的人正在在进行端口扫描或其它一些奇奇怪怪的事情,有了自己的防火墙,感觉很不错吧?
推荐阅读
-
本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ...
[详细]
蜡笔小新 2024-12-26 19:47:05
-
在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ...
[详细]
蜡笔小新 2024-12-26 16:16:06
-
-
本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ...
[详细]
蜡笔小新 2024-12-25 13:17:38
-
本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ...
[详细]
蜡笔小新 2024-12-19 18:30:14
-
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
-
本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ...
[详细]
蜡笔小新 2024-12-26 16:36:34
-
本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ...
[详细]
蜡笔小新 2024-12-25 16:00:21
-
本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ...
[详细]
蜡笔小新 2024-12-25 11:46:55
-
本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ...
[详细]
蜡笔小新 2024-12-25 11:31:48
-
本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ...
[详细]
蜡笔小新 2024-12-24 17:11:38
-
本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ...
[详细]
蜡笔小新 2024-12-23 18:58:52
-
本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ...
[详细]
蜡笔小新 2024-12-23 16:17:45
-
本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ...
[详细]
蜡笔小新 2024-12-21 14:45:11
-
本指南详细介绍了如何在同一台计算机上配置多个GitHub账户,并使用不同的SSH密钥进行身份验证,确保每个账户的安全性和独立性。 ...
[详细]
蜡笔小新 2024-12-18 10:54:08
-
本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ...
[详细]
蜡笔小新 2024-12-18 09:58:05
-