应用思科阻止特定网站访问

我们经常会遇到这样一个问题:有台Cisco 2600,平时用作互联网服务器。现在希望可以屏蔽某些特定网站,该怎么做呢?

步骤1:配置个DNS服务器

假设我们打算屏蔽自己公司工大瀚洋网站。Cisco IOS自己把地址找出并填上它。

本例中,我们配置一个主DNS服务器1.1.1.1,以及备DNS服务器2.2.2.2,以便路由器对域名进行解析。当我们需对某个域名进行Ping服务时,路由器将使用这些DNS服务器。以下是具体示例:

Router# ping www.ciscoedu.net

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 61.134.10.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms

在上述例子中,路由器使用了我们指定的域名服务器地址(1.1.1.1)来尝试解析域名。它成功的将域名解析为对应IP ——61.134.10.4。

如果我们不曾指定DNS服务器,那么路由器很可能返回下述这些反馈:

% Unrecognized host or address, or protocol not running.

(不认识主机或地址,或可能协议未运行)

步骤2:建立ACL

想真正阻止访问某个网站,我们必须建立一个存取控制列表(access control list,简称ACL)来具体定义们想阻止什么。下面举个例子:

Router(config)# access-list 101 deny tcp any host www.ciscoedu.net eq www

Router(config)# access-list 101 permit tcp any any eq www

! to allow all other web traffic

这个ACL拒绝了所有对特定网站www.ciscoedu.net访问。在阻止访问该网站同时,它允许所有人访问其他任意网站。

最后,由于ACL的隐含禁止,除WWW外所有其通信将全部被禁止。

如果您想知道到底哪些IP地址试图访问被阻止的网站,可以通过使LOG关键字,记录相关信息。下面是一个例子。

Router(config)# access-list 101 deny tcp any host www.ciscoedu.net eq www log

步骤3:避免“遗漏”

有一点需注意。输入述ACL第一行后,留意路由器是如何使用DNS服务器来解析域名。然后它会用解析域名所得的IP地址替换掉ACL主机名。我们仔细看看配置:

Router# sh run | inc access-list 101

access-list 101 deny tcp any host 66.116.109.62 eq www

这是个很好的功能,但是可能由于几个原因导致出现问题。

步骤4:实施ACL

仅仅创建了ACL并不意味着路由器就用上了它——我们还必须ACL进行实施。同样,基于设计的目的,我们需要路由器的Out方向实施这个ACL。下面是一个示例:

Router(config)# int serial 0/0

Router(config-if)# ip access-group 101 out

到此,整个过程全部完成,通过ACL的控制,我们实现了用​思科路由控制访问网站。