一、前言
由于本人对FreeBSD不熟悉,也不会PHP开发,所以都是拿来主义,一直使用m0n0wall 1.22中文版、1.235中文版和1.235中文插件版(30w核心)。
可是最近的项目要用无线网络来覆盖办公室,而m0n0wall 1.2x基于FreeBSD4.11的原因,对无线网络支持不好,一是支持的无线网卡很少(也比较难找),二是仅支持IEEE 802.11b标准,最高带宽为11Mbps。因此考虑使用基于FreeBSD 6.4的m0n0wall 1.3b18,来组建我的无线防火墙。

二、需求和问题
m0n0wall 1.3b18对无线网络支持比较好,对IEEE 802.11g标准的54Mbps支持还是不错的,无线网卡支持也比较多,我选用了Atheros 5005G/2413a芯片无线网卡。
由于我习惯使用1.235中文插件版,所以对其中的动态域名3322.org和shellcmd中ARP绑定等功能应用有需求,特别是3322.org动态域名。本次项目是使用ADSL/PPPoE来连接Internet,因此动态域名是必需的。
针对以上问题,寻求解决方案,于是乎就开始研究analyst在m0n0wall 1.2x上增加的3322.org动态域名的支持,找到希网(www.3322.org)提供的FreeBSD 4.x客户端,以及m0n0wall硬盘映像文件解包、封包的相关文章,边学边干,通过论坛和QQ群取经学习,终于在m0n0wall 1.3b18上成功增加了3322.org动态域名的支持。

三、参考资料
1、analyst, m0n0Wall硬盘映像文件解包、封包HOW TO,  
http://bbs.m0n0china.org/viewthread.php?tid=1
2、analyst, 增加希网(www.3322.org)DDNS更新的m0n0wall 1.21,  
http://bbs.m0n0china.org/viewthread.php?tid=42
3、xyjn, Howto:如何定制m0n0wall镜像文件, http://bbs.m0n0china.org/viewthread.php?tid=1&extra=&page=6
4、add1132, 关于给英文版加shellcmd ipshow 3322.org 的一点心得,
http://bbs.m0n0china.org/viewthread.php?tid=14345
对以上文章作者特别感谢。

四、工作过程
1、准备工作
☆ 从http://m0n0.ch/wall/上下载m0n0wall 1.3b18
☆ mini版FreeBSD 4.11
☆ 从希网(www.3322.org)下载ez-ipupdate-3.0.10-freebsd4.8-i386.tgz
☆ VMware workstation 5.5绿色版(不需要特别安装,很方便)
☆ CHKenFTP Server (一款小巧的FTP服务器软件,可以在我的博文“用g4u在VMware虚拟机上安装m0n0wall”中下载)
☆ g4u 2.4(用来安装测试m0n0wall)
2、过程实录
☆ 在我的工作电脑上先安装好VMware workstation 5.5绿色版(也就是解压缩到指定文件夹,运行几个批处理文件就行了),我的工作电脑为宿主机。
☆ 从http://www.freebsd.org下载mini版的FreeBSD 4.11,并安装在VMware上,称为FreeBSD虚拟机。
   以用户root登录。


ddns01.JPG
   创建工作目录system和change:
# mkdir system
# mkdir change
☆ 在宿主机上开启CHKenFTP Server,并简单配置,创建用户和指定该用户的目录,将下载好的m0n0wall映像文件generic-pc-1.3b18.img拷入这个目录。
☆ 回到FreeBSD虚拟机,ftp <宿主机IP>,并以刚创建的用户登录FTP Server,从FTP Server上下载generic-pc-1.3b18.img文件到FreeBSD虚拟机上。
    对映像文件解压缩:我们下载的generic-pc-1.3b18.img文件是压缩文件,首先要解压缩。


ddns02.JPG
# mv generic-pc-1.3b18.img generic-pc-1.3b18.img.gz
# gzip -d generic-pc-1.3b18.img.gz
    创建一个虚拟设备并挂载映像文件:
# vnconfig -s labels -c vn0 generic-pc-1.3b18.img
# mount /dev/vn0a system/

这样我们在system目录中就能看到generic-pc-1.3b18.img映像文件的内容了,从system中复制出mfsroot.gz文件到change目录,以便修改。
# cp system/mfsroot.gz change/
    卸载挂载的映像文件和虚拟设备:
# umount system/
# vnconfig -u vn0
    我们得到了mfsroot.gz这个系统文件,需要先解压缩再挂载,才能编辑内部的文件:
# gzip -d change/mfsroot.gz
# vnconfig -s labels -c vn0 change/mfsroot
# mount /dev/vn0 system/


ddns03.JPG
    此时我们就得到了详细的m0n0wall系统文件和目录,这就是映像文件解包过程。


ddns04.JPG
☆ 将从希网下载的ez-ipupdate-3.0.10-freebsd4.8-i386.tgz文件,解压缩后取出其中的ez-ipupdate文件,用FTP方式下载到FreeBSD虚拟机,并拷贝到~/usr/local/bin目录,替换掉原来的ez-ipupdate。
# cp ez-ipupdate system/usr/local/bin/


ddns05.JPG
# ln -s system/lib/libc.so.6 system/lib/libc.so.4


ddns09.JPG
# vi system/usr/local/www/services_dyndns.php
    修改$type和$vals中的相关内容,将DynDNS (custom)改为QDNS,将dyndns-custom改为qdns(注意是小写字母)。


ddns08.JPG
☆ 考虑使用Shellcmd和IPshow这两个插件,从论坛下载来插件,并以FTP方式下载到FreeBSD虚拟机中,并拷贝到~/usr/local/www目录。
# cp shellcmd.php system/usr/local/www/
# cp ipshow.php system/usr/local/www/
# chmod 755 system/usr/local/www/shellcmd.php
# chmod 755 system/usr/local/www/ipshow.php
    然后修改fbegin.inc文件,其也位于~/usr/local/www目录:


ddns06.JPG
# vi system/usr/local/www/fbegin.inc
    添加两行菜单项。


ddns07.JPG

☆ 至此,我要修改的工作已经完成(如果你还需要修改其他PHP文件,可以继续用vi编辑修改),卸载挂载的映像文件和虚拟设备:
# umount system/
# vnconfig -u vn0
    然后开始封包,对修改后的mfsroot进行压缩,并拷回到映像文件中:
# gzip -9 change/mfsroot
# vnconfig -s labels -c vn0 generic-pc-1.3b18.img
# mount system/
# cp change/mfsroot.gz system/
# umount system/
# vnconfig -u vn0
    最后,重新压缩映像文件,制作成你自己的m0n0wall 1.3b18映像文件:
# gzip -9 generic-pc-1.3b18.img
# mv generic-pc-1.3b18.img.gz generic-pc-1.3b18.img
☆ 用这个得到的映像文件,你可以使用g4u或physdiskwrite来安装测试m0n0wall,或者在使用中的m0n0wall中用Firmware更新功能上传映像文件(至少要是1.3b7版)。
    看看效果:


dyndns.JPG


ddns10.JPG


ddns11.JPG


ddns12.JPG

五、总结
    通过这次实践,在m0n0wall 1.3b18上解决了两个问题:希网(3322.org)动态域名支持、添加shellcmd和IPshow插件。当然起因是使用无线网络,用修改后的的映像文件也成功实现了54Mbps的无线网络覆盖。
    根据这个思路,m0n0wall中的php文件,都可以根据需要进行修改,包括汉化等。在对m0n0wall映像文件修改操作中要遵循以下的操作流程,才不会出错:
    对img文件解压缩→创建虚拟设备并挂载映像文件→复制出mfsroot.gz→卸载挂载的映像文件和虚拟设备→对mfsroot.gz解压缩→创建虚拟设备并挂载mfsroot→可以在挂载点目录中修改m0n0wall的文件,对m0n0wall进行改造→完成改造后卸载挂载的mfsroot和虚拟设备→压缩mfsroot→创建虚拟设备并挂载映像文件→将mfsroot.gz复制回映像文件(即挂载点目录)→卸载挂载的映像文件和虚拟设备→压缩img文件并更名成最终img文件。

六、版权声明
版权所有©2009,genehsu
本文版权归genehsu所有,在承认作者版权的前提下,允许任意转载;如需转载,请保留该声明,并标注出自m0n0wall中国。

转载于:https://blog.51cto.com/chenxing918/1179024

m0n0wall 1.3b18增加3322.org动态域名支持过程实录相关推荐

  1. ROS 5.12 上自动更新3322.org动态域名

    在ROS 5.12 上使用3322.org的动态域名,下面是自动更新脚本,把它用在schedule中就能实现自动更新动态域名了.在网上找的代码,可是有些小问题,我已经修正了,并在ROS 5.12下测试 ...

  2. 公云(3322)动态域名指定ip解析脚本

    适用于路由器ddns插件脚本 http://[USERNAME]:[PASSWORD]@members.3322.net/dyndns/update?system=dyndns&hostnam ...

  3. 思科E3200 路由器 DD-WRT 设置花生壳和3322.org动态域名(DDNS)

    花生壳设置(已測试) ddns.oray.com:80 username   aaaa password bbbb 主机名   abc.gicp.net URL       /ph/update?ho ...

  4. 3322 动态域名更新 IP 程序补丁

    因为使用的是动态 IP,远程访问比较麻烦,所以一般会申请一个 3322 的动态域名,然后通过更新域名对应的 IP 来实现域名访问远程主机的目的. 在 linux 下,3322 的网站提供了用 lynx ...

  5. 新狼邮箱服务器,搭建简单的邮件服务器+动态域名在互联网中使用

    利用server2003搭建简单的邮件服务器,使用动态域名做mx记录可以在互联网中使用,开始之前我copy了一些资料让大家了解一下pop3和smtp. POP3(Post Office Protoco ...

  6. Debian下安装3322动态域名更新程序

    Ez-ipupdate 是一个动态域名更新程序,可以更新希网的动态域名. 1.对于动态域名(DYNDNS),service-type参数应该选择 qdns 2.对于静态域名(STATDNS),serv ...

  7. dnspod每步nat123及3322动态域名同类端口映射域名解析软件对比

    首先说明下这三个名词:端口映射.域名解析.动态域名解析. 端口映射 80端口映射或自定义端口映射.可以解决80端口被屏蔽,可以在内网使用直接发布网站应用,可以在内网使用实现外网访问内网应用. 域名解析 ...

  8. dnspod每步nat123及3322动态域名同类网络辅助软件对比

    直接正题,就使用体会对比域名解析/动态域名/动态域名解析/端口映射相关免费软件或平台. dnspod dnspod域名解析.不需要转入域名.URL隐性转发另收费. dnspod动态域名解析.不需要转入 ...

  9. Serv-U组建个人FTP服务器, ——完全图解教程:FTP架设、端口映射、动态域名申请...

    serv-u组建个人ftp服务器, --完全图解教程:ftp架设.端口映射.动态域名申请(一) 为了支持"共享小组事务"的胜利开设,我花了两天时间,参考网上众老鸟文章之长,由我这小 ...

最新文章

  1. RecyclerView横向滑动与ViewPager冲突问题
  2. 此任务要求应用程序具有提升的权限
  3. Python中的collections
  4. arcgis api for flex 开发入门(二)map 的创建
  5. 为什么apm代购价那么便宜_为什么长焦相机那么便宜而单反相机那么贵
  6. C++ opengl 绘制三角形带
  7. 远程网络教育计算机统考试题及答案,2019年电大远程网络教育计算机应用基础统考题库真题试题附全答案...
  8. Python学习笔记之While循环(二)
  9. 【FFMPEG系列】windows下编译FFMPEG篇----之一(MingW)
  10. java int转integer方法
  11. Android Fragment切换动画效果
  12. CloudStack 4.4学习总结之cloudstack-management安装
  13. C语言 数组和指针
  14. Codeforces 1076 - 题集
  15. 微信小程序 | 自动定时结束录制
  16. CAAI名誉理事长李德毅院士谈机器的生命观
  17. 如何用excel做正交分析_利用Excel进行正交设计及分析.pdf
  18. 深度学习远程服务器配置
  19. Shell脚本(三)
  20. android x86 安装it,Android X86 虚拟机安装手册

热门文章

  1. LabView 下载与安装
  2. 计算机网络原理 课后题2
  3. 45 创新方法(TRIZ)5h-北京工业大学
  4. 【Python标准库】LZ77编码和lzma模块
  5. 炸弹人游戏_暴力枚举
  6. Android实现异步从网络加载图片列表
  7. 计算机在智能交通系统中应用,计算机技术在智能交通系统中的应用.doc
  8. 01触摸屏_Project Manager的设定和下载方式视频教程_EB8000
  9. 玩转华为ENSP模拟器系列 | 配置基于VLAN的二层协议透明传输示例
  10. 为什么建议软件测试自学而不推荐去IT培训机构?浅谈IT培训机构存在的意义