Coyote篇
首先要感謝PCZONE網友linux xp的同意,轉載文章內容及其所提供的安裝設定畫面。由於這套系統我沒用過,所以,只能直接轉載linux_xp兄的文章,不過我會用看看,到時再將心得報告給大家的。因為文章還在整理分類中,所以內容會有些凌亂,請見諒!
【圖解教學】免費路由器 Coyote (北美小銀狼)
簡介:
免費「軟體路由器」Coyote Linux (北美小銀狼)
Linux 核心,GPL授權,開放原始碼
硬體最低需求:486以上,12MB RAM,軟碟機一台
硬體建議配備:P-200 以上,32MB以上 RAM,軟碟機一台
功能:NAT,DHCP,Firewall (iptables),QoS
路由效率:依硬體性能而定,CPU愈快,效率愈高,媲美一台幾萬元的硬體路由器。
支援語言:簡體中文,English
相關鏈結:
----------------------------------------------------------
官方網站:
下載 Coyote Linux 2.22 版,Windows下的開機磁片製造軟體
----------------------------------------------------------
廢話不多說,開始進入圖解教學:
Coyote (北美小銀狼) 需由磁碟片開機執行
首先,下載windows下的路由器開機磁片製作軟體
解壓縮後,執行它
STEP.1
STEP.2
STEP.3
STEP.4
STEP.5
STEP.6
STEP.7
STEP.8
STEP.9
管理介面預覽:
網址列打:http://路由器的IP:8180
- END -
圖解教學完畢
已知問題:
使用 RTL8139 系列網卡
會一直出現 Too much work at interrupt,中斷過多的錯誤訊息
這是因為 Coyote 內建的 8139too.o 驅動,有問題的關係
但不會影響運作
解決方法:
更換成 NAPI 版的驅動
因為方法有點複雜,所以這邊不做介紹
若有需要請參考下面鏈結
研究參考資源:
軟件路由器論壇 (大陸簡體字網站)
http://www.routerclub.com/ipb/index.php?showforum=2
內建系統指令沒有vi,用cat秀出內容
語言設定檔,在磁片中的位置:
/etc 中,並沒有 apache 設定檔 httpd.conf
apache 的預設語言,應該不用改...
修改後,加入系統的方法:
方法一:直接修改磁片的檔案
1.解開 language.gz,改完後,壓回 gz,存回去,拿去重開機
方法二:用 ssh 操作
1.將改好的 language 拷貝到磁片根目錄
2.開機後,使用 ssh 連線
3.
代碼:
mount /dev/boot /mnt cd /mnt cp language /var/language cd / umount /mnt lrcfg.back reboot
在 ssh 下,不管操作什麼東西
都是 RAMDISK 中的東西,重開機就消失了
指令:lrcfg.back
是將 RAMDISK 中的系統,回寫磁片的意思
相當於 web 管理介面中的「立即備份」
簡體中文 轉 繁體中文,建議的用詞:
字符 = 字元
內核 = 核心
轉發 = 轉換
激活 = 啟動
掩碼 = 遮罩
遠程 = 遠端
模塊 = 模組
進程 = 程序
接口 = 組態
內存 = 記憶體
串口 = 連接埠
計算機 = 主機
網關 = 閘道器
端口(port) = 埠
重新加載(reload) = 重新載入
子網掩碼 = 子網路遮罩
域 = 網域
主機名 = 主機名稱
用翻譯軟體,好像都會亂翻一通
word 翻的比較準
以下為PCZONE網友ckmarkhsu提供正體中文化方法,此方法較為簡單,也一並提出供網友參考。
-------------------------------------------------------------------------
正體中文語系
已修正大量用詞
放置步驟
將檔案解壓縮放置到file\langue資料夾
再將Data\langue.txt
裡面隨便加上一行
PHP 代碼:
TChinese,cht
--------------------------------------------------------------------------
將 Coyote Linux 轉到硬碟開機的方法,參考文件:
http://www.routerclub.com/ipb/index...wtopic=4268&hl=
將 Coyote Linux 轉到 USB 快閃碟開機的方法,參考文件:
(需登入才能看 )
http://www.routerclub.com/ipb/index.php?showtopic=4069
說明:
必要條件:
硬碟或USB碟的磁區,檔案系統格式只能是FAT16
不支援 FAT32 / NTFS / EXT3.....等等
需要兩支程式:
1. syslinux.com:這是將硬碟或usb碟磁區,弄成可以Linux開機的小程式。
2. Linux (Coyote Linux 核心,檔名就叫 Linux,無副檔名):針對不同的儲存媒介開機方法,需要不同的核心,例如使用硬碟開機,就必須使用支援硬碟開機的核心。
具體方法步驟:
1. 使用 syslinux -s c: 將磁區弄成可Linux開機。
2. 拷貝對應的核心 (檔名 Linux),到磁區裡頭。
3. 拷貝軟碟中除了「LDLINUX.sys」和「Linux」以外的全部檔案,到磁區裡頭。
4. 修改開機設定 syslinux.cfg,硬碟為 boot=/dev/hda1,msdos,USB碟為 boot=/dev/sda1,vfat
5. 詳細操作指令,和兩支程式的下載處,請參考上面的參考文件
基本上,方法都是大同小異
硬碟和USB碟的差異
只在使用的核心版本,還有最後的設定檔指定由何設備開機
小技巧:
在DOS下要驅動USB是有困難的
而 win2000/xp下,要syslinux.com -s x:會出現錯誤
若有 VMware 這個軟體
在製作USB碟或CF卡電子硬碟開機的時候會很方便
在設定虛擬機器的時候,將硬碟指定為實體磁區
而磁區代號就是快閃碟
例如:插入快閃碟時,windows給的代號是k:,實體磁區則指定為K:
用DOS開機片讓 VMware 虛擬機器開機,接著依照步驟操作即可
簡易防火牆設定
前言:
Coyote Linux 使用的防火牆是 Linux核心內建的 iptables
iptables 是一種的封包過濾式的防火牆
以使用者訂定的「規則」來過濾封包
其性能不輸給市面上一台幾十萬的硬體防火牆
規則的判斷順序,為「由上而下」,逐列逐條的來判斷
1.前面如果讓某個封包通過了,即使後面才封鎖它
那就來不及了,封包已經通過了,沒得救
2.前面如果封鎖了某個封包,後面卻又讓它通過
那這個封包,還是會通過
這兩點,是設定上需要注意的...
防火牆設定鐵則:允許特定,封鎖全部
意思就是
前面讓一些特定服務需要的封包通過
最後一條,再來個全部封鎖
仍可錯殺一萬,也絕不讓任何一條漏網之魚通過
設定範例如圖所示:
說明:
在這個範例裡,總共讓以下服務通過:
22 (ssh) Linux 遠端控制服務
25 (smtp) 發信 e-mail 服務,有架設e-mail server 需打開
53 (dns) 名稱伺服器服務,dns 需要 tcp / udp 兩個協定
80 (http) 網頁伺服器服務
最後一條,拒絕 (deny) 全部,封鎖全部!
激活 = 啟動 (yes 或 no),yes 生效,no 無效
源 = 封包來源
目的地 = 封包目的地
permit = 允許通過
deny = 拒絕通過 (路由器會直接丟棄封包)
internet = 表示來源為 internet (網際網路,互聯網,外部網路)
Local Network = 表示目的地為內部區網 (也就是你的伺服器啦)
edit = 編輯規則
delete = 刪除規則
什麼是 ICMP 協定:
ICMP (Internet Control Message Protocol)
網際網路控制管理協定
舉個最簡單的例子:PING ,就是 ICMP協定
ping 這個指令,常用來測試某個網站是否還存活
理論上很好用,為什麼要拒絕它通過呢?
駭客攻擊的手法,有一種叫做「阻斷服務式攻擊」
DoS (阻斷服務式攻擊):
藉由固定幾台的電腦,對某一站台連續發送ICMP封包
若該站台回應此 ICMP 封包
則有可能因為頻寬用盡,或著CPU疲於處理回應
而導致其它網站服務中斷,例如:web網頁服務中斷
此稱之為「阻斷服務式攻擊」
DDoS (廣域式阻斷服務攻擊):
散發病毒,使網路上電腦感染
並於一特定時間,或特定方法使其發作
病毒發作後的電腦,也許有幾萬台,同時對某一站台發送ICMP封包
該站台即使處理器再強,頻寬再大
也會因為無法應付,而導致其它服務中斷
此稱之為「DDoS 廣域式阻斷服務攻擊」
範例中的第一條
即防止回應ICMP封包,包括最常見的PING封包
但其實最後一條的封鎖All,亦有同樣功效
若要允許 ICMP 封包,可將規則更改為 permit (允許)
以方便從外部網路,測試內部伺服器是否仍然運作
但亦代表對於DoS攻擊,無招架之力
較高階的設定法,可以偵測流量
一開始允許ICMP
而當某一 來源IP 發送之 ICMP 封包流量異常時
則對其封鎖全部
由於是這是較高階的設定法,須寫script,此篇不做討論
Layer7 軟體應用層,關鍵字過濾 防火牆簡介
Layer7 是 OSI網路模型,第七層「軟體應用層」的意思
簡單的說:就是可以針對特定「應用軟體」做封包過濾
舉例:
Q1:請問要怎麼防止MSN,YAHOO即時通?
Q2:請問要怎麼防止員工上班偷懶聊天,偷傳機密檔案出去?
Q3:請問要怎麼防止連上某些網站 (色情網站,網路硬碟)?
The solution or answer is Layer7 Firewall
太好了∼有救了,答案就是支援關鍵字過濾的防火牆
以下範例轉貼自 軟件路由器論壇 (簡體字網站)
引用:
作者: wsgtrsys
例子:
禁止關鍵字「sina",禁止訪問所有包含sina字符的網站。
iptables -I FORWARD -s 192.168.2.0/24 -m string --string "sina" -j DROP
限制某一個IP訪問端口23的並發數在2以內(不過好象不太正常):
iptables -A FORWARD -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j DROP
設置IP 192.168.2.3在周一到周五早上8點到下午6點能訪問互聯網
iptables -I FORWARD -s 192.168.2.3 -m time --timestart 8:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT
阻止bittorretn協議:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent -j DROP
阻止MSN:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto msnmessenger -j DROP
阻止QQ協議:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto qq -j DROP
阻止CS:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto counterstrike -j DROP
阻止雅虎通:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto yahoo -j DROP
阻止socks代理:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto socks -j DROP
限制BT協議的帶寬:
iptables -t mangle -A POSTROUTING -m layer7 --l7proto imap -j MARK --set-mark 3
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 3 fw flowid 1:3
接著為各位說明一下
Coyote Linux 設定 QoS (頻寬管制)的大致方法
是這樣子的
web管理介面在設定什麼,根本就看不懂啦
若有大大知道怎麼在 web管理介面設定 QoS
請不吝分享心得,感謝
由於 Coyote Linux,就是 Linux
自然它也支援 TC 語法
(Linux核心直接內建支援,專門用來設定QoS的指令)
參考文件:(簡體中文)
http://bbs.51758.com/viewthread.php...light=%2Bfoster
該參考文件裡頭提到
第一步驟,就是把 web管理介面裡的QoS設定,給關了
換成用 TC 指令語法,直接寫 script 命令腳本
轉貼上面那個參考文件:
引用:
作者: foster
1.首先不要用web管理開啟qos,QOS Init Configuration中QOS init type 一定要是QOS Disabled,不使用自帶的qos腳本。
2.如果想限制一個ip的帶寬在/etc/rc.d/rc.local文件中加入以下內容:
tc qdisc add dev eth0 root handle 1: htb r2q 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 50kbit burst 10k
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.111.168 flowid 1:1
就可以限制192.168.111.168的帶寬為50k了,實際下載速度為8k左右。
3.如果想限制一段ip的帶寬在/etc/rc.d/rc.local文件中加入以下內容:
.................. (尚有文章)
聯絡EMAIL:rushoun@yahoo.com.tw或是rushoun@gmail.com