活用"端口碰撞技术"---远程管理的好方式

简介:
端口碰撞技术(Port knocking)
从安全管理的角度来说,开启的服务端口越多,就越不安全,有道是“明枪易躲,暗箭难防”,因此“系统安全加固服务”中,最常用的方式,就是先关闭无用端口,再对提供服务的端口做访问控制。而作为远程管理与维护的人员通常需要开启一些服务端口,如FTPSSH,这些服务使用大家熟悉的一些端口,长时间开启这些端口,往往是“严重”的安全隐患。所以能在“需要”的时候才开启服务,并只对特定的人提供服务,服务完毕端口有恢复关闭状态,攻击者就难以利用这个“安全隐患”了,端口碰撞技术提供了比较理想的解决方案。
端口碰撞技术是一种允许服务设备在用户按照约定的序列碰撞后,打开一个约定的服务端口提供服务的技术。所谓碰撞是由一个尝试访问系统中关闭端口的序列组成,也就是特定端口的连接请求。
说起来,端口碰撞技术的实现很简单:
1、   开启固定的端口服务。
如在服务器上设置为:服务器接收到同一个用户的对端口2048204920552058连接序列尝试后,则服务器打开TCP服务端口号28,该用户可以通过该端口进行远程工作,连接结束后自动关闭该服务端口。若是防火墙等网关类设备,则在截获该序列的尝试后,在访问列表中增加一条规则来放行该用户的TCP28数据包,使该连接可以通过防火墙。收到连接关闭命令后,再删除该规则,恢复对该端口的拒绝服务。
2、   动态开启端口服务
若需要使用端口碰撞技术打开的服务端口有多个,或者动态变化服务的端口,在设计服务器上的碰撞序列时,可以采用在序列中“指定”端口,在序列某个位置上“告之”希望打开的服务端口。如设定规则为,最后的一个端口减2000为服务端口好,则碰撞序列为20482049205520582443时,就是希望开启443端口的服务。
 
 
端口碰撞技术看起来不复杂,对于使用者了说,在正常的连接建立前,又增加了一层“密码”验证,可以做个小工具软件来自动化你每次的碰撞过程,把碰撞序列作为密码一样顺序发出,就可以直接工作了。并且不仅在防火墙上可以实现(此时服务器上可以默认打开该服务端口),而且在服务器上也可以直接实现。在实现的设备上增加了一个匹配的缓冲池,以状态机的方式跟踪进入匹配的用户(IP),从匹配第一个端口包,开始启动状态机,该用户后来的包逐个匹配序列,完成一个进入下一个状态,直到整个序列匹配,若有一个包不匹配,则回到初试状态。
 
端口碰撞技术的安全性:
既然,端口碰撞技术实现起来不麻烦,对于工作人员(使用人少的服务合适,若大量用户的功能显然不适合)的“特殊”服务需求的开启就很方便,那它的安全性有问题吗?
“密码”类的防护有两种“天敌”,一是密码简单,很容易猜测,因为帐号一般不是保密的,即使是系统默认的一些系统管理的高级帐号,所以容易破解。二是暴力破解,目前128位的密码破解的时间已经缩短到小时级别,所以密码类防护技术,目前的方式大多的增加长度与组合。
端口碰撞采用端口号的组合方式,有些类似密码,但首先端口序列本身没有含义,是使用者自己设置的,所以不容易猜测,端口号理论上有六万多个,没有开启服务的都可以拿来做碰撞使用,组合数量也很庞大。其次,碰撞序列的长度不固定,这让扫描类的破解工具很“头痛”,因为不知道何时为猜测的结束。再次,也是最重要的一点,碰撞可以采用与连接的初始包一样包做碰撞,也可以不一样,如采用特殊标记的SYN包等。端口碰撞是探测服务器没有开启的服务端口,服务器的回复(很多是不理睬)不能说明你现在是否是匹配的,即使你“有幸”找到了碰撞序列,但下一个数据包应该是你开始正常连接的数据包,而这时若选错了,前边的“匹配”立即“归零”,因此,该技术抗扫描的能力是很强的。
 
碰撞技术的扩展:
端口碰撞技术最理想的应用应该是远程设备管理,因为这是使用不频繁,而威胁很大的需求,也是网络维护人员最需要的功能。另外,应用到一些保密文档的远程获取,也是不错的选择,也就是说可以在FTP服务上增加动态共享保密文件的功能,碰撞的方式可以不再是端口,而是FTP普通服务命令的特殊组合序列,匹配时临时为该用户开通保密文档的下载功能,使用完后可以立即取消。




本文转自 zhaisj 51CTO博客,原文链接:http://blog.51cto.com/zhaisj/86182,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
网络架构
交换机与路由器技术-36-端口镜像
交换机与路由器技术-36-端口镜像
35 0
|
Windows
Windows 技术篇-利用telnet方法ping端口通不通实例演示,如何测试服务器端口是否启用,windows启用telnet功能
Windows 技术篇-利用telnet方法ping端口通不通实例演示,如何测试服务器端口是否启用,windows启用telnet功能
487 0
Windows 技术篇-利用telnet方法ping端口通不通实例演示,如何测试服务器端口是否启用,windows启用telnet功能
|
Windows
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
703 0
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
|
网络安全 Windows
Windows 技术篇-防火墙启用时指定外部可访问端口,防火墙开放端口设置
之前用电脑撘环境,发现外部设备访问不了自己环境的端口,其实就是防火墙为了保护我们电脑给阻止了,这种情况把防火墙关闭就好了,但是关闭防火墙安全性就降低了,我们可以通过简单的设置给端口放开。
511 0
Windows 技术篇-防火墙启用时指定外部可访问端口,防火墙开放端口设置
|
.NET 分布式数据库 API
.NET中的异步编程- IO完“.NET技术”成端口以及FileStream.BeginRead
  写这个系列原本的想法是讨论一下.NET中异步编程风格的变化,特别是F#中的异步工作流以及未来的.NET 5.0中的基于任务的异步编程模型。但经过三篇文章后很多人对IO异步背后实现的原理以及为什么这样能提高性能很感兴趣。
821 0
|
存储 物联网 大数据
|
4月前
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu20.4服务器安装mysql社区版并开放3306端口】
现在,你已经在Ubuntu 20.04服务器上成功安装了MySQL社区版,并且已经开放了3306端口,可以通过该端口访问MySQL服务器了。请确保在生产环境中设置安全措施,例如设置强密码、限制访问等,以保护数据库的安全性。
96 2