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

Coyote Linux 的 web管理介面,應該是使用了 apache 的精簡核心
但我找不到它的 www 放在何處
不過,它有一個語言設定檔


位於系統位置: /var/language/language

內建系統指令沒有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

回DIY首頁