什么是端口?
在网络技术中,端口有两种含义:一种是物理端口,如ADSL调制解调器、集线器、交换机和路由器用来连接其他网络设备的接口,如RJ-45端口和SC端口。二是逻辑端口,一般指TCP/IP协议中的端口。端口号范围从0到65535,比如浏览web服务的端口80,FTP服务的端口21等等。这里要介绍的是逻辑端口。
港口分类
逻辑意义上的端口有很多分类标准,下面将介绍两种常见的分类:
1.除以端口号分布
(1)知名端口
众所周知的端口是从0到1023的众所周知的端口号,这些端口号一般被分配给一些服务。比如端口21分配给FTP服务,端口25分配给SMTP(简单邮件传输协议)服务,端口80分配给HTTP服务,端口135分配给RPC(远程过程调用)服务等等。
(2)动态端口。
动态端口的范围从1024到65535,这些端口号一般不会固定到一个服务上,这意味着很多服务都可以使用这些端口。只要正在运行的程序请求系统访问网络,系统就可以分配这些端口号中的一个给该程序使用。例如,端口1024被分配给第一个向系统发送应用程序的程序。关闭程序进程后,被占用的端口号将被释放。
但是动态端口经常被病毒木马使用,比如冰川的默认连接端口是7626,WAY 2.4是8011,Netspy 3.0是7306,YAI病毒是1024。
2.根据协议类型。
按协议类型可分为TCP、UDP、IP和ICMP(互联网控制消息协议)端口。下面主要介绍TCP和UDP端口:
(1)TCP端口
TCP端口,传输控制协议端口,需要在客户端和服务器之间建立连接,能够提供可靠的数据传输。常见的有FTP服务的21端口、Telnet服务的23端口、SMTP服务的25端口、HTTP服务的80端口等。
(2)UDP端口
UDP端口,即用户数据报协议端口,不需要在客户端和服务器之间建立连接,安全性无法保证。常见的有DNS服务的端口53,SNMP服务的端口161,QQ使用的端口8000和4000等等。
端口映射功能允许内部网络中的机器向外部提供WWW服务,而不是将真实的IP地址直接传送给内部提供WWW服务的主机。如果是这样,有两个隐藏的目的。一是内部机器不安全,因为外网可以通过地址翻译功能访问本机除WWW以外的所有功能;第二,当有多台机器需要提供这项服务时,必须有尽可能多的IP地址进行转换,从而无法达到节省IP地址的目的。端口映射的作用是将一个主机的假IP地址映射到一个真实的IP地址。当用户访问提供映射端口的主机的端口时,服务器会将请求传送到提供该特定服务的主机。端口映射功能还可以将一个真实IP地址机器的多个端口映射到不同内部机器上的不同端口。端口映射功能还可以完成一些特定的代理功能,比如代理POP、SMTP、TELNET等协议。理论上可以提供6万多个端口映射,恐怕我们永远用不完。
在互联网上,每个主机通过TCP/TP协议发送和接收数据报,每个数据报根据其目的主机的ip地址进行路由。可以看出,向目的主机成功发送数据报没有任何问题。有什么问题?我们知道大多数操作系统都支持多个程序(进程)同时运行,那么目的主机应该将收到的数据报发送给哪个进程呢?显然,这个问题需要解决,所以引入了端口机制。
本地操作系统将把协议端口分配给那些需要它们的进程,每个协议端口由一个正整数标识,如80,139,445等等。目的主机收到数据报后,会根据报文头的目的端口号将数据发送到相应的端口,该端口对应的进程接收数据,等待下一组数据的到来。说到这里,港口这个概念还是显得比较抽象,继续跟着我,不要走开。
端口实际上是队列。操作系统为每个进程分配不同的队列。数据报根据目的端口被推入相应的队列,等待被进程访问。在极其特殊的情况下,这个队列可能会溢出,但是操作系统允许每个进程指定和调整自己的队列大小。
不仅接收数据报的过程需要打开自己的端口,发送数据报的过程也需要打开端口,这样数据报中就会标识出活动端口,这样接收方就可以成功地将数据报返回到这个端口。
港口分类:
在互联网上,根据协议类型,端口分为两类:TCP端口和UDP端口。虽然都是用正整数来标识,但这不会造成歧义,比如TCP端口80和UDP端口80,因为数据报会同时指明端口类型。
端口分配方面,端口分为固定端口和动态端口两类(有些教程还把很少使用的高端口分为第三类:私有端口):
固定端口(0-1023):
使用集中管理机制,即服从一个管理组织对端口的分配,该管理组织负责发布这些分配。因为这些端口绑定了一些服务,所以我们会经常扫描这些端口来判断对方是否启动了这些服务,比如TCP的21(ftp)、80(bios)、UDP的7(echo)、69(tftp)等众所周知的端口。
动态端口(1024-49151):
这些端口并不固定在一个服务上,操作系统动态地将这些端口分配给每个进程,同一个进程可能被分配给不同的端口两次。但是,有些应用程序不想使用操作系统分配的动态端口。他们有自己的‘商标’端口,比如oicq客户端的4000端口,特洛伊冰川的7626端口,这些端口都是固定的,很有名。
端口在入侵中的作用;
有人曾经把服务器比作一栋房子,把端口比作一扇通向不同房间(服务)的门,如果不考虑细节,这个比喻很好。如果一个入侵者想要占据这个房子,必然会破门而入(物理入侵是另外一个词),所以入侵者很重要的一点就是要知道这个房子开了多少扇门,是什么样的门,门后面是什么。
入侵者通常使用扫描仪扫描目标主机的端口,以确定哪些端口是开放的。从开放的端口,入侵者可以知道目标主机提供什么服务,进而猜测可能存在的漏洞。因此,扫描端口可以帮助我们更好地了解目标主机。对于管理员来说,扫描本机开放的端口也是做好安全防范的第一步。
常用端口介绍
由于本人知识有限,这里只介绍一些简单的内容。
1)21
这个端口的开放意味着服务器提供FTP服务。入侵者通常会扫描这个端口,判断是否允许匿名登录。如果他们可以找到一个可写的目录,他们就可以上传一些黑客程序进行进一步的入侵。要关闭此端口,您需要关闭FTP服务。
2)23远程登录
打开此端口意味着服务器提供远程登录服务。如果您有管理员的用户名和密码,您可以通过此服务完全控制主机(但您必须首先获得NTLM认证)并在命令行下获得一个shell。许多入侵者喜欢将此服务作为后门打开。要关闭此端口,您需要关闭Telnet服务。
3)25 smtp
这个端口的开放意味着服务器提供SMTP服务。一些不支持身份验证的服务器允许入侵者向任何地方发送邮件。SMTP服务器(尤其是Sendmail)也是最常用的进入系统的方法之一。要关闭此端口,需要关闭SMTP服务。
4)69 TFTP(民主党)
打开此端口意味着服务器提供TFTP服务,允许从服务器下载文件和写入文件。如果管理员配置错误,入侵者甚至可以下载密码文件。很多入侵者通过在自己的机器上运行该服务,将文件传输到目标机器上,从而实现文件传输。要关闭此端口,需要关闭TFTP服务。
5)79指
用于获取用户信息,查询操作系统,检测已知的缓冲区溢出错误,响应从自己机器到其他机器的手指扫描。
6)80统计安
的确,这不是一个工具,但它是查看您已经打开的端口的最方便的方式。只需在cmd中输入这个命令。如下所示:
c:\ & gt;网络统计数据库
活动连接
原始本地地址外部地址状态
TCP 0.0.0.0:135 0.0.0.0:0侦听
TCP 0.0.0.0:445 0.0.0.0:0监听
TCP 0.0.0.0:1025 0.0.0.0:0侦听
TCP 0.0.0.0:1026 0.0.0.0:0监听
TCP 0.0.0.0:1028 0.0.0.0:0监听
TCP 0.0.0.0:3372 0.0.0.0:0侦听
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1027 *:*
UDP 127 . 0 . 0 . 1:1029 *:*
UDP 127 . 0 . 0 . 1:1030 *:*
这是我不上网的时候机器开的端口。两个端口135和445是固定端口,其他是动态端口。
Fport.exe和mport.exe。
这也是一个在两个命令行下查看本地机器开放端口的小程序。其实和netstat -an差不多,只不过可以用更多的信息显示打开端口的过程。如果你怀疑你的奇怪港口可能是特洛伊马,检查它与他们。
3 activeport.exe(又名aports.exe)
它还用于查看本地机器的开放端口。除了上述两个程序的所有功能外,它还有两个更吸引人的特性:图形界面和关闭端口的能力。这对于新手来说是绝对有用的东西,推荐使用。
4超级扫描3.0
你没听说过它的名字吧?纯端口扫描软件中的1号速度快,可以指定扫描端口。不用说,这是一个绝对必要的工具。
保护您的端口:
刚接触网络的朋友,一般对自己的端口都很敏感。他们总是害怕自己的电脑开太多端口,更害怕会有后门程序的端口。但是因为对端口不是很熟悉,没有解决方案,所以不敢上网。其实保护自己的端口并没有那么难,只要做到以下几点就可以了:
1检查:经常用命令或软件检查本地开放的端口,看是否有可疑端口;
2.判断:如果对打开的端口不熟悉,应立即查阅端口百科或木马常用端口(网上有很多)等资料,查看其中对你的可疑端口的作用描述,或通过软件查看打开此端口的过程进行判断;
3关闭:如果它是一个特洛伊端口或者数据中没有这个端口的描述,那么这个端口应该关闭。可以用防火墙屏蔽这个端口,也可以用本地连接-TCP/IP-高级-选项-TCP/IP过滤端口,启用过滤机制。