近几年来,计算机网络,特别是互联网的发展非常迅速,ATM以及IP OVER DWDM技术的发展使网络传输的带宽快速增加。而网络安全和管理技术的发展却相对滞后,网络安全的呼声虽高,但真正落到实际的确少之又少。人们往往认为增加企业网络的安全机制需要增加防火墙、认证服务器等设备,但是价格不菲的安全设备,却增加了许多小型企业的生产成本,而事实上,我国广泛使用的CISCO路由器中内嵌IOS中的安全机制以足以满足一般企业互联的需求。
一段时间后,使用"show log"命令显示匹配访问列表的每个报文的细节信息。由于路由器的log buffer有限,为更彻底了解企业使用TCP/IP端口的详细情况,可以使用"logging A.B.C.E"命令将路由器所搜集的log信息传送到IP 地址为A.B.C.E的syslog server上,windows平台上的免费syslog server 软件可到http://support.3com.com/software/utilities_for_windows_32_bit.htm处下载。
由于路由器对流经Serial 0 的TCP报文均按照access-list 访问列表的内容顺序进行检测,这无疑将大大加重路由器CPU的负担,因此,建立访问列表一段时间后,可使用命令"show access-list 100"检查每项access-list 后面括号中TCP报文的matched数,根据matched数由大到小的顺序重新排列访问列表每个access-list的顺序,这样可以减少报文在访问列表中不必要的检测,减少特定报文查找访问列表的时间,降低路由器CPU的负担。
一定注意到access-list 100 的最末尾使用了关键字"established",它被CISCO路由器访问列表用来允许TCP返回的报文。它检测TCP报文中ACK或RST标志位的存在,如果报文中的ACK或RST位被设置了,则通常表示报文是一个正在进行的会话的一部分,所以,使用关键字"established"是一种判断报文是否为一个已知会话的一部分的简单方法。但是,作为网络黑客可以非常容易地写出一段程序,用来生成这两个标志,并将带有ACK或RST标志位的报文发送出去,而这些报文却并非正在进行的合法会话的一部分。在实践中我们发现TCP返回的报文随机选择的端口号范围为1024~65536(因为Well-Know port的端口范围是1~1023),所以我们可以将含有关键字"established"的访问控制语句改为:
假设上一例子中企业网络操作系统是基于Windows NT平台的,使用WINS服务器解析计算机名,假设WINS Server 不在企业总部而在分支机构,它的IP地址为 192.168.2.245。由于互联网上利用Windows 系统Netbios漏洞(UDP port 137~139)进行攻击的程序(如winnuke)较多,因此,必须对这部分UDP协议进行过滤,以保证企业总部的计算机系统不受攻击,同时也不能影响WINS的名字解析工作(UDP port:137,netbios-ns)。
之所以将FTP单独拿出来讨论,是因为在建立访问列表时我们发现FTP是一个非常特殊而且复杂的多端口TCP操作。虽然FTP使用的是TCP端口21(ftp-control),但它还使用了TCP端口20(ftp-data)。端口21用来传输FTP命令,端口20用来传输数据。令人xx的是,客户机并不是在通过端口21建立FTP连接后简单地再建立一个到FTP服务器端口20的连接,相反是有FTP服务器从端口20建立与客户机的连接,它选择的客户机端口是大于1023的随机端口,客户机然后将端口信息通过已建立的数据通道发往FTP服务器。换句话说,FTP服务器会发起一个到客户机的返回连接。
回到前面的例子,如果位于企业总部的客户机希望访问分支机构的FTP服务器,那么FTP服务器将会发出一个新的连接至FTP的客户机,虽然报文的目的端口号大于1023,但是它的ACK或RST位不会被设置,那么将会受到"access-list 100 permit tcp any 192.168.18.0 0.0.0.255 gt 1023 established"的阻拦,因此,为保证FTP的正常工作,我们还需在访问列表中增加一项:
这一点和前面所谈的访问列表关系不大,但是,由于目前许多企业大量使用WINDOWS 平台下的PC,而WINDOWS系统可以任由用户自行定义IP地址,而许多用户在不了解网络的情况下,错误地将自己使用的PC的IP地址改为路由器以太网口的IP地址,这样势必造成网络传输的异常。为防止这类情况出现时,严重影响企业网络的正常运转,可以采取在路由器内建立静态ARP的办法,保证除IP地址出现问题的PC外,其他PC的正常工作。我们可以在CISCO路由器上使用如下命令:
|