论文部分内容阅读
摘 要:通过扫描端口,利用系统漏洞来入侵主机是黑客们常用的攻击方法。文章介绍了端口的作用和分类、端口状态检测的方法,列出了容易被病毒入侵的端口号,提出了利用基于路由器的安全防护策略防御基于端口的攻击,保障系统安全的方法。
关键词:端口 端口检测 路由器 安全防护策略
中图分类号:TP393.08 文献标识码:B 文章编号:1673-8454(2008)19-0043-02
一、引言
在网络与信息时代,入侵与入侵检测是一对永恒的矛盾。非法入侵的方式一般有两种:扫描端口,通过已知的系统Bug攻入主机;种植木马,利用木马开辟的后门进入主机。这两种非法入侵方式有一个共同点,就是通过端口进入主机。
基于端口的入侵检测是针对第一种非法入侵方式而采取的主机入侵检测中最重要的一种,大部分的计算机入侵都是从端口扫描开始的,所以基于端口的入侵检测是防止入侵的第一步,也是关键的一步。
二、端口的概念和分类
在计算机领域,端口(Port)有两种意思:一是硬件领域中的端口,又称接口,它是CPU与外设信息交换的桥梁;二是指TCP/IP协议中的端口,它是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。如果把IP地址比作一间房子,端口就是出入这间房子的门,真正的房子只有几个门,但是一个IP地址的端口可以有65536个之多,端口是通过端口号来标记的,端口号只有整数,范围是从0到65535。我们常用的FTP默认端口为21,而WWW网页一般默认端口是80。那么,只要我们把自己用不到的端口全部封锁起来,就杜绝了一般的非法入侵。
计算机网络中的通信实际上是应用进程之间的通信,一台计算机中可能同时有多个应用进程在通信,通过IP地址可以找到目的主机,但是还不能确定应该将数据送给目的主机的哪一个应用进程,所以需要通过端口号来区分不同的应用进程,每一种网络服务都与一个端口相对应。两种常见的端口分类:
1.按协议类型划分
按端口所采用的协议类型划分,主要分为TCP和UDP。(1)TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。(2)UDP端口:即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。
虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。
2.按端口的分配划分
固定端口。使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派,范围从0到1023。由于这些端口捆绑于一些服务,所以我们会经常扫描这些端口来判断对方是否开启了这些服务,比如TCP的21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
动态端口。动态端口的范围从1024到49151,这些端口号一般不固定分配给某个服务,操作系统将这些端口动态地分配给各个进程,同一进程两次分配有可能分配到不同的端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。动态端口常常被病毒木马程序所利用,如冰河默认连接端口是7626等等。
三、病毒常用端口列表
基于端口的入侵是黑客们常用的的手法,其工作过程是通过远程扫描技术,反复不断地扫描目标主机的端口,通过检测目标主机不同TCP/IP端口的服务,记录目标主机给予的不同回答,进而搜集到目标主机上的各种信息,互联网上常见的病毒攻击的端口如表1所示。
四、端口状态检测的方法
一般来说,如果一个系统(或主机)负荷突然升高甚至失去响应,可以使用Netstat命令来查看端口的连接情况,进而发现病毒是通过哪些端口侵入计算机。Netstat辅以不同的参数用于显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
在命令提示符状态下键入“netstat -a”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。键入“netstat -n”,按下回车键后以数字格式显示地址和端口号(而不是尝试查找名称)。
五、创建基于端口的路由器安全防范策略
1.防止外部IP地址欺骗
外部网络的用户可能会使用内部网的合法IP地址或者回环地址作为源地址,从而实现非法访问。非法访问者对内部网络发起攻击前,往往会用ping或其他命令探测网络,所以可以通过禁止从外部用ping等命令来进行防范。取消远程用户接收ping请求的应答能力,就更容易避开那些无人注意的扫描活动或者防御那些寻找容易攻击的目标的“脚本小子”,这样做实际上并不能保护网络不受攻击,但是,这将使网络不太可能成为攻击目标。
同时,可以建立准许进入和外出的地址过滤政策。除了特殊的案例之外,所有试图从你的网络内部访问互联网的IP地址都应该有一个分配给你的局域网的地址,例如,192.168.1.2这个地址也许通过这个路由器访问互联网是合法的。但是,125.223.68.99这个地址很可能是欺骗性的,并且是一场攻击的一部分。相反,来自互联网外部的通信的源地址应该不是你的内部网络的一部分,因此,应该封锁入网的192.168.X.X、172.16.X.X和10.X.X.X等地址。最后,拥有源地址的通信或者保留的和无法路由的目标地址的所有的通信都应该允许通过这台路由器,这包括回送地址127.0.0.1或者E类地址段240.0.0.0至254.255.255.255。
针对此类问题可以在外部接口的向内方向使用101过滤。
可参考建立如下访问列表:
(1)阻止源地址为私有地址的所有通信流
access-list 101 deny ip 10.0.0.0 0.255.255.255 any
access-list 101 deny ip 192.168.0.0 0.0.255.255 any
access-list 101 deny ip 172.16.0.0 0.0.255.255 any
(2)阻止源地址为回环地址的所有通信流
access-list 101 deny ip 127.0.0.0 0.255.255.255 any
(3)阻止源地址为多目的地址的所有通信流
access-list 101 deny ip 224.0.0.0 7.255.255.255 any
(4)阻止没有列出源地址的通信流
access-list 101 deny ip host 0.0.0.0 any
2.防止外部的非法探测
可在外部接口的向外方向使用102过滤。在这里主要是阻止答复输出,不阻止探测进入。可建立如下访问列表:
(1)阻止用ping探测网络
access-list 102 deny icmp any any echo
(2)阻止用traceroute探测网络
access-list 102 deny icmp any any time-exceeded
(3)拒绝内部病毒通过路由器对外部扫描做出答复
access-list 102 deny tcp any any eq 139
access-list 102 deny tcp any any eq 593
access-list 102 deny tcp any any eq 1434
…
3.保护路由器不受攻击
路由器一般可以通过telnet或SNMP访问,应该确保Internet上没有人能用这些协议攻击路由器。可以生成阻止telnet、SNMP服务的向内过滤保护路由器。在外部接口的向内方向使用101过滤。假定路由器外部接口interface GigabitEthernet0的IP为 125.223.68.1,内部接口的IP为192.168.1.1,可参考建立如下访问列表:
access-list 101 deny tcp any 125.223.68.1 0.0.0.0 eq 23
access-list 101 deny tcp any 125.223.68.1 0.0.0.0 eq 23
access-list 101 deny udp any 125.223.68.1 0.0.0.0 eq 161
access-list 101 deny udp any 125.223.68.1 0.0.0.0 eq 161
4.阻止对关键端口的非法访问
关键端口可能是内部系统使用的端口或者是防火墙本身暴露的端口。对这些端口的访问应该加以限制,否则这些设备就很容易受到攻击。建立如下访问列表:
access-list 101 deny tcp any any eq 135
access-list 101 deny tcp any any eq 137
access-list 101 deny tcp any any eq 138
…
除了进行端口检测以外,还可关闭一些服务器端口。路由器除了可以提供路径选择外,它还是一台服务器,可以提供一些有用的服务。路由器运行的这些服务可能会成为敌人攻击的突破口,为了安全起见,最好关闭这些服务。
关键词:端口 端口检测 路由器 安全防护策略
中图分类号:TP393.08 文献标识码:B 文章编号:1673-8454(2008)19-0043-02
一、引言
在网络与信息时代,入侵与入侵检测是一对永恒的矛盾。非法入侵的方式一般有两种:扫描端口,通过已知的系统Bug攻入主机;种植木马,利用木马开辟的后门进入主机。这两种非法入侵方式有一个共同点,就是通过端口进入主机。
基于端口的入侵检测是针对第一种非法入侵方式而采取的主机入侵检测中最重要的一种,大部分的计算机入侵都是从端口扫描开始的,所以基于端口的入侵检测是防止入侵的第一步,也是关键的一步。
二、端口的概念和分类
在计算机领域,端口(Port)有两种意思:一是硬件领域中的端口,又称接口,它是CPU与外设信息交换的桥梁;二是指TCP/IP协议中的端口,它是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。如果把IP地址比作一间房子,端口就是出入这间房子的门,真正的房子只有几个门,但是一个IP地址的端口可以有65536个之多,端口是通过端口号来标记的,端口号只有整数,范围是从0到65535。我们常用的FTP默认端口为21,而WWW网页一般默认端口是80。那么,只要我们把自己用不到的端口全部封锁起来,就杜绝了一般的非法入侵。
计算机网络中的通信实际上是应用进程之间的通信,一台计算机中可能同时有多个应用进程在通信,通过IP地址可以找到目的主机,但是还不能确定应该将数据送给目的主机的哪一个应用进程,所以需要通过端口号来区分不同的应用进程,每一种网络服务都与一个端口相对应。两种常见的端口分类:
1.按协议类型划分

按端口所采用的协议类型划分,主要分为TCP和UDP。(1)TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。(2)UDP端口:即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。
虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。
2.按端口的分配划分
固定端口。使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派,范围从0到1023。由于这些端口捆绑于一些服务,所以我们会经常扫描这些端口来判断对方是否开启了这些服务,比如TCP的21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
动态端口。动态端口的范围从1024到49151,这些端口号一般不固定分配给某个服务,操作系统将这些端口动态地分配给各个进程,同一进程两次分配有可能分配到不同的端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。动态端口常常被病毒木马程序所利用,如冰河默认连接端口是7626等等。
三、病毒常用端口列表
基于端口的入侵是黑客们常用的的手法,其工作过程是通过远程扫描技术,反复不断地扫描目标主机的端口,通过检测目标主机不同TCP/IP端口的服务,记录目标主机给予的不同回答,进而搜集到目标主机上的各种信息,互联网上常见的病毒攻击的端口如表1所示。
四、端口状态检测的方法
一般来说,如果一个系统(或主机)负荷突然升高甚至失去响应,可以使用Netstat命令来查看端口的连接情况,进而发现病毒是通过哪些端口侵入计算机。Netstat辅以不同的参数用于显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
在命令提示符状态下键入“netstat -a”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。键入“netstat -n”,按下回车键后以数字格式显示地址和端口号(而不是尝试查找名称)。
五、创建基于端口的路由器安全防范策略
1.防止外部IP地址欺骗
外部网络的用户可能会使用内部网的合法IP地址或者回环地址作为源地址,从而实现非法访问。非法访问者对内部网络发起攻击前,往往会用ping或其他命令探测网络,所以可以通过禁止从外部用ping等命令来进行防范。取消远程用户接收ping请求的应答能力,就更容易避开那些无人注意的扫描活动或者防御那些寻找容易攻击的目标的“脚本小子”,这样做实际上并不能保护网络不受攻击,但是,这将使网络不太可能成为攻击目标。
同时,可以建立准许进入和外出的地址过滤政策。除了特殊的案例之外,所有试图从你的网络内部访问互联网的IP地址都应该有一个分配给你的局域网的地址,例如,192.168.1.2这个地址也许通过这个路由器访问互联网是合法的。但是,125.223.68.99这个地址很可能是欺骗性的,并且是一场攻击的一部分。相反,来自互联网外部的通信的源地址应该不是你的内部网络的一部分,因此,应该封锁入网的192.168.X.X、172.16.X.X和10.X.X.X等地址。最后,拥有源地址的通信或者保留的和无法路由的目标地址的所有的通信都应该允许通过这台路由器,这包括回送地址127.0.0.1或者E类地址段240.0.0.0至254.255.255.255。
针对此类问题可以在外部接口的向内方向使用101过滤。
可参考建立如下访问列表:
(1)阻止源地址为私有地址的所有通信流
access-list 101 deny ip 10.0.0.0 0.255.255.255 any
access-list 101 deny ip 192.168.0.0 0.0.255.255 any
access-list 101 deny ip 172.16.0.0 0.0.255.255 any
(2)阻止源地址为回环地址的所有通信流
access-list 101 deny ip 127.0.0.0 0.255.255.255 any
(3)阻止源地址为多目的地址的所有通信流
access-list 101 deny ip 224.0.0.0 7.255.255.255 any
(4)阻止没有列出源地址的通信流
access-list 101 deny ip host 0.0.0.0 any
2.防止外部的非法探测
可在外部接口的向外方向使用102过滤。在这里主要是阻止答复输出,不阻止探测进入。可建立如下访问列表:
(1)阻止用ping探测网络
access-list 102 deny icmp any any echo
(2)阻止用traceroute探测网络
access-list 102 deny icmp any any time-exceeded
(3)拒绝内部病毒通过路由器对外部扫描做出答复
access-list 102 deny tcp any any eq 139
access-list 102 deny tcp any any eq 593
access-list 102 deny tcp any any eq 1434
…
3.保护路由器不受攻击
路由器一般可以通过telnet或SNMP访问,应该确保Internet上没有人能用这些协议攻击路由器。可以生成阻止telnet、SNMP服务的向内过滤保护路由器。在外部接口的向内方向使用101过滤。假定路由器外部接口interface GigabitEthernet0的IP为 125.223.68.1,内部接口的IP为192.168.1.1,可参考建立如下访问列表:
access-list 101 deny tcp any 125.223.68.1 0.0.0.0 eq 23
access-list 101 deny tcp any 125.223.68.1 0.0.0.0 eq 23
access-list 101 deny udp any 125.223.68.1 0.0.0.0 eq 161
access-list 101 deny udp any 125.223.68.1 0.0.0.0 eq 161
4.阻止对关键端口的非法访问
关键端口可能是内部系统使用的端口或者是防火墙本身暴露的端口。对这些端口的访问应该加以限制,否则这些设备就很容易受到攻击。建立如下访问列表:
access-list 101 deny tcp any any eq 135
access-list 101 deny tcp any any eq 137
access-list 101 deny tcp any any eq 138
…
除了进行端口检测以外,还可关闭一些服务器端口。路由器除了可以提供路径选择外,它还是一台服务器,可以提供一些有用的服务。路由器运行的这些服务可能会成为敌人攻击的突破口,为了安全起见,最好关闭这些服务。