巧用OpenDNS設置Web過濾抵御安全風險
原創【51CTO.com 獨家特稿】去年的DNS漏洞造成的危害至今仍歷歷在目。其實不只是DNS,幾乎對于所有與網絡相關的軟件,人們似乎總在發現漏洞、打補丁、更新的怪圈中循環,沒完沒了。今天和大家看一種被許多專業人士看好的安全的DNS服務-OpenDNS。
OpenDNS是一種免費的DNS服務,它準許在整個網絡上進行內容過濾并提供更快的Web瀏覽。防護釣魚攻擊、活動日志等是這種服務所提供的一些特性。本文將探討如何配置路由器和OpenDNS服務,目的是使用戶在看了本文之后能夠體驗更安全、更快速、更可靠的互聯網。
初識OpenDNS
由于DNS要把域名轉換為IP地址,所以這種服務的速度和可靠性對快速而連續的Web沖浪極為關鍵。OpenDNS可提供極為迅速的DNS服務,同時又可以提供絕對的零宕機時間。強化的DNS服務器,如OpenDNS可以提供控制和管理互聯網瀏覽的某些方面,或控制整個本地網絡。
OpenDNS有一個內容過濾特性,在這里用戶可以選擇所禁止的站點類型(如成人站點、釣魚網站、社交網站等)。此外,用戶還可以阻止或放行特定的域。在DNS級別上過濾數據通信可使用戶將其運用到本地網絡的所有計算機上,這就不需要在每一臺計算機上都安裝和管理基于軟件的過濾方案了。另外,別忘了,它是免費的!
OpenDNS服務可記錄DNS的使用,使用戶可以知道Web瀏覽的多少以及用戶是否在設法訪問被阻止的網站。這種服務還準許用戶創建自己的“域名”,即被稱之為用于快速訪問站點的快捷方式。例如,用戶可以增加一個詞“mail”作為指向http://mail.yahoo.com的快捷方式。在本地網絡上的任何用戶都可以在其瀏覽器的地址欄內鍵入這個詞來訪問雅虎的郵件服務。
它提供的另外一種特性是對用戶所鍵入信息的糾正。如果用戶在瀏覽器內鍵入了sohu.cm,而不是sohu.com。這種服務將自動地添加字母“o”。在用戶確實搞錯了某個URL時,或者在一個網站關閉時,或者當用戶在地址欄輸入了一個搜索詞時,將出現該服務的搜索引擎。這正是該網站賺錢的方式,即從用戶在使用其搜索引擎時所看到的廣告中來獲取利潤。
用戶可一直使用該服務,即使沒有申請賬戶,仍可以利用其快速而可靠的域名解析服務。不過,要設置網絡使用內容過濾或快捷方式,用戶必須創建一個賬戶并設置自己的網絡,本文將討論這些問題。
改變路由器使用OpenDNS服務
用戶可以分別改變計算機的DNS服務器設置,也可以如我們所討論的,即在路由器上改變設置,這樣就可以使所有的計算機都使用OpenDNS服務。默認情況下,除非告訴它使用別的DNS服務器,否則路由器就使用ISP的DNS服務器。因此,配置網絡使用該項服務需要在路由器基于Web的配置程序中輸入兩個服務器的IP地址,一是208.67.222.222, 二是 208.67.220.220。如下圖1所示,這些設置一般出現在路由器的互聯網連接或廣域網設置中:
![]() |
圖1 |
小提示:
在將這些設置運用到路由器之后,在計算機轉向OpenDNS服務之前可能需要花費幾分鐘時間。OpenDNS的網站上提供了針對各種路由器的按部就班的操作指南。如果用戶需要幫助,可以在瀏覽器中鍵入http://www.opendns.com,單擊“Start Using it Now”鏈接,單擊路由器鏈接,然后按照屏幕提示操作即可。
#p#
創建一個OpenDNS賬戶
雖然我們已經轉而使用OpenDNS服務器,但內容過濾和多數其它的功能在我們創建一個OpenDNS賬戶并配置其設置之前是無法工作的。為創建一個OpenDNS賬戶,用戶可以在網頁下部找到一個“Continue to Step 2”按鈕。如下圖2和3所示:
![]() |
圖2 |
![]() |
圖3 |
將自己的網絡添加到OpenDNS
為了讓自己的網絡可以使用OpenDNS,我們需要將網絡添加到OpenDNS的賬戶中。在面板上,單擊“Networks”選項卡。這時互聯網連接的IP地址就會自動地添加到IP地址的字段中,如圖4所示:
![]() |
圖4 |
在單擊了添加網絡的這個按鈕之后,用戶會收到一個提示,提醒你輸入網絡名稱。用戶還需要指明是否正在使用動態IP地址的互聯網連接。如果用戶用的是動態的IP地址,就可以下載OpenDNS的更新程序來使網絡的IP設置擁有最新的IP地址。
在下面的文章中,筆者將會為互聯網連接設置多個方面的數據,如動態地址、配置內容過濾及其它設置,防止用戶繞過OpenDNS服務器,并在多個網絡中運行。
#p#
使用動態的IP地址
如前文所述,如果用戶的互聯網連接擁有一個動態的IP地址,而不是靜態的地址,就必須使OpenDNS保持當前地址的最新。許多小型企業的互聯網連接都擁有動態的地址。用戶可以在某臺計算機上安裝OpenDNS Updater等軟件客戶端或使用內置的客戶端來將IP地址的變化發送給OpenDNS。在用戶的IP地址發生變化時,如果某個客戶端并沒有設置好,那么用戶網絡的多數功能將無法運行。
在多數情況下,下載并安裝OpenDNS Updater是很簡單的事情。不過,從長遠來看,為此配置路由器是有好處的。用戶不必擔心某臺PC關機及客戶端軟件無法發送更新。因為用戶的路由器總能發送更新。此外,如果你重新格式化并重裝了Windows系統,但你仍有可能忘記重裝客戶端的更新軟件。如下圖5所示:
![]() |
圖5 |
如果你的路由器并不支持SSL更新,就可以設置路由器將IP地址更新發送給DNS-O-Matic(http://www.dnsomatic.com/),這是OpenDNS所提供的一種免費的服務,它并不要求SSL更新。DNS-O-Matic可以使用SSL連接轉發更新。
通過向服務發送更新,用戶還可以用它將互聯網連接的IP地址更新給多種服務。如果用戶擁有自己的Web服務器或某種運行在網絡(在這個網絡上用戶保持主機名隨著IP地址的更新)上的服務。如果用戶正管理著多個OpenDNS網絡,還可以配置服務來處理多個IP地址。后文將有討論。
配置OpenDNS并為動態連接配置更新客戶端
在配置軟件或路由器更新客戶端時,要保證用戶在OpenDNS面板上啟用了網絡的動態連接特性。如果在添加了網絡后用戶并沒有這樣做,可以單擊“Setting”選項卡中左側的“Advanced Settings”鏈接,選中“Enable Dynamic IP Update”復選框,單擊“Apply”。
如果用戶喜歡用軟件客戶端來更新,就可以下載OpenDNS Updater。在安裝好后,打開程序,并輸入OpenDNS用戶名、口令和網絡標簽等內容。
為配置路由器實施更新,登錄到其Web配置狀態,找到動態DNS設置,如下圖6所示:
![]() |
圖6 |
Server:一定要輸入updates.opendns.com
Host Name:輸入用戶希望在OpenDNS中更新的網絡名稱或留空(或輸入all.dnsomatic.com),更新添加到賬戶中的所有服務。
Username:輸入用戶的OpenDNS用戶名
Password:輸入用戶的OpenDNS口令
#p#
配置內容過濾
要啟用網絡的內容過濾,打開OpenDNS賬戶的面板頁,單擊“Settings”鏈接,選擇所期望的過濾水平。可以選擇一種預先定義的水平或單擊“Custom”,就可以添加/移除想要阻止的站點類型。如下圖7所示:
![]() |
圖7 |
下面筆者將與讀者討論如何分配網站的縮略名(shortcut)及配置其它的高級特性,還要看一看為多個位置管理OpenDNS所涉及到的問題。我們還要討論用戶們如何會試圖繞過OpenDNS的過濾并討論對付這些漏洞的方法。
分配縮略名并配置其它的設置
要創建縮略名,可選擇OpenDNS面板上的“Shortcut”選項卡。在“Shortcut”字段中,鍵入需要啟用縮略名的一個單詞。在“Website”字段中,輸入希望縮略名打開的站點名稱即可。
為便于日后更方便地訪問縮略名,用戶可以將這種鏈接添加到收藏夾中。在單擊鏈接時,就會打開一個包含當前網站地址的窗口,等待用戶給它起一個名字,并為所訪問的網頁創建一個縮略名。如下圖8所示:
![]() |
圖8 |
用戶還可以配置其它的雜項,從面板中選擇“Settings”鏈接,并單擊左側的“Advanced Settings”,會看到:
“Dynamic IP Update”:它會打開OpenDNS賬戶的網絡IP地址更新;
“Stats and Logs”:它會記錄網絡的互聯網活動,包括被阻止的域名。
“Domain Typos”:它可幫助檢測并糾正用戶鍵入的任何錯誤的網址。
“Suspicious Responses”:它可以防止某種基于DNS的攻擊方法,這種攻擊可以將用戶網絡置于風險之中。
“Network Shortcuts”:此選項可啟用我們前面所討論的縮略名功能。
#p#
在多網絡中運行
如果用戶要在多個位置管理網絡,那請記住這一點:你可以將多個網絡添加到一個OpenDNS賬戶中。管理網絡更為輕松,即使內容過濾和其它的設置在網絡之間有什么不同也在話下。例如,用戶可幫助自己的親戚在互聯網上更安全的使用,也可以管理企業世界中所有辦公網絡的內容過濾。
要將多個位置加入到OpenDNS的賬戶中,用戶必須先添加一個網絡(在面板中的“Networks”選項卡上),參考前圖4。如果用戶的網絡使用動態的IP地址,就需要在連接到網絡的一臺計算機上安裝更新客戶端或使用路由器的內置客戶端,如前文所述。用戶還可以將DNS-O-Matic用于多個OpenDNS網絡。正如直接將IP更新到OpenDNS一樣,用戶需要輸入每一個網絡的名稱,作為每一個網絡更新客戶端的“Host Name”參數。
如果用戶正使用加載有固件替換DD-WRT的路由器,用戶會發現,即使在將網絡名作為主機名傳輸時,仍能更新DNS-O-Matic中所有網絡的IP。如果用戶正試圖管理多個網絡,這就不太好。其實有一個解決方法:不要使用圖形用戶界面來配置動態的DNS設置(Dynamic DNS),用戶可以將代碼輸入到啟動命令中,這樣就能正確地更新。在DD-WRT 的Web界面上,單擊“Administration”/“Commands”,將下面的代碼粘貼到命令框中,單擊“Save Startup”按鈕:
#!/bin/sh
mount ramfs /mmc -t ramfs
mkdir /mmc/etc
mkdir /mmc/etc/config
echo "#!/bin/sh
inadyn --background --username ??? --password ??? --alias ??? --dyndns_server_name updates.dnsomatic.com --dyndns_server_url /nic/update?
sleep 3
killall -9 -w inadyn
" > /mmc/etc/config/ppp0.wanup
chmod 700 /mmc/etc/config/ppp0.wanup
當然,用戶需要將第六行的“?”用DNS-O-Matic用戶名和口令替換之,這與OpenDNS中的配置應當是相同的。其后是別名,用需要更新的網絡名稱來替換問號即可。
用戶如何繞過OpenDNS
作為管理員需要知道,就如同在其它的內容過濾方案中一樣,有些用戶總是要想方設法繞過OpenDNS的過濾,去訪問那結被阻止的網站。這些用戶會試著為其計算機設置其它的DNS服務器,這就會繞過任何內容過濾設置。如下圖所示,這在Windows中是很容易配置的。如下圖9所示:
![]() |
圖9 |
用戶可能采用的另外一種方法是使用代理服務器等手段,這也會繞過網絡的DNS服務器。這些類型的站點或程序并不總具有惡意目的。VPN連接提供了在本地網絡上繞過DNS設置的功能。下面我們將討論如何防止用戶使用這些方法繞過OpenDNS。
強迫用戶使用OpenDNS服務器
在解決如何鎖定計算機的DNS設置之前,你應當保證用戶僅擁有受控制計算機上的有限特權,這對于防止計算機上的其它問題也是有益的,如用戶隨意安裝軟件、更改設置及其它的可能影響系統安全的問題。如果用戶無法編輯網絡屬性,特別是TCP/IP的設置,那么,也就不能使計算機使用不同的DNS服務器。你可以通過編輯每臺計算機的本地安全策略來管理這些用戶限制類型,在域環境中管理組安全策略,也可以簡單地將用戶指定為受限的賬戶類型。
如果某些或全部用戶并不受控制,你可以設法配置路由器阻止轉出的DNS通信,當然要排除OpenDNS服務器。用這種方法就可以阻止非法通信,即使用戶設置其計算機使用另外的DNS服務器也無法得逞。它將僅準許使用OpenDNS服務的Web瀏覽。
為阻止非OpenDNS通信,你需要研究一下你的路由器用以控制用戶服務的一些特性。現在有許多路由器都擁有阻止服務、訪問控制、端口過濾等特性,這準許你阻止訪問某些IP地址特定端口的發出通信。你的根本目標是阻止用戶能夠訪問任何IP地址的53號端口,除了OpenDNS的IP地址,即208.67.222.222 和 208.67.220.220。具體的方法隨路由器而有很大不同。如下圖10:
![]() |
圖10 |
如果你正使用支持iptables的高級路由器,如加載DD-WRT固件的路由器,你需要做的就是插入兩行代碼.在DD-WRT的Web界面上,單擊“Administration”/“Commands”,將下面的代碼粘貼到“Commands”框中,并單擊“Save Firewall”按鈕:
iptables -t nat -A PREROUTING -p udp -i br0 --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -p tcp -i br0 --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
防止代理服務器/匿名工具(anonymizer)
現在你需要解決用戶通過代理/匿名工具繞過OpenDNS的內容過濾的問題。在設置內容過濾時,一定要保證選擇“Contend Filtering”類,而不管是選擇了預定義的級別或定制路由。
記住,沒有什么內容過濾方案是固若金湯的。因為每天都有許多站點聯機,包括新的代理服務器/匿名工具站點,用戶們仍有可能找到沒有被阻止的站點來幫助其繞過OpenDNS。如果你看到用戶們正試圖訪問這些類型的網站,你可以進一步調查對付這種問題的更多方法。
總結
好了,到此為止,可以說基本大功告成。OpenDNS是一種可幫助我們保障網絡安全并免受不恰當內容危害的服務,而且其快捷的域名解析也使得它可靠使用。我們探討了如何設置各個方面來與OpenDNS服務協同工作。我們還討論了如何在多個網絡中運行及如何添補一些漏洞。祝您用得順心!【51CTO.COM 獨家特稿,轉載請注明出處及作者!】
【編輯推薦】