用端口碰撞技术实现服务器远程管理
从安全管理的角度来说,开启的服务端口越多,就越不安全,有道是“明枪易躲,暗箭难防”,因此“系统安全加固服务”中,最常用的方式,就是先关闭无用端口,再对提供服务的端口做访问控制。.I,n+{6j6c
+r8t)~8k#M;i4f6c R7c&x,?
端口碰撞技术(Port knocking)0V+Y0@-u.e6f5Q,s
tech.techweb.com.cn&P;B8~(?*E9T
从安全管理的角度来说,开启的服务端口越多,就越不安全,有道是“明枪易躲,暗箭难防”,因此“系统安全加固服务”中,最常用的方式,就是先关闭无用端口,再对提供服务的端口做访问控制。
%E4z"[%d.r6d8`6R6f'}tech.techweb.com.cn
,~$^"`&i b8X,Y&j程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛而作为远程管理与维护的人员通常需要开启一些服务端口,如FTP和SSH,这些服务使用大家熟悉的一些端口,长时间开启这些端口,往往是“严重”的安全隐患。所以能在“需要”的时候才开启服务,并只对特定的人提供服务,服务完毕端口有恢复关闭状态,攻击者就难以利用这个“安全隐患”了,端口碰撞技术提供了比较理想的解决方案。tech.techweb.com.cn,U;x6C)|&x%s;g'i
'O7U4b#d#P5w$`9]端口碰撞技术是一种允许服务设备在用户按照约定的序列碰撞后,打开一个约定的服务端口提供服务的技术。所谓碰撞是由一个尝试访问系统中关闭端口的序列组成,也就是特定端口的连接请求。TechWeb-技术社区2H5S8l6o1P"s&G/\9L
8Z0p*z'W5P#dTechWeb-技术社区说起来,端口碰撞技术的实现很简单:tech.techweb.com.cn1{)`+_$s8G3N8E'^/j5I
3}-Y0k U#~5h
1、 开启固定的端口服务/]5c1m9_3p"_%[9Z(x%B
;}2q)f1N'^3J)w&A6Stech.techweb.com.cn如在服务器上设置为:服务器接收到同一个用户的对端口2048、2049、2055、2058连接序列尝试后,则服务器打开TCP服务端口号28,该用户可以通过该端口进行远程工作,连接结束后自动关闭该服务端口。若是防火墙等网关类设备,则在截获该序列的尝试后,在访问列表中增加一条规则来放行该用户的TCP28数据包,使该连接可以通过防火墙。收到连接关闭命令后,再删除该规则,恢复对该端口的拒绝服务。#M:u;_"^(I%j3B&x
;~ t"s"Q ~"i-Y,d2、 动态开启端口服务$|+Z,u&p8|1v4A-_"b(z
,K.G(R:c3|tech.techweb.com.cn若需要使用端口碰撞技术打开的服务端口有多个,或者动态变化服务的端口,在设计服务器上的碰撞序列时,可以采用在序列中“指定”端口,在序列某个位置上“告之”希望打开的服务端口。如设定规则为,最后的一个端口减2000为服务端口好,则碰撞序列为2048、2049、2055、2058、2443 时,就是希望开启443端口的服务。*{9s5i.~*D;?#n"Q#p
9w+B1T&_0~3O.i)v!]端口碰撞技术看起来不复杂,对于使用者了说,在正常的连接建立前,又增加了一层“密码”验证,可以做个小工具软件来自动化你每次的碰撞过程,把碰撞序列作为密码一样顺序发出,就可以直接工作了。并且不仅在防火墙上可以实现(此时服务器上可以默认打开该服务端口),而且在服务器上也可以直接实现。在实现的设备上增加了一个匹配的缓冲池,以状态机的方式跟踪进入匹配的用户(源IP),从匹配第一个端口包,开始启动状态机,该用户后来的包逐个匹配序列,完成一个进入下一个状态,直到整个序列匹配,若有一个包不匹配,则回到初试状态。
8u5T;N+q1d#@7z4^tech.techweb.com.cn*t/U*R:m(o |'b
端口碰撞技术的安全性TechWeb-技术社区/Y A5T;W3@%D!A e!?0w
:o,u&O'`(B9B1d;K4l.D-jTechWeb-技术社区既然,端口碰撞技术实现起来不麻烦,对于工作人员(使用人少的服务合适,若大量用户的功能显然不适合)的“特殊”服务需求的开启就很方便,那它的安全性有问题吗?
%c-b#E/w.t/~%w3u$pTechWeb-技术社区程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛({&x;`$K1q _-b#s%L
“密码”类的防护有两种“天敌”,一是密码简单,很容易猜测,因为帐号一般不是保密的,即使是系统默认的一些系统管理的高级帐号,所以容易破解。二是暴力破解,目前128位的密码破解的时间已经缩短到小时级别,所以密码类防护技术,目前的方式大多的增加长度与组合。
%[.|"X.])o9?$v2?程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛tech.techweb.com.cn E4H)J!O7|%x#H6L9z
端口碰撞采用端口号的组合方式,有些类似密码,但首先端口序列本身没有含义,是使用者自己设置的,所以不容易猜测,端口号理论上有六万多个,没有开启服务的都可以拿来做碰撞使用,组合数量也很庞大。其次,碰撞序列的长度不固定,这让扫描类的破解工具很“头痛”,因为不知道何时为猜测的结束。再次,也是最重要的一点,碰撞可以采用与连接的初始包一样包做碰撞,也可以不一样,如采用Ping包,或者采用特殊标记的SYN包等。端口碰撞是探测服务器没有开启的服务端口,服务器的回复(很多是不理睬)不能说明你现在是否是匹配的,即使你“有幸”找到了碰撞序列,但下一个数据包应该是你开始正常连接的数据包,而这时若选错了,前边的“匹配”立即“归零”,因此,该技术抗扫描的能力是很强的。
{;o9S-J"o6O1U0P,\7|(jTechWeb-技术社区
!d-C0t+x$r%\0oTechWeb-技术社区碰撞技术的扩展
5y"x.C4a6B4y-M6D
5_"r e9N)I/i#^端口碰撞技术最理想的应用应该是远程设备管理,因为这是使用不频繁,而威胁很大的需求,也是网络维护人员最需要的功能。另外,应用到一些保密文档的远程获取,也是不错的选择,也就是说可以在FTP服务上增加动态共享保密文件的功能,碰撞的方式可以不再是端口,而是FTP普通服务命令的特殊组合序列,匹配时临时为该用户开通保密文档的下载功能,使用完后可以立即取消。
|