RouterOS利用ros搭建VPN(PPTP)服务器要点

阅读:4451次   时间:2011-08-25 20:04:36   字体:[ ]

关于拨号VPN(与此对应的还有SiteToSite VPN)的用途,我想不必多说,举几个例子:
1、公司员工出差在外,需要收取公司内网的邮件,就需要vpn拨号进入公司内网收发邮件;
2、网吧的技术人员在家休假时,需要远程维护网吧服务器,也需要vpn拨号进入网吧的网络。
如何配置vpn,网络上已经有很多的教程,我就不在这里敖术,这里只想说说要解决拨号vpn中所带来的问题,以及解决的方法。本文只是拿routeros当做例子,主要还是在讲原理,在实际生产中Cisco、H3C也都有类似的操作,知道了原理就不怕不知道怎么配置!
问题1:服务端的问题
一般一个安全的网络构架中,都需要在内网中开辟一个DMZ区域,其中一个服务器可以用来做“蜜罐”(关于蜜罐的作用大家可以到网上查查),可以捕捉 到攻击我网络的攻击者信息。这就需要将外网路由器上所有的端口(除了特定的几个以外,如80,8291等)均映射到一个特定的服务器上,在该服务器上就可 以非常容易的了解到攻击者的信息。
基于以上这个拓扑情况,如何配置服务器的信息才能让用户拨上呢?换个问法也许更直接,服务器的哪些端口在PPTP的拨号中可以需要用到?
这时,我们需要来了解下PPTP拨号VPN的整个运作的情况。简单的来说,用户首先需要对服务器进行拨号,用到就是PPTP协议里常用的TCP- 1723端口,当拨号成功以后,会在本地与PPTP服务器之间建立一个GRE隧道,用于传输PPP帧中的IP报信息。如下图所示为PPTP的封装格式。

因为建立隧道以后,我们向内网发出所有的信息都是经过这个隧道的,所以路由器必须接受这个隧道的数据,而不能把这些数据发送给蜜罐。这样以来我们就能很轻松的找到解决问题1的方法,即接受1723端口,同时接受IP报文中封装的GRE报文。
下面以RouterOS为例,脚本如下:
/ip firewall nat add  chain=dstnat action=accept protocol=tcp dst-port=1723
/ip firewall nat add   chain=dstnat action=accept protocol=gre
问题2:客户端的问题
大家在用VPN拨号的时候通常采用的是Windows自带的拨号工具,即在网络连接中新建一个vpn拨号客户端。基本所有同学都会注意到一个问题, 所有本地发出去所有的信息都会走vpn线路即GRE隧道。当对方PPTP服务器端的配置(或策略)不允许拨入的线路访问Internet时,用户就无法上网了,这也是大家很常见的一个问题,当拨号到公司以后,本地的主机就无法上网了。
其实这个问题可以从服务器端去解决,但是我们作为用户不能控制服务器的信息,这就是所谓的你不能改变它就去适应它吧。本文讨论就从客户端去解决这个 问题。当使用route print命令以后,我们可以发现本机的默认路由走的VPN隧道线路,这也是我们无法上网的关键所在!
下面以windows XP为例,讨论下解决的方法:
1、不让vpn拨号以后修改我们的默认路由。方法为:去掉VPN属性–网络–internet   协议(tcp/ip)–属性–高级–”在远程网络上使用默认网关”的勾,如下图所示:

2、按照上述方法做了以后,本地客户端是可以上网了,但是无法访问公司(或网吧)里的服务器了,这也是因为windows的路由表造成的,这就需要我们手动去添加以下路由表。
脚本为:route add 192.168.88.0 mask 255.255.255.0 10.0.100.3。
说明:地址192.168.88.0是你公司(或网吧)局域网的网段,也就是你建立了VPN后,可以允许你远端访问的对方的内部网 段源码天空,255.255.255.0是网段的掩码,10.0.100.3就是vpn拨号成功后PPTP server分配给你的虚拟地址,至此上网和VPN访问都正常了。

关于本站 - 广告服务 - 会员指南 - 联系方法
Copyright ©2003-2017 源码天空 All Rights Reserved