2010年01月19日

花屏.黑屏.马赛克

方法一:
qq登陆协议的选择:
这个方法是前辈高人奉献的,向前辈们致敬啊.在此转载过来供大家一起研究,正常情况下,我们一般登陆时所使用的协议都是腾讯qq的udp协议,udp协议是一种无须面向连接的协议.她就好像是一个做媒不管成败的媒婆一样,只负责为需要连接的双方连接做连通的操作(客户端是我们,服务器是腾讯官方的qq服务器),而不管双方是否都在线上,或者中间是否有任何的故障,如果你无法连通.只是给你返回一个未能连通的数据而已.而tcp协议却相反.它总是相当负责的为需要连接的双方积极牵线搭桥,首先带着我们发给腾讯公司服务器的报文,去到腾讯公司的服务器接收端.把我们的报文呈交给它.然后把它是否在线的报文再回传给我们,只有当确认了双方都正常和在线的情况下.tcp才负责地为双方串起一条红线,
于是前辈有高人就想到了,当我们使用udp协议进行qq登陆,并执行远程协助出现对方屏幕黑屏.花屏或马赛克等现象时,是否可以让双方都下线.然后双方都使用tcp协议方式进行登陆,并完成qq远程协助呢?虽然在理论上,双方的网络传输速度将会有所减慢.但至少保证了双方连接的一直连通性,其实现方法如下:在qq登陆窗口中点击设置—–勾选:选择qq登陆服务器,然后在服务器类型中选择tcp协议,具体操作过程如下图所示:

方法2:稍微麻烦点,进行远程协助任意一方用腾讯TM登陆,可以保证远程协助正常。

斜屏

连接后发现屏幕是斜的:

这个是分辨率的问题,把对方分辨率调整成和你一致就可以了。

2010年01月14日

1.已经激活的系统,备份这两个文件,记好激活序列号(appdata是隐藏的文件夹)
\Windows\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms
\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat

2.正常方法先重装系统,不要输入激活号,也不要连网

3.替换上面的两个文件,右键点属性-安全-高级-所有者,修改为administrator,关闭窗口
再重新选择:高级-权限,修改amdinistator为完全控制,这样就可以删除了

4.把Software Licensing服务关掉,用备份的激活文件替换上面的两个文件(如不关掉服务,tokens.dat无法替换)

5.启动 Software Licensing [slsvc] 服务

6.替换序列号,重启,激活成功!

或用下面的这个批处理:

=======================================================================
@echo off
echo 请在管理员administrator下运行
echo. & pause

echo 备份原始激活文件到备份文件夹
md 备份
copy %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat 备份\tokens.dat
copy %windir%\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms   备份\pkeyconfig.xrm-ms

echo 关闭Software Licensing服务
net stop slsvc

echo 取得原始激活文件的权限并删除
takeown /f %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat
takeown /f %windir%\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms
cacls %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat /t /e /g administrator:f
cacls %windir%\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms /t /e /g administrator:f
del %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat
del %windir%\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms

echo copy激活文件到系统文件夹
copy tokens.dat %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\tokens.dat
copy pkeyconfig.xrm-ms %windir%\System32\licensing\pkeyconfig\pkeyconfig.xrm-ms

echo 开启Software Licensing服务
net start slsvc
start %windir%\System32\licensing\pkeyconfig\
start %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareLicensing\

echo 更改产品密钥
SLMGR.VBS -ipk 111111-22222-33333-44444-55555

echo 完成激活!by 网虫
    echo. & pause

=========================================================================

转自http://hi.baidu.com/pc0099/blog/item/18581e35e3a9148ca61e12a6.html

使用方法:
        Option -> Manage MAK Key -> Add… 这时弹出新对话框。在新对话框中,于MAK ProductKey处输入你的序列号,然后点旁边的Validate,在等待一分半左右的时间后(具体时间应该视当地网络情况而定吧?),结束验证,在 MAKEdition Type那里会显示序列号可激活的系统。然后在Description那里随便输入点你想输入的东西,不输入也无所谓。然后点Add。这时,可以看到序列号被加入了列表里了,但是Remaining Activations显示的是NotAvailable(不可用),别激动,这时再点Refresh RemainingCount,软件再次连接服务器,进行验证之后,在Remaining Activations下面显示的数字,就是当前该KEY还剩余的激活次数

另外,该软件只可测试Vista和2008的KEY,XP的KEY就不用实验了……当然,该软件可以安装在XP等系统上运行~
最后,下载地址:
http://download.microsoft.com/download/9/d/3/9d32661a-9583-4e60-9abf-2c6dfbc1f58b/VAMT.zip

2009年12月20日


由於 ZeroShell 為 Linux-based firewall,在 Linux firewall 中,有三個 table(manglenatfilter) 可供管理者進行進階的管理與設定,但為了簡化設定工作,ZeroShell 的 web 管理介面僅提供 filter table 的設定,因此預設只有三個 chain,分別是 FORWARDINPUT 以及 OUTPUT


雖然僅有三個 chain 可供使用,但還是可以透過 FORWARD chain 管理流經 ZeroShell 的網路封包;也可以透過 INPUT 與 OUTPUT chain 來管理流入 ZeroShell 與從 ZeroShell 流出的網路封包。


以下是 ZeroShell firewall 的設定畫面:


 


Firewall Chain 的管理


首先要先瞭解 Chain 要如新增與刪除,並在 Chain 中增加自訂的規則,用以下圖來說明:


系統預設有 FORWARD、INPUT 與 OUTPUT 三條 chain,若要新增可以按「New」,若要移除則按「Remove」;而若要針對 chain 中的規則進行新增、修改或是刪除,則是按中間右邊的「Add」、「Change」、「Delete」三個按鈕。


 


Default Policy 的設定


了解 ZeroShell 預設的 firewall chain 後,接著就是要設定每條 Chain 的 Default Policy;假設要針對雙向的流量進行嚴格控管的話,可以將 FORWARD chain 的 default policy 設定為 DROP。(預設為 ACCEPT)


 


設定案例一:FTP 服務


由於之前架設了 FTP 服務,因此這邊以開放 DMZ 中的 FTP 服務為例,進行設定;而為了方便管理,我們針對不同的服務都各自用不同的 chain 將其分開。


因此,首先按「New」增加一條 chain,名稱為「FTP_TRAFFIC」:
 


接著在 Chain 的選項選到剛剛新增的「ftp_traffic」,並準備增加規則:(Chain 的名稱會自動變成全部小寫)


接著按下「Add」新增防火牆的規則:


以下為幾項設定時要注意的部份:



  • Destination IP:目的地 IP,要指定是 DMZ 中提供 FTP 服務的主機 IP address


  • Protocol Matching:選擇所要過濾的通訊協定種類


  • Source Port:一般 client 都會以 1024 到 65535 間隨機取一個 port 來與 server 進行連線


  • Dest. Port:FTP service 的 port number 為 21


  • Connection State:「NEW」必須要勾選,才可以讓 client 正確的連線


  • ACTION:這個部份必須選擇「ACCEPT」

這裡比較需要注意的是,若是所有設定都省略,僅從 Layer 7 Filter 中選擇 FTP 服務,這樣還是不行的,因為在 client 與 server 建立連線的 3-way handshake 過程中,是無法判斷是那一種 layer 7 的 application,因此這邊還是必須透過設定 protocol 與 port number 的方式來開放特定服務的網路流量。


接著還要回到 FORWARD chain,將 FTP_TRAFFIC 這條 chain 加入規則中:


在 ACTION 的部份要選擇「CHAIN」,並在 Jump to 的選項選擇「ftp_traffic」這一條 chain。


除了加入 ftp_traffic chain 之外,還要在 FORWARD chain 中加入另外一條規則,讓連線建立後,後續的連線可以持續的通過:








為了讓已經建立的連線可以持續的傳輸網路封包,要勾選 Connection State 中的「ESTABLISHED」及「RELATED」兩個選項,並在 ACTION 中選擇「ACCEPT」。


最後,會設定好以下的規則:


 


設定案例二:Web 服務


接著這個部份是要開放電腦瀏覽網頁的權限,首先必須先開放 DNS 服務的網路流量: (DNS_TRAFFIC)


要開放的設定為:



  • TCP port 53


  • UDP port 53


  • Connection State = NEW

再來是開放 HTTP 與 HTTPs 的網路流量:(HTTP_TRAFFIC)


要開放的設定為:



  • TCP port 80 & 443


  • Connection State = NEW

最後在 FORWARD chain 中將這兩條 chain 加入規則中,就完成設定了:

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

前言


QoS(Quality of Service) 的用途為流量管理,功能在於確保特定服務、特定主機可以根據管理者設定的規則,讓頻寬可以得到保證,相對也可以更穩定的提供服務,當然也可以用來杜絕相當耗損頻寬的軟體。(例如:eMule、BT …. 等等)


扮演流量管理的主機,必須位於兩個不同的網路區段之間(可以是同網段,只是實體是隔開的),因此通常提供 QoS 功能的都 Router(連結不同網段) 或是 Bridge(連結相同網段),而在不同的網路區段中互相傳輸的網路封包,就會受到 QoS 中的規則所規範。


 


設定時注意事項


在進行 QoS 的設定時,首先必須要先瞭解 QoS 的設定限制,並不是很簡單的直接設定上傳下載的限制即可(如果有,就是有人提供了很方便的設定工具才有辦法達成)。


QoS 的設定限制,在於「只能限制往外傳的流量,無法限制接收到的流量」。就像寄信一樣,你可以限制自己不要寄很多信,但是卻無法阻止別人寄很多信給自己。


瞭解 QoS 的限制後,在設定時就不會發生觀念錯誤而導致設定後結果不如預期的情形產生。


 


QoS 如何作到雙向流量管控


知道了 QoS 的管控限制後,雙向流量管控的需求還是在,但是要如何作呢? 以下先列出網路架構圖:


假設以外部 client(Windows XP,10.1.16.200) 到內部 server(Ubuntu,192.168.100.20) 的流量為例,假設內部 server 提供了 FTP 的服務,而若是要使用 QoS 來管控 client 的上傳與下載,就必須從兩個方面著手:



  1. client 的下載
    此時網路流量是由內部 server 傳到外部,若以 QoS 僅能管控外傳流量的限制為前提下,就必須從 ETH00(10.1.16.222) 網路介面來著手,藉由管控從 ETH00 網路介面流出的網路流量,來達到管控 client 下載流量的目的。


  2. client 的上傳
    反之若要管控 client 的上傳流量,就必須改從 ETH01(192.168.100.254) 介面來著手,藉由管控從 ETH01 網路介面的外傳流量,來達到管控 client 上傳流量的目的。

因此從上面的案例說明就可以瞭解,若要達到同時控管上下傳的流量,就必須要從不同的網路介面卡上著手。


 


ZeroShell 的 QoS 設定


ZeroShell 提供了 QoS 的功能,甚至還可以跟 Layer 7 的協定搭配使用,功能可說是相當強大,以下是我們的設定案例:


Client:Windows XP (10.1.16.200)


Server:Ubuntu (DMZ:10.1.16.224 –> 192.168.100.20)


其中 Server 提供了 FTP 服務,我們要使用 QoS 作到限制 client 上傳流量為 2048 Kbits/s,下載流量為 512 Kbits/s


,但在設定上稍嫌複雜,因為 ZeroShell 並沒有簡化原有 QoS 的相關設定,還是必須分成以下四個部份進行設定:


1、QoS 功能的啟用


首先必須要啟用 QoS 的功能:


選擇「NETWORK –> QoS –> Interface Manager」,進入網路介面的設定,將要管控流量的網路介面勾選啟用,並按下「Activate last Changes」儲存設定。


此外,還可以按下「Global Bandwidth」設定該網路介面的最大頻寬與保證頻寬。


 


2、設定 QoS 類別


接著要設定 Qos 類別,主要是要設定類別的相關描述以及頻寬上限的設定,選擇「Class Manager」:


接著會出現以下設定畫面:


下方可以看到一個內建的預設類別,按「New」可以新增一個類別。


首先要先輸入類別名稱:(首先要設定 FTP 上傳的類別,因此輸入「FTP_UP」)


接著要輸入類別的詳細資訊:


畫面中所要輸入的包含 Description(類別描述)Priority(封包優先權)Maximum(最大使用頻寬)Guaranteed(保證頻寬) … 等等,根據我們的模擬測試,要將優先權設定為中,最大使用頻寬設定為 2048 Kbits/s,設定完畢後要記得按「Save」儲存設定。






接著要加入 FTP 下載的類別(FTP_DOWN),相關設定畫面如下:


 


3、設定 QoS 類別與規則的對應


QoS 類別設定完後,就必須要設定封包檢查規則,並與 QoS 類別對應,選擇「Classifier」:
 


按下「Add」新增封包檢查規則,就會出現以下畫面:


針對以上有使用到的設定僅行仔細說明:



  • Apply to:Routed and Bridged Packets
    這個設定表示無論 ZeroShell 扮演的是 router 或是 bridge,只要有網路封包流經都必須由 QoS 管控。


  • Input & Output
    這個部份就要特別注意了,因為「QoS 僅能管控外傳的網路流量」的緣故,途中設定 Output 為 ETH01,表示要管制從 ETH01 外傳的網路流量,亦即 client 的上傳流量。


  • Layer 7 Filter:FTP – File Transfer Protocol – RFC 959
    設定與 L7-Filter 搭配,用來判斷是否 FTP 的流量。(使用 TCP port 21 未必就真的是 FTP 的流量)


  • TARGET CLASS:FTP_UP
    選擇要繫結的 QoS 類別。(由於此處設定的判斷規則為 client 的 FTP 上傳流量,因此選擇 FTP_UP)


  • LOG:5 Minute
    是否啟用 log 功能,此處選擇每 5 分鐘 log 一次。

最後記得要按「Confirm」儲存 QoS 的規則設定。


了解設定方式後,設定檢查 FTP 下載的規則就容易多了:


 


4、將 QoS 類別與網路介面繫結


當規則繫結到 QoS 類別後,最後就要將 QoS 類別與網路介面進行繫結,選擇「Interface Manager」:


找到所要繫結的網路介面,並按下右邊的「Add Class」新增繫結:


這裡需要注意兩點:



  • client FTP 下載是管控 ETH00 的對外流量,因此將 FTP_DOWN 繫結到 ETH00 上


  • client FTP 上傳是管控 ETH01 的對外流量,因此將 FTP_UP 繫結到 ETH01 上

最後確定 QoS 服務有啟用,按下「Activate last Changes」就完成設定了。


 


Qos 使用成效檢驗


到底設定 Qos 效果如何,以下有截下幾張圖來說明,首先為尚未開啟 QoS 功能時,client 的上傳與下載大概都有 8~9 MBytes/s 的速度:


上面設定將上傳限定為 2048 Kbits(256 KBytes)/s,開啟 QoS 後的實際速度為:


下載限制的部份為 512Kbits(64 KBytes)/s,開啟 Qos 後的實際速度為:


因此看得出來,QoS 也不是相當的精確,實際上在傳輸時,速度還是會上上下下一個範圍在傳輸(大約 10%),但最大是肯定沒有超過上面設定所設定的最大頻寬,可見 QoS 的設定是有成功的。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

這個部份說明如何在 ZeroShell 設定並啟用 VPN 的服務。


由於 ZeroShell 使用 OpenVPN 來建構 VPN 的服務,因此首先要先瞭解設定 OpenVPN 的需求;基本上大概就是幾個部份,分別是:



  1. 憑證(certificate)的管理與發放


  2. 使用者認證的方式


  3. VPN tunnel 的 routing 相關設定


憑證(certificate)的管理與發放


要連線到 OpenVPN server,每個 client 都需要兩個憑證,分別是:



  1. OpenVPN server 的 CA 憑證(裡面包含了 server 的 public key)


  2. client 專屬的 CA 憑證(裡面包含了 public key & private key)

CA 的部份,若是沒有上游的 CA 檔案可以匯入,ZeroShell 就會自己扮演 self-CA 的角色來簽署憑證,而 server private key 的部份,ZeroShell 會自行處理好。


1、安裝 OpenVPN client


這個部份需要下載 OpenVPN GUI 來安裝,安裝時並不需要進行額外的設定。


2、取得 OpenVPN server CA 憑證


首先進入 ZeroShell 的 web 登入畫面,點選「CA」:


接著會出現 CA 憑證的資訊,選擇輸出(Export)為「PEM」格式:


接著把下載的檔案放到「C:\Program Files\OpenVPN\config」目錄中即可。


3、增加使用者(client)


目前除了 admin 之外,沒有其他使用者,因此這邊要新增一位,選擇「USERS –> Users –> Add」:


接著輸入使用者相關資訊:(包含帳號、密碼 … 等等)


使用者相關資訊填寫完畢後,按下 Submit 後使用者就新增完成了!


4、取得 client CA 憑證


使用者新增完成後,隨即會出現憑證相關資訊:


同樣的,格式的部份選擇「PEM」,並按下「Export」將 client 的 CA 憑證匯出,將憑證修改名稱為「client.pem」,並放到「C:\Program Files\OpenVPN\config」目錄。


若是之後想要另外在輸出使用者憑證,可以選擇「USERS –> Users –> 使用者名稱 –> X509」,進入憑證資訊畫面進行輸出:


5、下載連線設定檔


設定檔的部份要到官方網站下載,下載後放入「C:\Program Files\OpenVPN\config」(以 Windows 為例,其他的 OS 的設定方式請參考官方網站的文件 – OpenVPN client configuration for Windows, Linux, Mac OS X and Windows Mobile for Pocket PC)


以下是設定檔的內容:



;OpenVPN server 位址
remote zeroshell.example.com 1194


proto tcp


auth-user-pass


;OpenVPN server CA 憑證存放位置
ca CA.pem


;OpenVPN client 憑證存放位置
;cert client.pem
;key  client.pem


comp-lzo
verb 3
mute 20
resolv-retry infinite
nobind
client
dev tap
persist-key
persist-tun


但為了符合我們的實驗環境設定,修改成如下:



;OpenVPN server 位址
remote 10.1.16.222 1194


proto tcp


auth-user-pass

;OpenVPN server CA 憑證存放位置


ca CA.pem


;OpenVPN client 憑證存放位置
cert client.pem
key  client.pem


comp-lzo
verb 3
mute 20
resolv-retry infinite
nobind
client
dev tap
persist-key
persist-tun


如此一來就完成了! 透過右下角的 OpenVPN GUI 圖示按右鍵,選擇「zeroshell –> Connect」,輸入 client 的帳號密碼(在新增 user 時所輸入的帳號密碼),就可以順利連到 OpenVPN server 囉! (前提是 OpenVPN server 的服務有正確啟動)


 


VPN 服務的設定


這個部份則包含了之前提到的兩點:



  1. 使用者認證的方式


  2. VPN tunnel 的 routing 相關設定

在 ZeroShell 系統中選擇「NETWORK –> VPN」:


上面個畫面中有幾個需要注意的部份:



  1. 通訊協定與 port number
    這個部份預設為 TCP 1194,若有更動的話,設定檔也必須連同更動。


  2. 認證方式
    基本上搭配憑證的話,選擇「Only X.509 Certificate」即可,除非另外要搭配 Kerberos 或是 RADIUS 的密碼驗證,才需要選擇有 Password 的選項。


  3. VPN client 的網段設定
    這部份的設定決定 VPN client 連線後所取得的 IP,而 routing table 的部份,基本上 ZeroShell 會 push 給 client,因此當 client 取得新的 IP 後,連同 routing table 也會更著變動。


  4. 密碼認證
    在本實驗架構中並無搭配 Kerberos 或是 RADIUS,因此省略。

最後記得勾選「Enabled」並按下「Save」儲存設定,服務才會啟動。


 


連線前後 routing table 的改變


上面有提到,當連線到 VPN server 之後,VPN client 的 routing table 會隨之改變,以便可以連到內部網路中。


以下是 VPN client 原本的 routing table:


從上圖看得到 Default Gateway 的設定還是在網路卡上的設定。


但是當 VPN tunnel 建立起來後,routing table 就會變更如下:
 


除了 Default Gateway 有變更外,也會額外附加一些由 VPN server push 過來的 routing 設定。


比較需要注意的是,Default Gateway 被改變了,因此到 192.168.1.0/24 與 192.168.100.0/24 兩個網段的封包,由於不在 routing table 內,因此都會改走 Default Gateway,而這些封包都會自動由 ZeroShell 導引至正確的網路介面。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

網路架構
首先說明一下網路架構:

外部網路(ETH00):10.1.0.0/16
DMZ(ETH01):192.168.100.0/24
內部網路(ETH02):192.168.1.0/24

NAT 設定
1、設定網路介面 IP 與 Netmask
進行 NAT 設定之前,必須進行網路介面的 IP address 與 Netmask 的設定,點選「SYSTEM –> Setup –> Network」,即可進入設定頁面:

選擇要設定的網路介面,點選「Add IP」即可進行設定,畫面如下:

2、設定 DHCP
網路介面都設定完成後,接著就要啟用 DHCP 的功能了,首先選擇「NETWORK –> DHCP」:

由於必須選擇要將 DHCP 服務提供給哪些網段,因此必須先按下「New」按鈕加入網段。

接著要選擇網段:(本實驗中要提供 DHCP 服務給內部網路的網段,也就是 ETH02)

再來就是 DHCP 服務所需要的相關設定:(包含租約的時間IP 分配的範圍DNS … 等等)

設定完後要記得勾選「Enabled」,並按下「Save」按鈕儲存設定並啟用 DHCP 服務。
3、設定 NAT 並啟用
最後來到 NAT 設定畫面,選擇「NETWORK –> Router –> NAT」:

接著會跳出 NAT 的設定畫面,此時要將對外連線的網路介面移到右邊:(表示該介面為啟用 NAT 功能的網路介面)

在本實驗中,對外連線的介面為 ETH00,因此將其移到右邊後,按下「Save」儲存設定即告完成。

DMZ 設定

在 ZeroShell 中,沒有很明確提供管理者設定 DMZ 的地方,但由於 web 管理介面提供的功能設定很多,因此還是可以將 DMZ 的效果組合出來。
由於實驗環境中,在 DMZ 區中的電腦為 private IP,因此這邊決定使用 IP alias 搭配 port forwarding 的方式進行 DMZ 的設定。
1、增加 public IP
首先,必須增加多個 public IP 至對外連線上,選擇「SYSTEM –> Setup –> Network」進入 IP 設定的畫面:

加入兩組 IP,分別如下:

2、設定 port forwarding 對應
接著選擇「NETWORK –> Router –> Virtual Server」,進行 port forwarding 的設定:

根據這邊的實驗環境,將 public IP 所接收到的服務對應到 DMZ 中的主機:

如此一來,外部使用者就可以透過 ETH00 上的 public IP 取用內部主機的服務囉!

 

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

基本上 ZeroShell 是以 Live CD 的方式運作的,而 Live CD 的 ISO 可以到 ZeroShell 的官方網站下載並燒錄光碟,再將光碟片放入光碟機中,設定光碟開機即可。

首先,先說明如何設定 IP address

設定連外 IP 位址

設定好連外 IP address,才可以讓管理者從外部進行連線管理。

首先以下為用 ZeroShell Live CD 開機後的畫面:

接著選擇「<I> IP Manager」進行 IP 的管理,以下是 IP 管理的介面:

首先會列出各個網路介面與 IP 資訊,接著選擇「<M> Modify IP address」進行 IP 的修改,並輸入所要修改的 IP 與 Netmask 資訊,就可以設定完成了。

注意! 上面的 ETH01 與 ETH02 預設是不會有 IP 位址的,只是因為我先前已經設定好了,所以才會出現。

 

連線至 Web 管理介面

當 IP 設定完成之後,就可以連線至 ZeroShell 的 web 介面囉! 網址為「https://<IP address>」:

預設的帳號為「admin」,密碼為「zeroshell」。

 

設定(profile)的儲存與備份

由於 ZeroShell 是 Live CD 的關係,因此只要重開機後,所有的設定資訊都會消失並回復為預設值,因此 ZeroShell 提供了備份 profile 的功能,用意就是讓管理者可以將設定儲存起來。

而要儲存 profile 的方式如下:

進入 web 管理介面後,選擇 System 區塊中的「Setup –> Profiles」,接著系統會自動偵測目前接在電腦上面的所有磁碟(包含隨身碟),並列出每個磁碟的分割資訊。

接著就是備份 profile:

選擇要儲存 profile 檔案的分割區後,上面會出現 Create DB、Restore DB、View FS … 等選項,此時只要選擇「Create DB」就可以進行 profile 的儲存工作。

最後系統會要求輸入 profile 相關資訊:
 

相關資訊輸入完成後,按下「Create」就完成 profile 的備份囉!

【備註1】雖然按照上面的方式可以將 Profile 儲存起來,但經過實測之後,發現僅會儲存對外連線網路介面(ETH00)的設定,像是 ETH01 與 ETH02 的部份,當 profile 被啟用後,若是沒有 Activate,設定還是會消失,因此最穩當的作法,還是將 ZeroShell 安裝於硬碟上。

【備註2】目前實測後,確定可以將設定保留住的方式是先將 ZeroShell 安裝於硬碟中,再儲存一份 profile 至硬碟中並 Activate 該 profile,如此一來之後的設定就可以通通保留住了!

 

將 ZeroShell 安裝至硬碟

要安裝 ZeroShell 到硬碟上,必須是 IDE 的硬碟(SATA 也可,但主機板必須支援以 Legacy mode 的方式運作),且容量要大於 1GB 才可以安裝。

接著說明安裝步驟:

1、下載 CompactFlash 版本的 img 檔

一般來說,選擇 CompactFlash 中最新的版本,目前(2008年12月)是 1.0 beta11,並下載至隨身碟中。

2、開啟 SSH 連線服務

要將 ZeroShell 安裝至硬碟上,必須到 local 端,但若是管理者在遠端的話,可以透過 web 管理介面開啟 SSH 連線服務:

SSH 服務的開啟與設定:

設定的部份,有三個部份:

  1. 設定可以連線到 ZeroShell SSH 服務的 IP(例如:192.168.0.15) 或網段(192.168.0.0/24)。
  2. 設定接受 SSH 連線的網路介面(一般來說是指定對外連線的網路介面,因此在本範例中應該要選擇 ETH00)。
  3. 勾選「Enable」,並按下「Save」儲存設定。

3、將映像檔安裝至硬碟

首先必須先透過 SSH client(例如:pietty) 連線至 ZeroShell,並進入 shell command 模式:

接著要再輸入一次管理者密碼,並輸入以下指令顯示出目前的磁碟資訊:

shell> fdisk –l

從上面資訊可以得知,隨身碟的磁區為「dev/sda1」,硬碟的裝置為「/dev/hdd」。

接著輸入以下指令掛載隨身碟:

# 建立掛載目錄
shell> mkdir /mnt/usb_disk

# 掛載隨身碟
shell> mount /dev/sda1 /mnt/usb_disk

將隨身碟中的 ZeroShell 映像檔安裝至硬碟中:

# 切換至隨身碟的目錄
shell> cd /mnt/usb_disk

# 將映像檔安裝至硬碟
# 注意~指定硬碟的裝置,而非分割區

shell> gunzip –c ZeroShell-1.0.beta11-CompactFlash-IDE-USB-SATA-1GB.img.gz > /dev/hdd

最後重開機並將光碟片與隨身碟即可。

 

參考資料

Read More…

Collapse…


前言

網際網路的蓬勃發展,出現了許許多多不同種類的網路服務,由於網際網路是公開的空間,因此安全性上的考量不得不視為非常重要的一部分,而傳統的 layer 3 firewall 早已不敷使用,因此才陸陸續續出現了許多號稱可以處理 layer 7(Application Layer)的 firewall。

ZeroShell 是市面上眾多選擇中功能較為強大,且可以免費使用的防火牆軟體;它整合了許多 open source 的專案,因此不僅功能強大,相對於封閉型的產品應該也是較為安全穩定。

而 ZeroShell 有哪些功能,以下從引用官方網站的說明:

  • Load Balancing and Failover of multiple Internet connections;
  • UMTS/HSDPA connections by using 3G modems;
  • RADIUS server for providing secure authentication and automatic management of the encryption keys to the Wireless 802.11b, 802.11g and 802.11a networks supporting the 802.1x protocol in the EAP-TLS, EAP-TTLS and PEAP form or the less secure authentication of the client MAC Address; WPA with TKIP and WPA2 with CCMP (802.11i complaint) are supported too; the RADIUS server may also, depending on the username, group or MAC Address of the supplicant, allow the access on a preset 802.1Q VLAN;
  • Captive Portal to support the web login on wireless and wired networks. Zeroshell acts as gateway for the networks on which the Captive Portal is active and on which the IP addresses (usually belonging to private subnets) are dynamically assigned by the DHCP. A client that accesses this private network must authenticate itself through a web browser using Kerberos 5 username and password before the Zeroshell’s firewall allows it to access the public LAN. The Captive Portal gateways are often used to provide authenticated Internet access in the HotSpots in alternative to the 802.1X authentication protocol too complicated to configure for the users. Zeroshell implements the functionality of Captive Portal in native way, without using other specific software as NoCat or Chillispot;
  • QoS (Quality of Service) management and traffic shaping to control traffic over a congested network. You will be able to guarantee the minimum bandwidth, limit the max bandwidth and assign a priority to a traffic class (useful in latency-sensitive network applications like VoIP). The previous tuning can be applied on Ethernet Interfaces, VPNs, bridges and VPN bondings. It is possible to classify the traffic by using the Layer 7 filters that allow the Deep Packet Inspection (DPI) which can be useful to shape VoIP and P2P applications;
  • HTTP Proxy server which is able to block the web pages containing virus. This feature is implemented using the ClamAV antivirus and HAVP proxy server. The proxy server works in transparent proxy mode, in which, you don’t need to configure the web browsers of the users to use it, but the http requests will be automatically redirected to the proxy;
  • Wireless Access Point mode with Multiple SSID and VLAN support by using WiFi network cards based on the Atheros chipsets. In other words, a Zeroshell box with one of such WiFi cards could become a IEEE 802.11a/b/g Access Point providing reliable authentication and dynamic keys exchange by 802.1X and WPA protocols. Of course, the authentication takes place using EAP-TLS and PEAP over the integrated RADIUS server;
  • Host-to-lan VPN with L2TP/IPsec in which L2TP (Layer 2 Tunneling Protocol) authenticated with Kerberos v5 username and password is encapsulated within IPsec authenticated with IKE that uses X.509 certificates;
  • Lan-to-lan VPN with encapsulation of Ethernet datagrams in SSL/TLS tunnel, with support for 802.1Q VLAN and configurable in bonding for load balancing (band increase) or fault tolerance (reliability increase);
  • Router with static and dynamic routes (RIPv2 with MD5 or plain text authentication and Split Horizon and Poisoned Reverse algorithms);
  • 802.1d bridge with Spanning Tree protocol to avoid loops even in the presence of redundant paths;
  • 802.1Q Virtual LAN (tagged VLAN);
  • Firewall Packet Filter and Stateful Packet Inspection (SPI) with filters applicable in both routing and bridging on all type of interfaces including VPN and VLAN;
  • It is possible to reject or shape P2P File Sharing traffic by using IPP2P iptables module in the Firewall and QoS Classifier;
  • NAT to use private class LAN addresses hidden on the WAN with public addresses;
  • TCP/UDP port forwarding (PAT) to create Virtual Servers. This means that real server cluster will be seen with only one IP address (the IP of the virtual server) and each request will be distributed with Round Robin algorithm to the real servers;
  • Multizone DNS server with automatic management of the Reverse Resolution in-addr.arpa;
  • Multi subnet DHCP server with the possibility to fix IP depending on client’s MAC address;
  • PPPoE client for connection to the WAN via ADSL, DSL and cable lines (requires a suitable MODEM);
  • Dynamic DNS client used to easily reach the host on WAN even when the IP is dynamic;
  • NTP (Network Time Protocol) client and server for keeping host clocks synchronized;
  • Syslog server for receiving and cataloging the system logs produced by the remote hosts including Unix systems, routers, switches, WI-FI access points, network printers and others compatible with the syslog protocol;
  • Kerberos 5 authentication using an integrated KDC and cross-authentication between realms;
  • LDAP, NIS and RADIUS authorization;
  • X509 certification authority for issuing and managing electronic certificates;
  • Unix and Windows Active Directory interoperability using LDAP and Kerberos 5 cross realm authentication.

ZeroShell 將 Linux 上的一大堆服務都包了進來,乍看之下真的眼花撩亂,不過大部分的功能都是預設關閉的,只要針對自己的需求開啟需要的部份功能即可囉!

 

使用環境 & 設備

硬體

  • PC * 4 (ZeroShell 主機需要三張網路卡)
  • Switch Hub * 1

軟體

  • ZeroShell 1.0 beta 11
  • Windows 2003 & XP
  • Ubnutu

 

網路架構

在整個架構中,包含 ZeroShell 一共有四台電腦組成此架構,其中可以分為四個部份說明:

  1. ZeroShell 主機
    ZeroShell 擔負 firewall 與 router 的角色,並包含三個網路介面,分別為 External(外部網路)、Internal(內部網路)、DMZ(伺服機所在之處)
  2. External(ETH00) [外部網路]
    此部份為整個架構的對外連線介面,整個網路架構所有的對外連線,都會經過此介面出去;因此若要過濾篩選由外至內的網路封包,就必須從這個介面下手。
  3. DMZ(ETH01) [對外服務的伺服機所在之處]
    所有對外服務的 server,例如 Web、DNS … 等等,都可以置於此處。
  4. Internal(ETH02) [內部網路]
    內部網路就是外面連不進來的部份了! 但若是有從外部連至內部網路的需求,則可以透過 VPN tunnel 來達成此需求。

之前使用 Untangle,發現實在是一套不錯的軟體,功能相當強大,已經達到 UTM 可以作到的程度了!

但是唯一的缺憾就是還不能對 Layer 7 application 進行 Qos 的管理,也許未來會推出相關套件也不一定…

因此就在網路上另外找到這套「ZeroShell」,他不大,可至官方網站下載 Live CD 來使用,也可以安裝至硬碟上(IDE only,如果主機板支援將 SATA 轉為 Legacy mode 應該也是可以)

而 ZeroShell 有哪些功能呢? NAT、DHCP、DNS、VPN、L7-Filter、Qos、RADIUS、LDAP、Load Balance、X.509 …等等一狗票的功能,詳細的功能可以到官方網站去看。

只是他恰巧符合我需要的 L7-Filter + QoS 的功能,因此目前選中他作為測試!

而 ZeroShell 中所提供的所有功能,幾乎都是從 open source 的專案來的,例如:OpenVPNOpenLDAPl7-filter …等等,因此要找到支援與協助應該不是太困難。

 

以下列出最近測試時,發現到要注意的設定重點:

設定資訊的儲存

上面有提到 ZeroShell 是以 Live CD 的方式啟動的,因此每次重開機設定都會不見;查了一下官方網站,有說到只要設定完成後,進入「SYSTEM –> Setup –> Profiles」將 profile 備份即可,進入時他會偵測電腦上的硬碟與分割,讓管理者可以自行決定 Profile 要放哪。

但真的有那麼美好嗎? 我實際測試是沒有……只有對外網卡的設定會保留下來,其他都還是跑掉,這讓我很困擾,因此最後我還是把他裝到硬碟上去了…(裝到硬碟上後,也不用儲存 profile 了,因為設定不會跑掉)

NAT

原本以為設定好每個 NIC 的 IP address 跟 default gateway,自動產生 routing table 之後,NAT 也會跟著起來,但實際上並沒有……

但設定並不困難,只要進到「NETWORK –> Router –> NAT」,把對外的那一張網卡加到「NAT Enabled Interfaces」即可。

憑證(certificate)的啟用

若要使用憑證相關的服務(例如:OpenVPN),就需要將憑證啟用,啟用要從「SECURITY –> X.509 CA」中選擇要啟用的憑證,將其啟用。

而啟用的方式比較特別,需要先 revoke 之後再 renew,才能將憑證正式啟用。

OpenVPN

在 server 的部份,只要進入「NETWORK –> VPN」將這個功能啟動即可,而認證方式有三種(密碼、密碼 + 憑證、憑證)可以自由選擇,而若要加入密碼的認證,則必須指定外部的 RADIUS 或是 LDAP server 進行認證。

而 client 的部份,需要從官方網站下載連線設定檔,並修改裡面的設定(OpenVPN server 位址、憑證位置、金鑰位置)。

另外 CA 憑證的部份可以從 ZeroShell 的登入頁下載。

而 client 的憑證則可以到「USERS –> Users –> X509」中將金鑰資訊 export 出來。

QoS

設定 Qos 必須注意,Qos 僅能管理從特定網路介面出去的流量,無法管制進來的流量;雖然如此,透過針對不同網卡的管控,還是可以作到上下傳的頻寬控管。

另外載設定的部份就稍微複雜一點,就跟直接設定防火牆差不多,需要以下三個步驟:(下面的設定都在「NETWORK –> QoS 中」)

  1. 設定 QoS Class
    在「Class Manager」中,可設定傳輸的優先權(Priority),最大傳輸頻寬(Max)以及保證頻寬(Guaranteed)。
  2. 將 Qos Class 與網路介面進行繫結
    不一定設定的規則都要套用在每一個網路介面上,因此可以到「Interface Manager」中指定要將 QoS Class 套用到那一個網路介面。
  3. 設定規則,並指定其屬於哪個 Qos Class
    設定了頻寬的限制、所要管理的網路介面後,就要設定規則與其匹配了,而規則設定需要到「Classifier」中進行設定,而 ZeroShell 提供的設定選項很多,幾乎 iptables 支援的功能他都做到 web 介面上了,當然也包含了 Layer 7 的選項囉!

 

L7 Filter 的更新

目前 ZeroShell 還沒有提供線上更新 Layer 7 pattern 的功能,若要更新的話,可以從 l7filter 的官方網站下載最新的 protocol definition,並將檔案命名為「l7-protocols.tgz」後,放到「/var/register/system/net/L7」資料夾內,重新開機即可。