之前使用 Untangle,,發(fā)現(xiàn)實(shí)在是一套不錯(cuò)的軟體,,功能相當(dāng)強(qiáng)大,已經(jīng)達(dá)到 UTM 可以作到的程度了!
但是唯一的缺憾就是還不能對 Layer 7 application 進(jìn)行 Qos 的管理,,也許未來會(huì)推出相關(guān)套件也不一定…
因此就在網(wǎng)路上另外找到這套「ZeroShell」,,他不大,,可至官方網(wǎng)站下載 Live CD 來使用,也可以安裝至硬碟上(IDE only,,如果主機(jī)板支援將 SATA 轉(zhuǎn)為 Legacy mode 應(yīng)該也是可以)
而 ZeroShell 有哪些功能呢? NAT,、DHCP、DNS,、VPN,、L7-Filter、Qos,、RADIUS,、LDAP、Load Balance,、X.509 …等等一狗票的功能,,詳細(xì)的功能可以到官方網(wǎng)站去看。
只是他恰巧符合我需要的 L7-Filter + QoS 的功能,,因此目前選中他作為測試!
而 ZeroShell 中所提供的所有功能,,幾乎都是從 open source 的專案來的,例如:OpenVPN,、OpenLDAP,、l7-filter …等等,因此要找到支援與協(xié)助應(yīng)該不是太困難,。
以下列出最近測試時(shí),,發(fā)現(xiàn)到要注意的設(shè)定重點(diǎn):
設(shè)定資訊的儲(chǔ)存
上面有提到 ZeroShell 是以 Live CD 的方式啟動(dòng)的,因此每次重開機(jī)設(shè)定都會(huì)不見,;查了一下官方網(wǎng)站,,有說到只要設(shè)定完成後,進(jìn)入「SYSTEM –> Setup –> Profiles」將 profile 備份即可,,進(jìn)入時(shí)他會(huì)偵測電腦上的硬碟與分割,,讓管理者可以自行決定 Profile 要放哪。
但真的有那麼美好嗎? 我實(shí)際測試是沒有……只有對外網(wǎng)卡的設(shè)定會(huì)保留下來,,其他都還是跑掉,,這讓我很困擾,因此最後我還是把他裝到硬碟上去了…(裝到硬碟上後,,也不用儲(chǔ)存 profile 了,,因?yàn)樵O(shè)定不會(huì)跑掉)
NAT
原本以為設(shè)定好每個(gè) NIC 的 IP address 跟 default gateway,自動(dòng)產(chǎn)生 routing table 之後,,NAT 也會(huì)跟著起來,,但實(shí)際上並沒有……
但設(shè)定並不困難,只要進(jìn)到「NETWORK –> Router –> NAT」,把對外的那一張網(wǎng)卡加到「NAT Enabled Interfaces」即可,。
憑證(certificate)的啟用
若要使用憑證相關(guān)的服務(wù)(例如:OpenVPN),,就需要將憑證啟用,,啟用要從「SECURITY –> X.509 CA」中選擇要啟用的憑證,,將其啟用。
而啟用的方式比較特別,,需要先 revoke 之後再 renew,,才能將憑證正式啟用。
OpenVPN
在 server 的部份,,只要進(jìn)入「NETWORK –> VPN」將這個(gè)功能啟動(dòng)即可,,而認(rèn)證方式有三種(密碼、密碼 + 憑證,、憑證)可以自由選擇,,而若要加入密碼的認(rèn)證,則必須指定外部的 RADIUS 或是 LDAP server 進(jìn)行認(rèn)證,。
而 client 的部份,,需要從官方網(wǎng)站下載連線設(shè)定檔,並修改裡面的設(shè)定(OpenVPN server 位址,、憑證位置,、金鑰位置)。
另外 CA 憑證的部份可以從 ZeroShell 的登入頁下載,。
而 client 的憑證則可以到「USERS –> Users –> X509」中將金鑰資訊 export 出來,。
QoS
設(shè)定 Qos 必須注意,Qos 僅能管理從特定網(wǎng)路介面出去的流量,,無法管制進(jìn)來的流量,;雖然如此,透過針對不同網(wǎng)卡的管控,,還是可以作到上下傳的頻寬控管,。
另外載設(shè)定的部份就稍微複雜一點(diǎn),就跟直接設(shè)定防火牆差不多,,需要以下三個(gè)步驟:(下面的設(shè)定都在「NETWORK –> QoS 中」)
- 設(shè)定 QoS Class
在「Class Manager」中,,可設(shè)定傳輸?shù)膬?yōu)先權(quán)(Priority),最大傳輸頻寬(Max)以及保證頻寬(Guaranteed),。 - 將 Qos Class 與網(wǎng)路介面進(jìn)行繫結(jié)
不一定設(shè)定的規(guī)則都要套用在每一個(gè)網(wǎng)路介面上,,因此可以到「Interface Manager」中指定要將 QoS Class 套用到那一個(gè)網(wǎng)路介面。 - 設(shè)定規(guī)則,,並指定其屬於哪個(gè) Qos Class
設(shè)定了頻寬的限制,、所要管理的網(wǎng)路介面後,就要設(shè)定規(guī)則與其匹配了,而規(guī)則設(shè)定需要到「Classifier」中進(jìn)行設(shè)定,,而 ZeroShell 提供的設(shè)定選項(xiàng)很多,,幾乎 iptables 支援的功能他都做到 web 介面上了,當(dāng)然也包含了 Layer 7 的選項(xiàng)囉!
L7 Filter 的更新
目前 ZeroShell 還沒有提供線上更新 Layer 7 pattern 的功能,,若要更新的話,,可以從 l7filter 的官方網(wǎng)站下載最新的 protocol definition,並將檔案命名為「l7-protocols.tgz」後,,放到「/var/register/system/net/L7」資料夾內(nèi),,重新開機(jī)即可。