在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。
逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:
知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。
在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:
依次点击"开始→运行",键入"cmd"并回车,打开命令提示符窗口。在命令提示符状态下键入"netstat -a -n",按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
命令格式:Netstat -a -e -n -o -s
在介绍各种端口的作用前,这里先介绍一下在Windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等等。为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。
比如在Windows 2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开"控制面板",双击"管理工具",再双击"服务"。接着在打开的服务窗口中找到并双击"Simple Mail Transfer Protocol (SMTP)"服务,单击"停止"按钮来停止该服务,然后在"启动类型"中选择"已禁用",最后单击"确定"按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。
如果要开启该端口只要先在"启动类型"选择"自动",单击"确定"按钮,再打开该服务,在"服务状态"中单击"启动"按钮即可启用该端口,最后,单击"确定"按钮即可。
端口说明:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,FTP服务主要是为了在两台计算机之间实现文件的上传与下载,一台计算机作为FTP客户端,另一台计算机作为FTP服务器,可以采用匿名(anonymous)登录和授权用户名与密码登录两种方式登录FTP服务器。目前,通过FTP服务来实现文件的传输是互联网上上传、下载文件最主要的方法。另外,还有一个20端口是用于FTP数据传输的默认端口号。
端口说明:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。同样需要设置客户端和服务器端,开启Telnet服务的客户端就可以登录远程Telnet服务器,采用授权用户名和密码登录。登录之后,允许用户使用命令提示符窗口进行相应的操作。在Windows中可以在命令提示符窗口中,键入"Telnet"命令来使用Telnet远程登录。
端口说明:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。比如我们在使用电子邮件客户端程序的时候,在创建账户时会要求输入SMTP服务器地址,该服务器地址默认情况下使用的就是25端口
端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
端口漏洞:如果开放DNS服务,黑客可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。近日,美国一家公司也公布了10个最易遭黑客攻击的漏洞,其中第一位的就是DNS服务器的BIND漏洞。
端口说明:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。Bootp服务是一种产生于早期Unix的远程启动协议,我们现在经常用到的DHCP服务就是从Bootp服务扩展而来的。通过Bootp服务可以为局域网中的计算机动态分配IP地址,而不需要每个用户去设置静态IP地址。
端口说明:69端口是为TFTP(Trival File Tranfer Protocol,次要文件传输协议)服务开放的,TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。不过与FTP相比,TFTP不具有复杂的交互存取接口和认证控制,该服务适用于不需要复杂交换环境的客户端和服务器之间进行数据传输。
79端口
端口说明:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。比如要显示远程计算机[url]www.abc.com[/url]上的user01用户的信息,可以在命令行中键入"finger user01@[url]www.abc.com[/url]"即可。
端口漏洞:一般黑客要攻击对方的计算机,都是通过相应的端口扫描工具来获得相关信息,比如使用"流光"就可以利用79端口来扫描远程计算机操作系统版本,获得用户信息,还能探测已知的缓冲区溢出错误。这样,就容易遭遇到黑客的攻击。而且,79端口还被Firehotcker木马作为默认的端口。
端口说明:80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。我们可以通过HTTP地址加":80"(即常说的"网址")来访问网站的,比如[url]http://www.cce.com.cn:80[/url],因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入":80"。
端口说明:99端口是用于一个名为"Metagram Relay"(亚对策延时)的服务,该服务比较少见,一般是用不到的。
109、110端口
端口说明:109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务,如今ISP的绝大多数邮件服务器都是使用该协议。在使用电子邮件客户端程序的时候,会要求输入POP3服务器地址,默认情况下使用的就是110端口
端口说明:111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信,RPC在多种网络服务中都是很重要的组件。常见的RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等等。在Microsoft的Windows中,同样也有RPC服务。
113端口
端口说明:113端口主要用于Windows的"Authentication Service"(验证服务),一般与网络连接的计算机都运行该服务,主要用于验证TCP连接的用户,通过该服务可以获得连接计算机的信息。在Windows 2000/2003 Server中,还有专门的IAS组件,通过该组件可以方便远程访问中进行身份验证以及策略管理。
端口漏洞:113端口虽然可以方便身份验证,但是也常常被作为FTP、POP、SMTP、IMAP以及IRC等网络服务的记录器,这样会被相应的木马程序所利用,比如基于IRC聊天室控制的木马。另外,113端口还是Invisible Identd Deamon、Kazimas等木马默认开放的端口。
端口说明:119端口是为"Network News Transfer Protocol"(网络新闻组传输协议,简称NNTP)开放的,主要用于新闻组的传输,当查找USENET服务器的时候会使用该端口。
端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。
137端口
端口说明:137端口主要用于"NetBIOS Name Service"(NetBIOS名称服务),属于UDP端口,使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。
端口漏洞:因为是UDP端口,对于攻击者来说,通过发送请求很容易就获取目标计算机的相关信息,有些信息是直接可以被利用,并分析漏洞的,比如IIS服务。另外,通过捕获正在利用137端口进行通信的信息包,还可能得到目标计算机的启动和关闭的时间,这样就可以利用专门的工具来攻击。
端口说明:139端口是为"NetBIOS Session Service"提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。在Windows中要在局域网中进行文件的共享,必须使用该服务。比如在Windows 98中,可以打开"控制面板",双击"网络"图标,在"配置"选项卡中单击"文件及打印共享"按钮选中相应的设置就可以安装启用该服务;在Windows 2000/XP中,可以打开"控制面板",双击"网络连接"图标,打开本地连接属性;接着,在属性窗口的"常规"选项卡中选择"Internet协议(TCP/IP)",单击"属性"按钮;然后在打开的窗口中,单击"高级"按钮;在"高级TCP/IP设置"窗口中选择"WINS"选项卡,在"NetBIOS设置"区域中启用TCP/IP上的NetBIOS。
端口说明:143端口主要是用于"Internet Message Access Protocol"v2(Internet消息访问协议,简称IMAP),和POP3一样,是用于电子邮件的接收的协议。通过IMAP协议我们可以在不接收邮件的情况下,知道信件的内容,方便管理服务器中的电子邮件。不过,相对于POP3协议要负责一些。如今,大部分主流的电子邮件客户端软件都支持该协议。
161端口
端口说明:161端口是用于"Simple Network Management Protocol"(简单网络管理协议,简称SNMP),该协议主要用于管理TCP/IP网络中的网络协议,在Windows中通过SNMP服务可以提供关于TCP/IP网络上主机以及各种网络设备的状态信息。目前,几乎所有的网络设备厂商都实现对SNMP的支持。
在Windows 2000/XP中要安装SNMP服务,我们首先可以打开"Windows组件向导",在"组件"中选择"管理和监视工具",单击"详细信息"按钮就可以看到"简单网络管理协议(SNMP)",选中该组件;然后,单击"下一步"就可以进行安装。
端口说明:443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息其他人都无法看到,保证了交易的安全性。网页的地址以https://开始,而不是常见的http://。
端口说明:554端口默认情况下用于"Real Time Streaming Protocol"(实时流协议,简称RTSP),该协议是由RealNetworks和Netscape共同提出的,通过RTSP协议可以借助于Internet将流媒体文件传送到RealPlayer中播放,并能有效地、最大限度地利用有限的网络带宽,传输的流媒体文件一般是Real服务器发布的,包括有.rm、.ram。如今,很多的下载软件都支持RTSP协议,比如FlashGet、影音传送带等等。
1024端口
端口说明:1024端口一般不固定分配给某个服务,在英文中的解释是"Reserved"(保留)。之前,我们曾经提到过动态端口的范围是从1024~65535,而1024正是动态端口的开始。该端口一般分配给第一个向系统发出申请的服务,在关闭服务的时候,就会释放1024端口,等待其他服务的调用。
端口漏洞:著名的YAI木马病毒默认使用的就是1024端口,通过该木马可以远程控制目标计算机,获取计算机的屏幕图像、记录键盘事件、获取密码等,后果是比较严重的。
端口说明:1080端口是Socks代理服务使用的端口,大家平时上网使用的WWW服务使用的是HTTP协议的代理服务。而Socks代理服务不同于HTTP代理服务,它是以通道方式穿越防火墙,可以让防火墙后面的用户通过一个IP地址访问Internet。Socks代理服务经常被使用在局域网中,比如限制了QQ,那么就可以打开QQ参数设置窗口,选择"网络设置",在其中设置Socks代理服务(如图1)。另外,还可以通过安装Socks代理软件来使用QQ,比如Socks2HTTP、SocksCap32等。
端口说明:1755端口默认情况下用于"Microsoft Media Server"(微软媒体服务器,简称MMS),该协议是由微软发布的流媒体协议,通过MMS协议可以在Internet上实现Windows Media服务器中流媒体文件的传送与播放。这些文件包括.asf、.wmv等,可以使用Windows Media Player等媒体播放软件来实时播放。其中,具体来讲,1755端口又可以分为TCP和UDP的MMS协议,分别是MMST和MMSU,一般采用TCP的MMS协议,即MMST。目前,流媒体和普通下载软件大部分都支持MMS协议。
4000端口
端口说明:4000端口是用于大家经常使用的QQ聊天工具的,再细说就是为QQ客户端开放的端口,QQ服务端使用的端口是8000。通过4000端口,QQ客户端程序可以向QQ服务器发送信息,实现身份验证、消息转发等,QQ用户之间发送的消息默认情况下都是通过该端口传输的。4000和8000端口都不属于TCP协议,而是属于UDP协议。
端口漏洞:因为4000端口属于UDP端口,虽然可以直接传送消息,但是也存在着各种漏洞,比如Worm_Witty.A(维迪)蠕虫病毒就是利用4000端口向随机IP发送病毒,并且伪装成ICQ数据包,造成的后果就是向硬盘中写入随机数据。另外,Trojan.SkyDance特洛伊木马病毒也是利用该端口的。
端口说明:在今年4月30日就报道出现了一种针对微软lsass服务的新蠕虫病毒——震荡波(Worm.Sasser),该病毒可以利用TCP 5554端口开启一个FTP服务,主要被用于病毒的传播。
端口说明:5632端口是被大家所熟悉的远程控制软件pcAnywhere所开启的端口,分TCP和UDP两种,通过该端口可以实现在本地计算机上控制远程计算机,查看远程计算机屏幕,进行文件传输,实现文件同步传输。在安装了pcAnwhere被控端计算机启动后,pcAnywhere主控端程序会自动扫描该端口。
端口说明:8080端口同80端口,是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上":8080"端口号,比如[url]http://www.cce.com.cn:8080[/url]。