稍微簡介一下,m0n0wall是一套防火牆系統,基於FreeBSD發展的微型化作業系統,作為NAT有比得上高級硬體防火牆的功能,而且只需要很低等級的電腦硬體就可以安裝使用了。
如果有興趣需要更進一步的內容,煩請請各位google一下了。
在這裡的重點,是將他繁體中文化。簡體的部分大陸有,請參閱
http://bbs.m0n0china.org
由於他是FreeBSD的系統,要變更內容,必須安裝一套FreeBSD才行。使用VMWare安裝FreeBSD 6.2,然後把從官網下載的generic-pc-1.236.img ftp到安裝好的FreeBSD中,開工。
1.建立工作資料夾
# cd $HOME
# mkdir devel
# mkdir devel/change
# mkdir devel/system
# cd devel
2.下載m0n0的映像檔,上傳到$HOME/devel資料夾下
3.解壓縮generic-pc-1.236.img
# mv generic-pc-1.236.img generic-pc-1.236.img.gz
# gzip -d generic-pc-1.236.img.gz
4.將m0n0的映像檔mount到作業系統
# mdconfig –a –t vnode –u 0 –f generic-pc-1.236.img
# mount /dev/md0 system/
5.複製m0n0的檔案資料到change資料夾。
# cp system/mfsroot.gz change/
6.卸載m0n0的映像檔
# umount system/
# mdconfig -d -u 0
7.解壓縮mfsroot.gz
# gzip -d change/mfsroot.gz
8.不能直接存取mfsroot,需將mfsroot mount到作業系統
# mdconfig -a -t vnode -u 0 -f change/mfsroot
# mount /dev/md0 system/
9.進入usr/local/www/,將這裡所有的*.php, *.inc檔案複製出來,然後中文化。
全部修改完後再 將所有網頁覆蓋到 /mnt/md0/usr/local/www
記得 從 Windows 過來要加一個 chmod +wxrxrxr *
不然等 iso 做好安裝好 看不到網頁
10.卸載映像檔
# cd $HOME/devel
# umount system/
# mdconfig -d -u 0
11.重新製作映像檔
# gzip -9 change/mfsroot
# mdconfig -a -t vnode -u 0 -f generic-pc-1.236.img
# mount /dev/md0a system/
# cp change/mfsroot.gz system/
# umount system/
# mdconfig -d -u 0
# gzip -9 generic-pc-1.236.img
# mv generic-pc-1.236.img.gz generic-pc-tc-1.236.img
12.登入m0n0,利用此新的映像檔,更新firmware。
以上參考
http://mail.lsps.tp.edu.tw/~gsyan/os/m0n0wall.html
http://www.pczone.com.tw/vbb3/thread/29/128871/
http://bbs.m0n0china.org/viewthread.php?action=printable&tid=12718
感覺m0n0對於其他的語言很不友善,例如BrazilFW,不同語言是另外的設定檔,只要翻譯、套用,就可以變更了,而m0n0直接寫在php裡,要中文化必須一個個php打開來編輯,而且也不能用poedit之類的翻譯軟體...
基於開放原始碼,在這裡也放了一份給需要的人,其中的字句有不宜之處,請不吝賜教。
下載
==========
2009-11-12更新
找了google,其實有更聰明的作法...
官網提供以下這支shell scripts,實在太聰明了...只要下指令
./workon.sh 映像檔名稱
就可以「開始工作」,修改完相關檔案,打exit 跳出shell就自動umount、壓縮...把上面所有的步驟一次搞定。
以下為程式碼
#!/bin/sh
# Instructions (as root)-- make a directory and put this script inside it.
# chmod +x workon.sh
# Download or copy an image file into the directory
# ./workon.sh wrap-1.11.img
# This will start your SHELL inside the mounted image.
# When you are done, type exit. This exits your SHELL and lets
# this script proceed (umount, gzip, etc).
# The image file now contains your changes (and is no longer signed).
# Set your shell -- /bin/csh will always work
SHELL=/usr/local/bin/bash
[ ! -x $SHELL ] && echo "${SHELL} not executable (try /bin/csh)" && exit 1
# No more edits
IMAGE=$1
# Make dirs
mkdir -p tmp; mkdir -p mnt1; mkdir -p mnt2
# Decompress IMAGE
gzip -dc < ${IMAGE} > tmp/${IMAGE}
# Mount IMAGE
mdconfig -a -t vnode -f tmp/${IMAGE} -u 90
mount /dev/md90a mnt1
# Decompress mfsroot
gzip -dc < mnt1/mfsroot.gz > tmp/${IMAGE}-mfsroot
# Mount mfsroot
mdconfig -a -t vnode -f tmp/${IMAGE}-mfsroot -u 91
mount /dev/md91 mnt2
# cd to 2nd mount and exec SHELL
cd mnt2
${SHELL}
# SHELL has exited -- clean up and compress
for vtmp in `find . | grep '~$'`; do
echo Removing: ${vtmp}
rm -f ${vtmp}
done
cd ../
umount mnt2
mdconfig -d -u 91
gzip -c9 < tmp/${IMAGE}-mfsroot > mnt1/mfsroot.gz
rm -f tmp/${IMAGE}-mfsroot
umount mnt1
mdconfig -d -u 90
gzip -c9 < tmp/${IMAGE} > ${IMAGE}
rm -f tmp/${IMAGE}
程式碼結束
直接下載:
workon.sh





























































































