PCZONE 討論區

PCZONE 討論區 (https://www.pczone.com.tw/vbb3/)
-   -- 網 路 技 術 版 (https://www.pczone.com.tw/vbb3/forum/29/)
-   -   【教學】Coyote Linux 頻寬管制 (QoS) 設定教學 (https://www.pczone.com.tw/vbb3/thread/29/116666/)

linux_xp 2006-07-20 09:53 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
[QUOTE=littlesa]嗯嗯~先謝謝你的回答~我會在了解一下這隻script~
其實我也很想把我前端的ip分享器拿走~
不過因為我是剛剛接觸linux的防火牆~
對它的設定還不是很了解~
所以還不放心把它放在跟外部連線~
(很久以前~我就是把它放在跟外部連線~結果被人竄改密碼~唉~不過那時才剛碰linux啦~什麼東不懂~連防火牆都沒架~所以被侵入是一定的)
等我了解完這隻script~對防火牆的設定了解後~我會將它放在最前面的~
我沒有申請固定的ip所以我用的是浮動的~不過我有去申請ddns~
我想不管是浮動ip或是前面有接ip分享器~這應該不是最大的問題~
這隻script應該還是有辦法改成我要的~我會試著改改看~到時我會分享我改的script~畢竟初學者在架linux~還是先架在IP分享器後~要不然會跟我一樣~一開始就被侵入~到時就有人會說~Linux怎麼這麼容易被侵入壓~哈~[/QUOTE]

最主要是要把握一個原則
防火牆鐵則:封鎖全部,開放特定

一般是對外封鎖全部
在開放特定如:
25 (smtp)
53(dns)
80(web)
443 (https)
110 (pop3)
.....
等等,常用的 port,假如你的主機有對外服務的話

在嚴格一點,對內也全部封鎖,開放特定 port
避免內部電腦中木馬病毒,被當成跳板,從內部攻擊主機
或者公司內有間諜,內神通外鬼
不過一般是不會做到這種程度啦
除非是講究高度安全性的企業

telnet 絕對不要使用,因為它是明碼傳輸,帳密會被攔截竊取
要遠端登入,要用 ssh 加密傳輸

ssh 若無必要,不要對外開放,不然會被攻擊破解 (字典攻擊,或暴力算法)

ssh 若對外開放,絕對不要允許 root 登入
因為 root 的這名字,大家都知道,直接破解密碼
而一般使用者,光要知道名字就有困難
以一般帳號登入後,在 su- 轉成 root 權限即可

可以的話,限制特定 IP 才能從外部 ssh 登入,會比較安全

密碼至少 6 個字以上,參雜英文和數字
一個好的方式,是用中文拼法
例如:你好嗎
注音拼法:su3cl3a87
(看起來就像一堆亂碼,誰會知道那是中文,好記又安全)

以上是一些 Linux 資安的基本觀念,提供作參考
:p

littlesa 2006-07-23 06:26 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
我可以請問一下~我加上第三張網路卡後~
我的route -n變成這樣~
eth0 192.168.1.5
eth1 192.168.2.254
eth2 192.168.2.200(快速通道)

192.168.2.0 * 255.255.255.0 U 0 0 0 eth2
192.168.2.0 * 255.255.255.0 U 0 0 0 eth2
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
而我內網的電腦閘道是設為 192.168.2.254 所以我把第一條刪除改成這樣
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
192.168.2.0 * 255.255.255.0 U 0 0 0 eth2
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

不過問題來了~如果以上面的route規則來說~他到192.168.2.0這個網段會走eth1 這條~而不會走eth2這條~是不是這裡的設定也要改~
再來~我內部的電腦~閘道是設為192.168.2.254~所以我要傳檔案至samba server 就只會走192.168.2.254~而不會走192.168.2.200~
不過因為只到samba serve~r所以從內部電腦到server ~走這條192.168.2.254是不會被限制速度~(所以出去並不會走快速通道囉)
所以如果以正常來說~要抓取samba的檔案~
它會走eth2(192.168.2.200) ~
而要把檔案傳至samba會走eth1(192.168.2.254)囉~:confused:

linux_xp 2006-07-23 08:24 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
提供我家裏的網路環境,給你作參考:

[img]http://img84.imageshack.us/img84/2109/adsl1qq.png[/img]

1.Linux 主機,閘道主機,擔任 IP 分享器/頻寬管理器,其上有 SMB 服務

2.共有三片實體網卡,一個虛擬網卡介面(非必要)

eth0:固定制真實 IP,對外網卡

eth0:0 虛擬網卡,用來和小白龜 telnet,區網電腦可直接打 [url]http://192.168.1.1[/url] 連進小白龜設定網頁

eth1:對內網卡,虛擬 IP 192.168.0.254,有 QoS

eth2:smb 專用快速通道,無 QoS,192.168.0.6


[img]http://img215.imageshack.us/img215/5859/routexd2.gif[/img]

首先看到,route -n

顯示出連接 192.168.0.0/24 ,有 eth1、eth2
就一般常識來說,這看似錯誤的路由規則,應該是不會通的
因為封包不知道要走那條.....

但事實上,這樣會通
因為這不是「傳統路由表」,是「多重路由表」

Linux 實際上,提供 255 個 route table
也就是說,可以設定 255個路由表
指令為:ip
屬於 iproute2 套件

使用指令 route 的時候,只能看到「傳統路由表」
table main,或者 table 254

一般來說使用 Linux,不會去動到「多重路由表」
所以指令 route 也就夠用了

不過這支 script,預設會使用 table 139
來為 eth2 建立多重路由表
因此必須使用 iproute2 套件的 ip 指令
才能看到詳細的路由狀況

至於為什麼要動用到「多重路由表」
這是因為只有這樣子,才能解決 smb 被 QoS 限速的問題

因為 iproute2 的原理,有點複雜,若有興趣,請自行參閱書籍
:)

基本上 Linux 若是為「閘道主機」
「閘道主機」:Linux 主機對外網卡,直接和 ADSL 數據機連接
使用那支 script 是沒問題的
並不需要去瞭解原理,變數改一改即可使用

但是我不知道你的網路環境是怎樣
若可以話,請畫張圖來看,會比較清楚,討論會比較方便
:)

littlesa 2006-07-23 09:20 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
我家的網路圖跟你的差不多~
借用你的網路圖修改了一下~
[URL=http://imageshack.us][IMG]http://img249.imageshack.us/img249/7032/netzj9.jpg[/IMG][/URL]

1.Linux 主機,閘道主機,擔任 IP 分享器/頻寬管理器,其上有 SMB 服務

2.共有三片實體網卡

eth0:固定制真實 IP,對外網卡

eth1:對內網卡,虛擬 IP 192.168.2.254,有 QoS

eth2:smb 專用快速通道,無 QoS,192.168.2.200
[URL=http://imageshack.us][IMG]http://img83.imageshack.us/img83/369/net1ey3.jpg[/IMG][/URL]
我設定的大致上跟你差不多~但是~他還是沒辦法走快速通道~:(
先跟你說我怎麼測試流量~
我是按ctrl +alt +delete
有個網路功能…
平常我沒限定流量時~對samba拿取資料~
他的百分比會在30% 40%左右徘徊~
如果我開啟QoS後~他就只會停在7%左右
而使用你的script時~他也只停在7%左右
因此由此可證明他沒有走快速通道~
我想請問一下~你的網路圖…並由沒有畫出第三張網路卡~你是否也是接至同一個SWITCH呢~:confused:

linux_xp 2006-07-24 12:01 AM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
嗯,這樣接並沒有錯,eth1、eth2 接同一台 HUB 即可

那張圖是直接取用另一篇文章的,並不是針對這個主題特別去畫
[url]http://phorum.study-area.org/viewtopic.php?t=40062[/url]


我的網路環境,和你的差別,看來只有兩點

1.
我的 Linux 主機,是直接擔任 IP 分享器,前面沒有再接 IP 分享器

因為 Linux 作 NAT 性能比較好
前端接低階的 IP分享器,上網速度會被嚴重拖慢
另多接一台 IP 分享器,會浪費電力
再來是前面接 IP分享器,「透明 proxy」會很難作,需下非常複雜的重新導向語法
如果直接連 ATU-R,「透明 proxy」就很容易
基於以上理由,前端接 IP分享器,百害無一利,建議不要接比較好

註:
前端若有接 IP 分享器
防火牆 script 中,關於 NAT 部份的原始碼,必須註解掉
否則無法上網

2.
我的是固接 IP,你前面好像有提到是用 PPPoE 撥接的

如果是 Linux PPPoE 的,介面為 ppp0
在啟動防火牆 script 之前,必須先確認 ppp0 已經存在
否則 script 執行會發生錯誤,iptables 會回報介面不存在

ppp0 是一個特殊的網路介面
它只有在撥接成功時,才會出現

但如是靠前端 IP 分享器撥接的話
Linux 對外網卡仍是 eth0
因為此時 Linux 不負責撥接,ppp0 永遠不可能出現
以這個情況來說,設 eth0 是正確的

-----------------------------------------------------

smb 無法走快速通道的問題
估計是因為 smb 的設定檔,沒有指定 interface 的關係

samba 的設定檔,位置在 /etc/samba/smb.conf

找其中一行
#interfaces = eth2

它原先是註解,把註解拿掉,值改成 eth2 即可
或是直接新增一行,打入內容,也可以
更改後,要重新啟動或讀取,才會生效

--------------------------------------------------

再來是 client 端的設定

如果是用:\\IP
指定 IP 的方式,來連接,應該沒問題

用 :\\電腦名稱
這樣子的話,要確定該電腦名稱的 IP 解析,是指向 eth2 的

於 smb.conf 中
項目:netbios name = xxxxxx
可以指定 smb 要出現在網路芳鄰中的電腦名稱

client 端電腦
打:
\\hostname (主機名稱)
\\netbios-name (smb 名稱)
都可以指向該台主機的 smb 服務
但有時候,這兩者代表的 IP 是不同的...

最妥當的方法,是直接打:\\IP
省的解析名稱,連接也會比較快速
可以建立成桌面捷徑,直接按兩下即可連接
:)

littlesa 2006-07-24 12:11 AM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
真的太感謝你了~找到問題點了~哈哈
原來我原本在xp上面設的網路磁碟機是用電腦名稱而又在host上面指向192.168.2.254~而不是只向192.168.2.200快速通道~難怪~每次都會被限制住~呵呵~真的感謝你~我用ip就ok了~等我會去host上面更正ip就大功告成~!真的再次感謝~近期內~我會把他直接擔任 IP 分享器~呵呵~真的太高興了~

littlesa 2006-07-24 03:19 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
對了~我一直很想問一個問題~
如果以第一個例子來講~
你的範例應該是用
ADSL 2M/512K
再QoS裡的定義
tc class add dev eth1 parent 10: classid 10:1 htb rate 64kbps ceil 64kbps
因為單位是kbps而不是KByte/s
所以這裡的64k應該是要等於512k是吧~所以規則應該如下~
tc class add dev eth1 parent 10: classid 10:1 htb rate 512kbps ceil 512kbps
因為我一開始設為64kbps 他會建議我設高一點的訊息~
所以我才發現這個問題~因為我看到每個人回答的規則幾乎都已經換算成KByte/s 的單位~可是卻在規則上用kbps~
不知道我這樣的發現是不是對的~

linux_xp 2006-07-24 07:13 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
佇列規則有兩種形式:CBQ 和 HTB

HTB 採用的單位是 KB/s
不過那邊要寫 kbps
《iptables 技術實務》 那本書,有特別提到

實際用 MRTG 流量統計驗證
那邊的 kbps 的確就是 KB/s

[img]http://img64.imageshack.us/img64/9721/mrtgzw1.gif[/img]
如圖,這是我的閘道主機對外網卡 MRTG 流量統計表
上傳的上限,設在 64kbps
假設此處的 kbps 是指 kbit/s ,那它根本不可能跑到 300 多


至於 HTB 佇列規則,為什麼單位明明就是 KB/s,卻要寫 kpbs 才行
這個大概要去問 HTB 或 tc 的作者了
tc 的作者高興程式寫這樣,也就只好照著用了,除非自己改原始碼 :eye:

-----------------------------------------------------

個人猜測是因為網卡佇列的頻寬控管,無法精準到 bit 的關係

因為網路傳輸最小單位是:封包
每次傳輸至少就是一個封包,沒有半個,或 1/10 個這種單位
不完全的封包,會被網路設備當成錯誤資料,直接丟棄
一個標準的封包大約是 1.8 KB/s (MTU 15000)

這就好像我們知道水分子是 H2O
但是我們算水的流量時,不會去算說有幾個 H2O 分子
而是算幾毫升,ml 或 cc
因為這是度量的極限


關於頻寬控管無法精準到 bit 這一點,可以理解了
但是為什麼 KB/s 要寫成 kbps?

peer sec 是指每秒有幾個單位
KBps (大寫 KB) 也可以解釋成 KB/s

但是 unix 的原則是:指令和參數都儘量小寫
這樣輸入時,會比較好打 (unix 系統下,大小寫是有差別的)
所以會寫成 kbps ,還算合理
:)

littlesa 2006-07-24 10:52 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
謝謝~了解~還好有問~
接下來就來裝裝MRTG 流量統計~
:D

ropin 2006-08-01 07:04 PM

回覆: 【教學】Coyote Linux 頻寬管制 (QoS) 設定教學
 
您好。
請問如果單純要有保證頻寬及最大頻寬,一視同仁的去管理,只用內建的 QOS 功能可以做嗎?
還有在 subnetting configuration 中,單獨的一個設定中 ip 可以這樣 192.168.0.100-200 輸入嗎?才不用一個個輸入?還是有更快方式?盡量不要用 ip table 方式,小弟覺得太難了。謝謝。


所有時間均為 +8。現在的時間是 12:07 PM



 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。