通过封锁无用端口来防止未知漏洞可能造成的安全隐患

通过封锁无用端口来防止未知漏洞可能造成的安全隐患

  端口可以理解成用户访问一台服务器上不同的服务所走的不同的通道,这个通道就叫端口号。这里容易存在一个误区:并非端口存在安全隐患,而是监听在该端口上的服务可能存在漏洞,封锁端口只是阻断了黑客的攻击途径,并没有从根本上解决服务本身可能存在的漏洞。每一种应用层协议默认对应一个(或多个)TCP或UDP端口,端口号的范围是1-65535。比如http协议对应TCP的80端口、ssh协议对应TCP的22端口,一台服务器上默认会运行一些不需要的服务(或是需要运行但不需要对外提供访问的服务),尤其是Windows操作系统,为了确保兼容性和易用性,Windows操作系统默认开启了很多服务,监听了很多端口,比如135/137/138/139/445等等,这会将服务器置于非常危险的处境,所以禁用不需要的端口至关重要。以web服务为例,下面是常见的应用场景和封锁方案:

1、自建机房中的服务器

  自建机房通常会设有硬防、WAF等设备,在硬防中阻断端口是效率最高的方案,其次是WAF、服务器自带的防火墙或软防。在自建机房中,通常是建议在硬防中统一做策略,入站方向(untrust-to-trust)仅允许业务端口,其余端口的数据包一律drop,连接服务器的终端或远程桌面则是通过内网的堡垒机或直连。那么将防火墙的入站方向(untrust-to-trust)配置为仅允许http-80(或https-443)端口通过,这样可以防止服务器上其他服务可能存在的安全隐患,将安全问题有效缩小至服务器的中间件和网站程序上。

2、云服务器

  云服务器通常会配有防火墙,通过网页配置规则。比如阿里云、腾讯云的云服务器可以在安全组中配置访问规则,非常方便。
  如果办公网络有固定IP(理想情况):从安全组中入站方向放行TCP协议的http-80(或https-443)端口、入站方向放行源IP为“自有固定IP”的所有协议、所有端口,其余全部禁止。
  如果办公网络无固定IP:从安全组中放行行TCP协议的http-80(或https-443)端口、放行管理端口(windows远程桌面为TCP-3389、LinuxSSH为TCP-22)。放行管理端口一定要使用强口令的密码,因为盲扫黑客会不断尝试登录猜测密码,这也造成了服务器资源的无意义消耗,可以通过更改远程桌面或SSH端口号来缓解,Linux服务器还可以通过Denyhosts或fail2ban来防止暴力破解。

Windows/Linux更改默认端口号

  1. Windows:参考微软官网文档《更改计算机上的远程桌面的侦听端口》
  2. Centos:vi /etc/ssh/sshd_config,更改Port的数值,重启SSH生效systemctl restart ssh(Centos7+)或service sshd restart(Centos6)。

查看端口监听命令:

  • Windows:netstat -ano
  • linux:netstat -tunlp

参考:

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×