快速关闭非业务端口
服务器开放的端口,对于***者来说,其实就是一个入口点,一旦入口点存在安全风险,那么***者就会集中精力对该端口进行***,但是某些管理员在部署相关业务的时候,并没有对服务器开放的端口进行检查,导致开放了很多非业务端口,一旦开放的端口被***者利用(如windows的445端口),那么即使你业务(端口)安全防护措施做得多好也是无济于事的!因此我们在服务器上面部署业务后,一定需要及时关闭那些非业务端口,那么我们怎么知道我们开放了哪些端口?我们应该怎么关闭这些端口呢?
查看开放的端口
查看开放的端口我们可以使用netstat命令来进行查看,该命令windows和linux都是支持的,对于windows,我们可以使用
netstat -ano
来快速查看开放的端口以及对应的PID号,如下图:
对于linux系统,我们可以使用
netstat -anp
来快速查看我们开放的端口、PID以及对应的程序名称(服务),如下图:
通过使用以上的方法,我们可以查看我们开放了什么端口,然后判断出什么端口是我们需要的,什么端口是我们不需要的,对于不需要的,我们应该及时关闭!
关闭非业务端口
当我们找出了哪些端口是我们不需要的,我们应该把这些端口直接关闭,以防被***者利用!
对于linux系统来说,我们可以使用命令
kill PID
PID是上面查出来的具体PID,这样就可以关闭不需要的端口了。另外我们可以使用命令
sudo netstat -anp | grep port
或者
lsof -i:port
port是具体的端口号,这样可以查看单独端口对应的PID,查看PID即可关闭非业务端口了!
对于windows系统来说,在我们知道那些端口是不需要的时候,我们可以使用快捷键【Ctrl+shift+Esc】打开任务管理器,选择【服务】项,查找PID对应的服务(描述即为服务名称),可以通过鼠标右键进行停止,也可以打开服务,查找对应的服务,然后进行禁止相关服务,也可使用命令 net stop 服务名称 进行禁止!
对于windows系统,我们可以使用
tskill PID
来杀死进程,但是不推荐这种方式,这种方式存在一定的风险,可能会导致蓝屏!慎用!
另外我们可以使用
netstat -ano | findstr "端口"
来单独查看某一端口的PID号。
如果这种方法不行,建议使用防火墙策略进行端口限制!
验证端口关闭是否成功
在我们使用了上述方法后,我们还需要验证端口是否关闭成功,如果是直接关闭的,那我们可以使用查询开放的端口来进行验证,如果我们是使用防火墙做的策略,那么我们可以让一个互通的主机使用命令
telnet ip 端口
来进行查看端口是否封堵成功,端口是具体端口号,如果显示以下信息表示成功封堵!
正在连接xx.xx.xx.xx...无法打开到主机的连接。 在端口 xx: 连接失败
反之封堵未成功!