更新时间:2023-12-24 19:12
M0n0wall是基于FreeBsd内核开发的免费软件防火墙。m0n0wall提供基于web的配置管理、提供VPN功能、支持DHCP Server、DNS转发、动态DNS、Ipsec、流量控制、无线网络支持等功能。该系统最新版本是1.8.1,最稳定版是1.1版
M0n0wall是基于以性能和稳定性著称的FreeBSD内核(目前基于8.4)的嵌入式的防火墙系统。
M0n0wall提供界面相当友好的完全基于web界面(PHP)的的配置管理(就BSD系统来说,这是首创),局域网内任何一台同一网段的计算机通过M0n0wall默认IP地址登录Web界面后均可对系统进行管理。M0n0wall还提供VPN功能;支持地址1:1映射、NAT端口映射、路由规则自定义配置、8.11b无线网络支持(FreeBSD4.11内核版本不支持54M无线网卡)等功能,特别值得推荐的是M0n0wall还增加了大部分硬件路由器未包含的流量控制功能(解决BT等大量下载和网页浏览速度矛盾的利器)。
Manuel Kasper,m0n0wall 的作者,说:
从我开始在嵌入式 PC 上摆弄包过滤器,我就想有一个漂亮的基于 web 图形界面的控制器来控制所有的防火墙功能,而不是通过键入单个的命令。在互联网上有很多漂亮的带有 WEB 接口的防火墙包(大部分是基于 Linux 的),但是没有一个符合我要求的(自由,快速,简单,干净以及我需要的所有特性) 。所以,我终于开始写属于自己的 WEB 图形界面。但是,我决不是想建立一个 webmin 的翻版----我想建立一个完整的、新的嵌入式防火墙软件包。它的所有将被发展为一个接上电源的盒子,可以通过串口设置 LAN IP 地址,登录进 WEB 界面设置它。然后我决定我不能像平常的启动系统那样通过 SHELL 脚本配置系统(由于它几乎不可能用 SHELL 脚本完成,所以我已经写了一个 C 程序产生过滤器规则) 并且自从我使用了基于 PHP 的 WEB接口,不长时间我就发现还是使用 PHP 来配置系统的好。这种方法,配置数据将不再必须被存储在那些被 SHELL 脚本解析的文本文件里面----它现在被存储在一个XML 文件里。所以我又完全重写了整个系统,除了相当多的“引擎罩底下的东西“外,看上去感觉没有什么改变。
m0n0wall 的第一个公共 beta 版于 2003 年 2 月 15 日,1.0 版本正好在一年后的 2004 年 2月 15 日。这两个版本之间共发布了另外 26 个公共 beta 版,平均每两个星期发布一个。每个版本完整的修改列表可以在 m0n0wall 网站的 Change Log 栏目找到。
专门解决像ADSL等非对称链路固有的因上行通道饱和造成TCP的ACK确认包拥塞所导致的下行宽带利用不足的问题;因PPPoE的特殊性带来的mss路由“黑洞”问题;信道利用率图表显示。
m0n0wall 是一项针对建立一个完整的、嵌入式的防火墙软件包的计划,该软件包可以安装于嵌入式 PC 里,提供所有商业防火墙的重要特性(包括易用性),而且价格只有商业防火墙几分之一(自由软件)。
m0n0wall 是基于 bare-bones version of FreeBSD,包括一个 WEB 服务器,PHP 和其它一些工具软件。整个系统的配置保存在一个 XML 文件当中,条理清晰。
m0n0wall 可能是第一个启动时通过 PHP 配置的 UNⅨ 系统,这种结构胜于使用 shell 脚本。并且整个系统的配置用 XML 格式保存。
m0n0 是一个防火墙,而防火墙的目的是提供安全。增加越多的功能,新增功能的弱点给防火墙带来安全隐患的机会就越大。m0n0wall 创建者及主要贡献者的观点是防火墙第 3 和 4层基本服务之外的任何东西都不属于 m0n0wall。一些可能合适的服务占用 CPU 和内存,而 m0n0wall 着眼于嵌入式设备,CPU 和内存资源都有限。非连续(保存)的文件系统是由于着眼于 CF(内核)映象的大小限制,消除了其它可能性。我们觉得以下服务应该运行在其它服务器,并特意不作为 m0n0wall 的一部分:
入侵检测/保护系统(IDS)
第三、第四层外的任何数据包检查
通用的 WEB 服务器
FTP 服务器
日志文件分析器
基于同样的原因,m0n0 不允许登录(login): 控制台没有登录提示符(以显示一个菜单代替),没有 telnet 和 ssh 服务进程(deamon)
M0n0wall对硬件要求很低,486芯片、32M内存(一般建议64M),8M硬盘(是个能用的硬盘就可以)加上网卡(两块,支持DMZ的话三块)即可正常工作并有相当不错的数据承受能力。该系统不使用外存交换机制,所以硬盘等外部存储器仅在系统引导时使用,加载完成后就不再需要外存,所以还可以使用FLASH电子盘(包括CF卡转接)来充当系统介质。这样可以取得相当高的可靠性,由于FLASH介质较硬盘存取速度稍慢,所以要稍稍牺牲一点起动时间。对于奔腾级的硬件配置,典型启动时间小于1分钟。
m0n0wall 1.8.1此版本要求平台至少是 128 MB RAM,disk/CF 大小至少是 32 MB