使用Cisco路由器屏蔽特定的域名
有臺Cisco 2600,平時般用作互聯(lián)網(wǎng)服務(wù)器?,F(xiàn)在希望可以屏蔽某些特定網(wǎng)站,該怎么做呢?這不是個困難任務(wù)——只要您知道Cisco IOS如何工作的。這里將指導(dǎo)您進(jìn)行這項(xiàng)工作,并告訴您使這種方式應(yīng)當(dāng)
有臺Cisco 2600,平時般用作互聯(lián)網(wǎng)服務(wù)器?,F(xiàn)在希望可以屏蔽某些特定網(wǎng)站,該怎么做呢?
這不是個困難任務(wù)——只要您知道Cisco IOS如何工作的。這里將指導(dǎo)您進(jìn)行這項(xiàng)工作,并告訴您使這種方式應(yīng)當(dāng)注意些什么 。
步驟1:配置個DNS 服務(wù)器
假設(shè)我們打算屏蔽個名www.badsite.com 網(wǎng)站。我們并不知道該網(wǎng)站具體IP 地址,而且們也不想知道。沒問題——Cisco IOS自己把地址找出并填上它。
要做到這點(diǎn),們需至少在路由器上配置一臺DNS 服務(wù)器。若想配置一臺DNS 服務(wù)器,應(yīng)使ip name-server命令。下面?zhèn)€例子:
Router (config )# ip name-server 1.1.1.1 2.2.2.2
本例中,我們配置一個主DNS 服務(wù)器1.1.1.1,以及個備DNS 服務(wù)器2.2.2.2,以便路由器對域名進(jìn)行解析。這不會影響路由器任何流量 。當(dāng)我們需對某個域名進(jìn)行Ping 服務(wù)時,路由器將使用這些DNS 服務(wù)器。以下是具體示例:
Router# ping www.techrepublic.com
Translating “www.techrepublic.com”。..do main server (1.1.1.1) [OK ]
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 216.239.113.101, timeout is 2 seconds :
!?。。?!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
Router#
在上述例子中,路由器使用了我們指定的域名服務(wù)器地址(1.1.1.1)來嘗試解析域名。它成功的將域名www.techrepublic.com 解析為對應(yīng)
IP ——216.239.113.101。
如果我們不曾指定DNS 服務(wù)器,那么路由器很可能返回下述這些反饋:
Translating “www.techrepublic.com”。..do
main server (255.255.255.255)
,Unrecognized host or address, or protocol not running.
(不認(rèn)識主機(jī)或地址,或可能協(xié)議未運(yùn)行)
步驟2:建立ACL
想真正阻止訪問某個網(wǎng)站,我們必須建立一個存取控制列表
(access control list,簡稱ACL )來具體定義們想阻止什么。下面舉個例子:
Router (config )
# access-list 101 deny tcp any hostwww.badsite.com eq www
Translating “www.badsite.com”。..do main server (1.1.1.1) [OK ]
Router (config )# access-list 101 permit tcp any any eq www
! to allow all other web traffic
這個ACL 拒絕了所有對特定網(wǎng)站www.badsite.com 訪問。在阻止訪問該網(wǎng)站同時,它允許所有人訪問其他任意網(wǎng)站。
最后,由于ACL 的隱含禁止,除WWW 外所有其通信將全部被禁止。
如果您想知道到底哪些IP 地址試圖訪問被阻止的網(wǎng)站,可以通過使LOG 關(guān)鍵字,記錄相關(guān)信息。下面是一個例子。
Router (config )
# access-list 101 deny tcp any host www.badsite.com eq www log
步驟3:避免“遺漏”
有一點(diǎn)需注意。們輸入述ACL 第一行后,留意路由器是如何使用DNS 服務(wù)器來解析域名。然后它會用解析域名所得的IP 地址替換掉ACL 主機(jī)名。我們仔細(xì)看看配置:
Router# sh run | inc access-list 101
access-list 101 deny tcp any host 66.116.109.62 eq www
這是個很好的功能,但是可能由于幾個原因?qū)е鲁霈F(xiàn)問題。首先,該IP 僅僅是DNS 服務(wù)器響應(yīng)的第一個IP 。如果這個大型網(wǎng)站,有多臺服務(wù)器 (比如一個搜索引擎),而ACL 卻僅僅包含了DNS 首先響應(yīng)第一個IP ——您不得不手工屏蔽其余IP 地址。下面是一個示例:
,C :》 nslookup www.google.com
Server : DNSSERVER
Address : 1.1.1.1
Non-authoritative answer:
Name : www.l.google.com
Addresses : 64.233.167.104, 64.233.167.147, 64.233.167.99
Aliases : www.google.com
其次,如果被禁止的網(wǎng)頁服務(wù)器更改了IP 地址,ACL 中的地址并不會跟隨變化。您必須對ACL 進(jìn)行人工更新。
步驟4:實(shí)施ACL
僅僅創(chuàng)建了ACL 并不意味著路由器就用上了它——我們還必須ACL 進(jìn)行實(shí)施。下面,假設(shè)我們建立一個ACL ,以阻止內(nèi)部局域網(wǎng)訪問外部廣域網(wǎng)(比如Internet )。因此我們應(yīng)當(dāng)用ACL 的源地址過濾,而不是目標(biāo)地址的過濾。
同樣,基于設(shè)計(jì)的目的,我們需要路由器的Out 方向?qū)嵤┻@個ACL 。下面是一個示例:
Router (config )# int serial 0/0
Router (config-if )# ip access-group 101 out