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