端口是应用层的程序与传输层的TCP或UDP协议之间联系的通道,每个端口都对应着一个应用程序。一个系统中运行的程序越多,它所开放的端口就越多,系统被入侵的风险也就越大。本文将介绍在Windows中常用的一些关闭端口的方法。
(1)停止程序运行
一个端口就对应着一个应用层的程序,所以关闭端口的最直接办法就是停止程序运行。
比如在FTP服务器上将所有的FTP站点全部停止运行,然后再查看21端口就被关闭了。
(2)关闭服务
服务是在后台运行的程序,对于服务可以通过在【运行】中输入services.msc,打开【服务】对其进行管理。
比如我们开启“Telnet”服务,此时执行netstat命令,便会看到开放了23端口。
将服务终止,23端口也随之关闭。
(3)TCP/IP筛选
TCP/IP筛选的功能类似于防火墙,它可以将发往端口的数据过滤,设置了TCP/IP筛选之后,端口并不会被关闭,但是却无法接收数据了。
比如我们在一台服务器上开启了Web服务和FTP服务,执行netstat命令可以看到开放了80和21端口,在客户端也可以正常访问web和ftp。
然后在【高级TCP/IP设置】的“选项”中打开“TCP/IP筛选”。
勾选“启用TCP/IP筛选”,然后在“TCP端口”中设置只允许发往80端口的数据可以通过。
设置完成后,需要重启系统。
系统重启之后,可以看到21和80端口依然开放,但此时只能访问web服务,ftp服务就不可用了。
另外,如果在“TCP端口”中选择“只允许”,但在列表中不添加任何端口,这相当于将所有TCP端口全部禁用了。
需要注意的是,“TCP/IP筛选”只影响入站流量,对出站无任何限制。
在Windows 2008以后的系统中,TCP/IP筛选功能已被防火墙所取代。
(4)关闭系统默认端口
对于Windows系统,135、139、445是默认开放的三个端口,如果将这些端口强制关闭,可能会对系统或某些程序造成影响,因而在不确定的情况下,不建议关闭这些端口。
要关闭这些端口,操作也相对比较复杂。
- 关闭139端口
139端口主要用于NetBIOS协议,该协议主要用于局域网,通过协议可以将计算机名解析为IP地址。因而关闭139端口的方法就是禁用NetBIOS协议。
- 关闭445端口
445端口用于网络共享,可以通过修改注册表来关闭445端口。
打开注册表,展开项[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters],添加DWORD类型键值SMBDeviceEnabled,并将值设置为0,修改完重启计算机。
- 关闭135端口
135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,因而关闭135端口需要将DCOM服务停用。
首先修改注册表,
展开项[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole],将键值“EnableDCOM”的值改为“N”;
展开项[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc],在键值“DCOM Protocols”中删除“ncacn_ip_tcp”。
再在命令行运行services.msc,停止“Distributed Transaction Coordinator”服务。
修改完重启计算机。
需要注意的是,这种方法不适用于Win2003。