论文部分内容阅读
CISCO路由器的报文过滤可以让用户根据报文的源地址、目的地址以及应用类型控制流入网络的数据流。访问列表是基于将规则和报文进行匹配来允许或拒绝报文的排序表。路由器对报文的控制是按照访问列表中语句创建的顺序进行的,在列表的结尾处,有一句隐含的“deny all”,表明没有被此句前访问列表通过的报文将被此句拒绝。
访问列表建立在许多有关CISCO IOS的资料中均有十分详尽的介绍,在下面我仅介绍一下本人在设置访问列表所积累的部分心得。
一、建立合理的访问列表,必须了解企业的应用情况
访问列表的建立是为了保护企业网络的安全,因此,建立安全合理的访问列表,首先需要对这个企业的应用进行深入细致的了解,有哪些应用、使用哪些端口,访问哪些地址等等,使得访问列表的建立,不会影响到企业正常的网络运转。
二、根据具体应用,确立访问列表的内容
1. 过滤TCP(Transmission Control Protocol)协议
例如:某个企业总部在网络上为其分支机构提供的应用主要有:⑴远程登录访问(telnet: TCP port 23);⑵发送接收电子邮件(smtp:TCP port 25,pop3:TCP port 110);⑶WWW(http:TCP port 80),而总部可以任意访问他的分支机构, 那么他的路由器的访问列表定义如下:
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 23
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 25
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 110
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 80
access-list 100 permit tcp any any established
interface serial 0
ip access-group 100 in
由于路由器对流经Serial 0 的TCP报文均按照access-list 访问列表的内容顺序进行检测,这无疑将大大加重路由器CPU的负担,因此,建立访问列表一段时间后,可使用命令“show access-list 100”检查每项access-list 后面括号中TCP报文的matched数,根据matched数由大到小的顺序重新排列访问列表每个access-list的顺序,这样可以减少报文在访问列表中不必要的检测,减少特定报文查找访问列表的时间,降低路由器CPU的负担。
2.过滤UDP(User Datagram Protocol)协议
我们知道UDP协议和TCP协议的区别在于UDP是一种无连接的协议。因此,不会有SYN-ACK协商,因此,UDP报文头也不存在类似TCP协议ACK位或RST位那种可以确定某个报文是否为一个已存在报文会话的一部分的位。
3.过滤ICMP(internet Control Message Protocol)协议
经常使用TCP/IP网络的人,一定会用到ping和traceroute(Windows 系统为tracert)命令,这两条命令是基于ICMP协议的。ICMP与其他协议一起为网络发布错误报告,并提供使用其他协议时所发生的相关信息。
过滤ICMP比过滤TCP、UDP都要难,因为ICMP信息多数是为了响应其他程序而产生的。因此,要过滤ICMP信息,需要从接口的进出两个方向都进行报文过滤。
4. FTP协议的过滤
之所以将FTP单独拿出来讨论,是因为在建立访问列表时我们发现FTP是一个非常特殊而且复杂的多端口TCP*作。虽然FTP使用的是TCP端口21(ftp-control),但它还使用了TCP端口20(ftp-data)。端口21用来传输FTP命令,端口20用来传输数据。令人头痛的是,客户机并不是在通过端口21建立FTP连接后简单地再建立一个到FTP服务器端口20的连接,相反是有FTP服务器从端口20建立与客户机的连接,它选择的客户机端口是大于1023的随机端口,客户机然后将端口信息通过已建立的数据通道发往FTP服务器。换句话说,FTP服务器会发起一个到客户机的返回连接。
三、利用静态ARP表保障路由器的安全运行
由于目前许多企业大量使用WINDOWS 平台下的PC,而WINDOWS系统可以任由用户自行定义IP地址,而许多用户在不了解网络的情况下,错误地将自己使用的PC的IP地址改为路由器以太网口的IP地址,这样势必造成网络传输的异常。为防止这类情况出现时,严重影响企业网络的正常运转,可以采取在路由器内建立静态ARP的办法,保证除IP地址出现问题的PC外,其他PC的正常工作。
访问列表建立在许多有关CISCO IOS的资料中均有十分详尽的介绍,在下面我仅介绍一下本人在设置访问列表所积累的部分心得。
一、建立合理的访问列表,必须了解企业的应用情况
访问列表的建立是为了保护企业网络的安全,因此,建立安全合理的访问列表,首先需要对这个企业的应用进行深入细致的了解,有哪些应用、使用哪些端口,访问哪些地址等等,使得访问列表的建立,不会影响到企业正常的网络运转。
二、根据具体应用,确立访问列表的内容
1. 过滤TCP(Transmission Control Protocol)协议
例如:某个企业总部在网络上为其分支机构提供的应用主要有:⑴远程登录访问(telnet: TCP port 23);⑵发送接收电子邮件(smtp:TCP port 25,pop3:TCP port 110);⑶WWW(http:TCP port 80),而总部可以任意访问他的分支机构, 那么他的路由器的访问列表定义如下:
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 23
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 25
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 110
access-list 100 permit tcp any 192.168.18.0 0.0.0.255 eq 80
access-list 100 permit tcp any any established
interface serial 0
ip access-group 100 in
由于路由器对流经Serial 0 的TCP报文均按照access-list 访问列表的内容顺序进行检测,这无疑将大大加重路由器CPU的负担,因此,建立访问列表一段时间后,可使用命令“show access-list 100”检查每项access-list 后面括号中TCP报文的matched数,根据matched数由大到小的顺序重新排列访问列表每个access-list的顺序,这样可以减少报文在访问列表中不必要的检测,减少特定报文查找访问列表的时间,降低路由器CPU的负担。
2.过滤UDP(User Datagram Protocol)协议
我们知道UDP协议和TCP协议的区别在于UDP是一种无连接的协议。因此,不会有SYN-ACK协商,因此,UDP报文头也不存在类似TCP协议ACK位或RST位那种可以确定某个报文是否为一个已存在报文会话的一部分的位。
3.过滤ICMP(internet Control Message Protocol)协议
经常使用TCP/IP网络的人,一定会用到ping和traceroute(Windows 系统为tracert)命令,这两条命令是基于ICMP协议的。ICMP与其他协议一起为网络发布错误报告,并提供使用其他协议时所发生的相关信息。
过滤ICMP比过滤TCP、UDP都要难,因为ICMP信息多数是为了响应其他程序而产生的。因此,要过滤ICMP信息,需要从接口的进出两个方向都进行报文过滤。
4. FTP协议的过滤
之所以将FTP单独拿出来讨论,是因为在建立访问列表时我们发现FTP是一个非常特殊而且复杂的多端口TCP*作。虽然FTP使用的是TCP端口21(ftp-control),但它还使用了TCP端口20(ftp-data)。端口21用来传输FTP命令,端口20用来传输数据。令人头痛的是,客户机并不是在通过端口21建立FTP连接后简单地再建立一个到FTP服务器端口20的连接,相反是有FTP服务器从端口20建立与客户机的连接,它选择的客户机端口是大于1023的随机端口,客户机然后将端口信息通过已建立的数据通道发往FTP服务器。换句话说,FTP服务器会发起一个到客户机的返回连接。
三、利用静态ARP表保障路由器的安全运行
由于目前许多企业大量使用WINDOWS 平台下的PC,而WINDOWS系统可以任由用户自行定义IP地址,而许多用户在不了解网络的情况下,错误地将自己使用的PC的IP地址改为路由器以太网口的IP地址,这样势必造成网络传输的异常。为防止这类情况出现时,严重影响企业网络的正常运转,可以采取在路由器内建立静态ARP的办法,保证除IP地址出现问题的PC外,其他PC的正常工作。