论文部分内容阅读
随着计算机通信技术的不断发展,许多单位都借助电信部门的X.25或DDN等各种通信线路构建自己的广域网。这些广域网或是将自己各分支机构的局域网连在一起,或是单位之间共同建立的业务网。技术的发展,大大提高了办公效率,但同时也带来了安全隐患。
在网络管理中,对来自本局域网之外的远程访问进行监控是必要的。如果不加防范,来自外部网络的恶意入侵很可能造成重大损失。目前,许多单位都在网络上安装了各类软、硬件防火墙,以控制外部访问。而作为全球最大的路由器厂商,CISCO的路由器产品本身已提供了较为完善的通信管理机制,可以对数据包进行过滤。
笔者在网络管理工作中,为了加强网络安全,参阅有关资料,尝试利用了CISCO路由器的IP通信管理机制来配置防火墙并对外部访问进行记录,取得了很好的效果。本文将根据自己的体会介绍这方面的技术,以与同行探讨。
一、控制网络间的远程访问
为了对网络包的传输进行控制,首先要在路由器上建立IP访问表,然后在路由器的特定端口上应用已建立的IP访问表。
1.建立IP访问表(IP ACCESS LIST)
IP访问表可以限制网络通信和特定设备的网络使用,限制或禁止来自特定路由器接口的数据通信。
IP访问表可分为两类:标准访问表(STANDARD ACCESS LIST)和扩展访问表(EXTENDED ACCESS LIST)。
标准访问表仅根据数据包的源地址进行是否允许数据包通过的限制,其命令形式如下:
Router(config)# access-list access-list-number {permit/deny}
{source[source-wildcard]|any}[log]
其中,“access-list-number”即定义的表号,取值为1-99;source为数据包的源IP地址;“source-wildcard”为屏蔽位,“0”表示比较,“1”表示无关位,“log”为可选项,若命令行中有“log”,则访问信息将存入日志缓冲区(logging buffer)或其它设备(与设置有关,后面将专门介绍)。
扩展访问表则提供了更高层的控制,即允许对会话层协议目标地址、应用端口号码等进行过滤,例如,可允许某外部节点通过ftp访问本局域网的某主机,但不允许该节点通过telnet访问主机。扩展访问表的命令形式如下:
Route(config)# access-list access-list-number {permit/deny}
{protocol-keyword} {source[source-wildcard]|any}
{destination[destination-wildcard]|ANY}[EQ|GT][Type-name] [log]
其中,“access-list-number”取值范围:100-199;“source”和“destination”分别代表数据包的源IP地址和目的IP地址;“protocol-keyword”为协议关键字,可选IP,TCP,UDP,ICMP;“Type-name”可参考UNIX系统中/etc/services文件里的各种服务,如telnet,ftp等,也可输入对应的端口号(请参看相关的RFC文档)。
2.在路由器的端口上应用IP访问表
CISCO路由器对访问表有两种处理方式,输入访问表处理(Inbound Access List Processing)和输出访问表处理(Outbound Access List Processing)。二者的差别在于对输入的信息包,前者先根据IP访问表进行判断是否允许通过,如果允许,则路由到相应的端口进行转发,否则拒绝信息包通过并返回ICMP的“Host Unreachable”消息;后者则先路由到相应的端口,然后再根据IP访问表进行判断,决定是否转发。
建立IP访问表后,还需要在路由器的端口上进行配置。命令格式为:
Route(config-if)# ip access-group access-list-number {in|out}
其中,access-list-number为已建立的IP访问表号;in表示输入访问表处理,out表示输出访问表处理。
二、对外部访问进行记录
对外部访问进行记录的意义在于一方面可以让网络管理员检查是否存在不被允许的外部访问,以发现安全隐患;另一方面,可以把已发生的外部访问作记录,一旦局域网内的系统遭到破坏(如数据库系统中的记录遭到恶意篡改),历史记录便可以作为追查入侵者的线索。
1.记录已发生的访问
为记录已发生的访问,首先要在访问表的相关项后面加上“log”,这样当数据包通过路由器端口时,日志进程(logging process)会收到一条日志消息(logging message),日志进程根据路由器的设置将日志消息送到不同的目的设备(如:控制台、日志缓冲区等)。我们可将目的设备指定为一台UNIX机器,则访问记录可被保存在UNIX机器的磁盘文件中。
设置命令形式如下:
Route(config)# logging on
Route(config)# logging host
其中,“host”为UNIX机器的IP地址。
访问记录将被写入UNIX机器的/usr/adm/syslog文件中(注,笔者在调试时使用的机器采用了SCO UNIX操作系统,syslog文件为一系统生成的文本文件)。
2.追踪非法访问
在CISCO路由器的端口设置中有两条记帐命令:
Route(config-if)# ip accounting
Route(config-if)# ip accounting access-violations
第一条命令是对所有通过该端口的数据包进行统计,统计的内容包括源IP地址和目的IP地址、通过包的数量以及通信字节数。第二条命令是对所有试图通过该端口而被访问表拒绝的非法访问数据包进行统计,统计的内容包括源IP地址和目的IP地址、通过包的数量、通信字节数以及拒绝这项访问的访问表号。为了追踪非法访问,需配置第二条命令。
在全局配置中有一条过滤命令:
Route(config)# ip accounting-list address address-wildcard
这条命令的目的是仅对需要作记帐的网段或节点地址的访问进行统计(缺省为全部地址)。其中,“address”和“address-wildcard”分别代表网段或节点的地址和地址屏蔽位,其格式和代表的地址范围请参看前面对source和source-wildcard的举例。
为了查看非法访问记录,可执行以下命令:
Route# show ip accounting access-violations
在网络管理中,对来自本局域网之外的远程访问进行监控是必要的。如果不加防范,来自外部网络的恶意入侵很可能造成重大损失。目前,许多单位都在网络上安装了各类软、硬件防火墙,以控制外部访问。而作为全球最大的路由器厂商,CISCO的路由器产品本身已提供了较为完善的通信管理机制,可以对数据包进行过滤。
笔者在网络管理工作中,为了加强网络安全,参阅有关资料,尝试利用了CISCO路由器的IP通信管理机制来配置防火墙并对外部访问进行记录,取得了很好的效果。本文将根据自己的体会介绍这方面的技术,以与同行探讨。
一、控制网络间的远程访问
为了对网络包的传输进行控制,首先要在路由器上建立IP访问表,然后在路由器的特定端口上应用已建立的IP访问表。
1.建立IP访问表(IP ACCESS LIST)
IP访问表可以限制网络通信和特定设备的网络使用,限制或禁止来自特定路由器接口的数据通信。
IP访问表可分为两类:标准访问表(STANDARD ACCESS LIST)和扩展访问表(EXTENDED ACCESS LIST)。
标准访问表仅根据数据包的源地址进行是否允许数据包通过的限制,其命令形式如下:
Router(config)# access-list access-list-number {permit/deny}
{source[source-wildcard]|any}[log]
其中,“access-list-number”即定义的表号,取值为1-99;source为数据包的源IP地址;“source-wildcard”为屏蔽位,“0”表示比较,“1”表示无关位,“log”为可选项,若命令行中有“log”,则访问信息将存入日志缓冲区(logging buffer)或其它设备(与设置有关,后面将专门介绍)。
扩展访问表则提供了更高层的控制,即允许对会话层协议目标地址、应用端口号码等进行过滤,例如,可允许某外部节点通过ftp访问本局域网的某主机,但不允许该节点通过telnet访问主机。扩展访问表的命令形式如下:
Route(config)# access-list access-list-number {permit/deny}
{protocol-keyword} {source[source-wildcard]|any}
{destination[destination-wildcard]|ANY}[EQ|GT][Type-name] [log]
其中,“access-list-number”取值范围:100-199;“source”和“destination”分别代表数据包的源IP地址和目的IP地址;“protocol-keyword”为协议关键字,可选IP,TCP,UDP,ICMP;“Type-name”可参考UNIX系统中/etc/services文件里的各种服务,如telnet,ftp等,也可输入对应的端口号(请参看相关的RFC文档)。
2.在路由器的端口上应用IP访问表
CISCO路由器对访问表有两种处理方式,输入访问表处理(Inbound Access List Processing)和输出访问表处理(Outbound Access List Processing)。二者的差别在于对输入的信息包,前者先根据IP访问表进行判断是否允许通过,如果允许,则路由到相应的端口进行转发,否则拒绝信息包通过并返回ICMP的“Host Unreachable”消息;后者则先路由到相应的端口,然后再根据IP访问表进行判断,决定是否转发。
建立IP访问表后,还需要在路由器的端口上进行配置。命令格式为:
Route(config-if)# ip access-group access-list-number {in|out}
其中,access-list-number为已建立的IP访问表号;in表示输入访问表处理,out表示输出访问表处理。
二、对外部访问进行记录
对外部访问进行记录的意义在于一方面可以让网络管理员检查是否存在不被允许的外部访问,以发现安全隐患;另一方面,可以把已发生的外部访问作记录,一旦局域网内的系统遭到破坏(如数据库系统中的记录遭到恶意篡改),历史记录便可以作为追查入侵者的线索。
1.记录已发生的访问
为记录已发生的访问,首先要在访问表的相关项后面加上“log”,这样当数据包通过路由器端口时,日志进程(logging process)会收到一条日志消息(logging message),日志进程根据路由器的设置将日志消息送到不同的目的设备(如:控制台、日志缓冲区等)。我们可将目的设备指定为一台UNIX机器,则访问记录可被保存在UNIX机器的磁盘文件中。
设置命令形式如下:
Route(config)# logging on
Route(config)# logging host
其中,“host”为UNIX机器的IP地址。
访问记录将被写入UNIX机器的/usr/adm/syslog文件中(注,笔者在调试时使用的机器采用了SCO UNIX操作系统,syslog文件为一系统生成的文本文件)。
2.追踪非法访问
在CISCO路由器的端口设置中有两条记帐命令:
Route(config-if)# ip accounting
Route(config-if)# ip accounting access-violations
第一条命令是对所有通过该端口的数据包进行统计,统计的内容包括源IP地址和目的IP地址、通过包的数量以及通信字节数。第二条命令是对所有试图通过该端口而被访问表拒绝的非法访问数据包进行统计,统计的内容包括源IP地址和目的IP地址、通过包的数量、通信字节数以及拒绝这项访问的访问表号。为了追踪非法访问,需配置第二条命令。
在全局配置中有一条过滤命令:
Route(config)# ip accounting-list address address-wildcard
这条命令的目的是仅对需要作记帐的网段或节点地址的访问进行统计(缺省为全部地址)。其中,“address”和“address-wildcard”分别代表网段或节点的地址和地址屏蔽位,其格式和代表的地址范围请参看前面对source和source-wildcard的举例。
为了查看非法访问记录,可执行以下命令:
Route# show ip accounting access-violations