<b>若何使tcp包和udp包穿透防火墙</b>[VC/C++编程]
本文“<b>若何使tcp包和udp包穿透防火墙</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
通过本文的httptunnel 技术同时逃过了防火墙的屏蔽以及系统的追踪试验,我们可以看到网络安全仅仅依靠某种或某几种手段是不坚固的,同时对安全系统的盲目性依靠常常会造成宏大的安全隐患.但愿通过本文能惹起管理员对网络安全防护系统的考虑.
什么是http躲藏通道
什么是局域网安全,系统管理员怎样才能保障局域网的安全?这是一个不断改变的安全概念,很长的一个期间以来,在局域网与外界互联处安排一个防火墙,严峻掌握开放的端口,就可以在很大程度上掌握安全的主动权,便利的掌握网内外用户所能利用的服务.比方,在防火墙上仅仅开放80,53两个端口,那么无论是内部还是表面的恶意人士都将无法利用一些已经证明对比危险的服务.
但要注意一点,防火墙在某种意义上是很笨拙的,管理员对防火墙的过度依靠以及从而产生的怠惰情感将不可避免的形成安全上的庞大隐患,作为一个证明,"通道"技术就是一个很好的例子,这也是本文要谈论的.
那么什么是通道呢?这里所谓的通道,是指一种绕过防火墙端口屏蔽的通讯方法.防火墙两头的数据包封装在防火墙所答应通过的数据包范例或是端口上,然后穿过防火墙与对端通讯,当封装的数据包到达目的地时,再将数据包复原,并将复原后的数据包交送到呼应的服务上.举比方下:
A主机系统在防火墙之后,受防火墙保护,防火墙配置的拜候掌握原则是只答应80端口的数据收支,B主机系统在防火墙之外,是开放的.目前假定需求从A系统Telnet到B系统上去,怎么办?利用正常的telnet必定是不大概了,但我们知道可用的只有80端口,那么这个时刻利用Httptunnel通道,就是一个好的办法,思绪以下:
在A机械上起一个tunnel的client端,让它侦听本机的一个不被利用的肆意指定端口,如1234,同时将来自1234端口上的数据指引到远端(B机)的80端口上(注意,是80端口,防火墙答应通过),然后在B机上起一个server,一样挂接在80端口上,同时指引80端口的来自client的转发到本机的telnet服务端口23,这样就ok了.目前在A机上telnet本机端口1234,按照方才的设置数据包会被转发到目标端口为80的B机,因为防火墙答应通过80端口的数据,因此数据包通畅的穿过防火墙,到达B机.此时B机在80端口侦听的进程收到来自A的数据包,会将数据包复原,再交还给telnet进程.当数据包需求由B到A返回时,将由80端口再回送,一样可以顺利的通过防火墙.
实际上tunnel概念已经产生好久了,并且很有大概读者利用过近似的技术,比方下面的网址http://www.http-tunnel.com.它是一个专业供应tunnel服务的公司,通过他们的在线tunnel server,局域网内的用户可以利用被防火墙所屏蔽的ICQ,E-MAIL,pcanywhere, AIM,MSN, Yahoo,Morpheus,Napster等等诸多软件.我们看到,这里有ICQ,Napster等软件,相信我们的读者很多都利用过走proxy的ICQ,OICQ等等,其实他们的原理是差不多的.
什么是Httptunnel
作为一个实际的例子,我们下面来介绍一个在"非公开范畴"利用的的通道软件,httptunnel.在httptunnel主页(请参阅参考资料)上有这么一端话,
httptunnel creates a bidirectional virtual data connection tunnelled in HTTP requests. The HTTP requests can be sent via an HTTP proxy if so desired.
This can be useful for users behind restrictive firewalls. If WWW access is allowed through a HTTP proxy, it's possible to use httptunnel and, say, telnet or PPP to connect to a computer outside the firewall.
从这段阐明中我们可以看出来它就是我们本日说要介绍的tunnel技术的一个证明,我们下面大致介绍一下它的利用.
httptunnel目前对比安定的版本是3.0.5, 支持各种常见的unix系统,包含window平台.可以从相关站点(请参阅参考资料)下载,它的安装是对比简单的,照INSTALL文件做便可以了,这里不介绍.
整个软件安装完毕后,我们会得到两个关键文件,htc和hts,此中htc是客户端(c),而hts是server(s)端,我们来看看具体怎么利用的.
假定有A(域名client.yiming.com)机,B(域名server.yiming.com)机,两机均为solaris环境,A机在防火墙保护中,B机在防火墙以外,防火墙的管理员掌握了拜候法则,仅ALLOW 80和53端口的收支数据包.而我们的任务是要操纵Httptunnel从A机telnet到B机上,穿过防火墙的限制.操作以下:
首先我们在A上启动client端,号令很简单:
client.yiming.com#htc -F 1234 server.yiming.com:80,
系统回到提醒符下,目前我们用netstat -an 可以看到系统内多出了1234端口的侦听
*.1234 *.* 0 0 0 0 LISTEN
以上是“<b>若何使tcp包和udp包穿透防火墙</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |