RouteOS上面成功建立openvpn服务 回首页
目的:增加一个通过RouteOS路由器上的openvpn连回家的救援方案。
      仅做为临时使用。

背景:在局域网里已经有两个虚拟机的openvpn服务器跑在不同的宿主机上面,通过路由器的端口转发受理局域网外面的连接请求,
      假设宿主机会因为业务中断服务,我需求建立一个连回家里的临时通道。
      (我并不主张计算能力弱的路由路来承当openvpn服务,平时这个服务交给PC去做比较好)。

搭建参考文献:
    1.路由器官方:http://wiki.mikrotik.com/wiki/OpenVPN
其它参考文献(未尝试):
    1.http://www.async.fi/tag/rdp/
    2.http://code.google.com/p/turbo-daytrader/wiki/RouterOShttp://code.google.com/p/turbo-daytrader/wiki/OpenVpn
----\
    |
    |(公网IP)
  +-------+
  | ADSL  |
  +-------+
    |
    |(ether1)
  *------------------------------------------------------------------------------------*
  |  硬件RouteOS    【准备在这里建一个openvpn服务】                                    |
  *------------------------------------------------------------------------------------*
                |                                                               |
                |192.168.0.0                                                    |
  *---------------------------------------------------------------------*       |
  |                             普通交换机1                             |       |
  *---------------------------------------------------------------------*       |
                |                   |                    |                      |
                |                   |                    |                      |
        *---------------*   *---------------*    *------------------*           |
        |虚拟机openvpn1 |   |虚拟机openvpn2 |    | 其它计算机。。。 |           |
        *---------------*   *---------------*    *------------------*           |
                |                   |                    |                      |
                |                   |                    |                      |192.168.10.0
            *---------------------------------------------------------------------------*
            |                             普通交换机2                                   |
            *---------------------------------------------------------------------------*



搭建过程:

图1 在linux建立证书(略),然后上传至routeos


图2 证书导入routeos


图3 在内网的非dhcp的IP范围内分配一个连续的IP段给openvpn使用,通过openvpn连接的用户直接和内网用户在一个IP段。

为什么这样做?
因为在同一网段,不用给vpn客户端做nat了:add action=masquerade chain=srcnat comment=NAT disabled=no src-address=192.168.*.0/24



图4 建立openvpn服务使用的IP地址池。


图5 建立openvpn服务的配置文件,使用前述地址池,本地地址设为内网网关,这个服务绑定在内网段所在的网桥上。


图6 建立openvpn服务,设置服务端口为6****,设置缺省配置文件,设置证书,设置客户端无需证书(仅密码验证)。


图7 设置帐号,其中jasmine帐号直接指定IP,不通过前述配置的地址池分配IP。


图8 防火墙上接受服务端口访问


大多数文献到了这一步就算配置完成了.
但是别以为完成了!其它文献未提到过ADSL的PPPoE客户端拨号上网用户如何连回家的问题!!!
============================================================================================


ADSL拨号通过一个虚拟接口(在我家的路由器上命名为:pppoe-out1)拨号,
如果你用过winxp接墙上拨号,你会发现它也会产生同样的虚拟拨号设备,
拨号通过后,拨号设备被分配到一个公网IP,而你的网卡仍然是内网IP,而你的openvpn服务在内网,外面是访问不到的!

图9


下一步,在防火墙设置NAT:将相关的端口转发到openvpn网关(内网IP192.168.0.1)上面。


在win7下用openvpn客户端对公网IP拨号,验证是否能登录。


再下一步,因为公网IP经常变化,我在路由器写了脚本,并且设置计划任务每隔1分钟检查一下公网IP是不是发生变化了,如果是——脚本就运行——重新以新的公网IP生成一次防火墙规则。(略)


其它:
RouteOS路由器openvpn不会向vpn客户端push静态路由,这和其它linux下的openvpn有不同,在客户端需要在命令行增加路由,需要操级管理员权限,如:
##本地路由,经过本地网关
route 10.10.1.0 255.255.255.0 10.10.1.1
##分配去路由器后面的其它地址段,经过openvpn所在路由器网关
route 192.168.10.0 255.255.255.0 192.168.0.1
route 172.16.0.0 255.255.0.0 192.168.0.1


我在办公室里的测试,现在打开家里内网访问各个主机已经没有问题。
路由器界面上显示一个活动连接。


路由器界面上显示一个动态拨入接口已有流量。


全部配置完成!



下一篇:openvpn的http代理——只要我能正常访问网站,谁也不能阻止我用openvpn回家!