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