APP下载

利用RouterOS搭建PPTP协议的VPN服务器

2019-02-27

网络安全和信息化 2019年2期
关键词:文本框选项卡路由器

RouterOS的VPN服务功能介绍

RouterOS是MikroTik推出的一种路由操作系统,可以在基于x86构架的PC上安装RouterOS,从而实现路由功能。RouterOS是基于Linux2.6内核开发的,所占资源并不高,一台内存配置为64MB,硬盘容量为512MB的PC就足以运行该系统,也就是说,在一台淘汰下来的服务器上安装RouterOS,这台服务器就变身为高端路由器了。

如果没有闲置的电脑,也可以用VMware等虚拟化软件,创建一台虚拟机,在虚拟机上安装RouterOS,用虚拟机当做路由器。

VPN(虚拟专用网络)是在公用网络上建立专用网络,是通过在互联网或其他公共网络上建立的临时的、安全的连接,这个连接的实质是用加密技术封装出一条穿过混乱的公用网络的安全、稳定的隧道。这种加密的隧道技术主要有PPTP、L2TP、MPLS、IPSEC VPN、SSL VPN、SOCK V5等几种类型,本文就是借助MikroTik RouterOS这款路由操作系统搭建PPTP协议的VPN服务器。

RouterOS的VPN服务功能介绍

为了简化操作,此处只介绍用RouterOS搭建PPTP服务器的全过程,不涉及路由等问题,因此,安装RouterOS的电脑只需要一块网卡,并能连通互联网。

图1 网络拓扑图

下面先介绍一下本次实验的拓扑结构图,如图1所示。

图中的服务器代表某单位的内部应用,该单位的内部地址段为 :172.16.1.0/24,网 关 为172.16.1.254;

RouterOS是安装在该单位某台物理服务器上,该服务器局域网地址配置为172.16.1.73,外网映射地址为59.56.72.12。

为PPTP客户端规划的地址范围为:172.16.1.48-172.16.1.240。

PPTP服务器搭建过程

安装并配置RouterOS

安装好RouterOS后,为路由操作系统配置好IP地址,具体配置过程不在本文讨论之列。在本例中,路由操作系统的IP地址/子网掩码和网关分别是:172.16.1.73/255.255.2 55.0,172.16.1.254。

用WinBox管理RouteOS路由器

用WinBox连 接RouteOS路由器,连接方法很简单,运行WinBox后, 在“Connext To” 文本框输入路由器的IP地址:172.16.1.73,分 别 在“login”和“Password”文本框中输入路由器的管理员账户名和密码,如果是新安装的路由操作系统,系统管理员账号是“admin”,默认密码为空。

图2 Interface List窗口

注意:如果所安装的路由操作系统版本较低,用高版本的WinBox连接路由器会报“could not fetch index”之类的错误。如果出现这个错误,可以选择低一些版本的WinBox连接路由器。上只有一块网卡,此时接口列表中只有一个名为“ether1”(此名可以更改)的以太网接口。我们要搭建PPTP服务器,首先应添加一个类型为“PPTP Server”的接口,单击“Interface List”工具栏上的“+”图标按钮,在下拉菜单中“PPTP Server Binding”,如 图2所示。

(3) 出 现“New Interface”(新 接 口)窗口后,默认的接口名称是“pptp-in1”,本例就使用这个默认名称,单击“OK”按钮创建新接口。

创建PPTP Server

(1)登录到路由器后,单击左侧菜单上的“Interfaces”(接口)。

(2) 弹 出“Interface List”窗口后,如果服务器

为拨入PPTP服务器的VPN客户端添加地址池

(1)依次单击WinBox窗口左侧“IP” 菜单→“Pool”(池)。

(2)出现“IP Pool”(IP池)窗口后,单击窗口工具栏“+”图标按钮。

(3)出现“New IP Pool”窗 口 后,在“Name”文 本框中为地址池取一个名称。本例为“vpntool”,在“Addresses”文本框输入为PPTP客户端分配的地址,此处的地址可以是地址范围,如本例中的“172.16.1.50-172.16.1.240”,也可以是具体地址,如果要添加或删除多个地址或多个地址段,单击地址右侧的“▼”(添加)或“▲”(删除)或按钮。

配置PPP接入模板

PPTP是一种点对点隧道协议,和PPP(点到点协议)一样,位于OSI模型的第二层数据链路层。PPTP使用TCP连接的创建,维护,与终止隧道,并使用GRE将PPP帧封装成隧道数据,被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩。

在RouterOS路由器中,PPTP也是PPP点到点协议中的一种,因此,PPTP相关配置放在了RouterOS的PPP功能菜单上。

(1)单击WinBox窗口左侧“PPP” 菜单。

图3 创建地址池

(2)出现“PPP”窗口后,单击“Profile”(模板)选项卡,在“ProFile”选项卡下单击“+”图标按钮,新建一个模板。

(3)出现“PPP Profile”窗口后,在“Name”文本框为新模板取一个名称,本例 为“vpnprofile”。 在“Local Address”文本框输入RouterOS路由器的地址,本例为“172.16.1.73”,单击“Remote Address”右侧下拉地址列表按钮,选择前面创建的地址池,本例前面创建的地址池是“vpnpool”,如图3所示。

(4) PPTP客户端操作系统无论是桌面Windows操作系统还是手机的Android操作系统,都要求VPN隧道是加密的,因此,需要将PPP模板中有关协议的配置更改为“需要加密”。在“PPP Profile”窗口单击“Protocols”(协议)选项卡,将“Use Encryption”的单选按钮中勾选“required”(需要),其他按默认值配置即可。

常见错误提示:有很多在Linux操作系统上连接PPTP服务器或用RouterOS自带的PPTP客户端(需要创建)直接连接PPTP服务器,都能成功连接,但在Windows上或在手机上不能连接PPTP服务器主要原因就是没有勾选“Use Encryption”下 的“required”。

创建VPN账户

(1)在“PPP”窗口单击“Secrets”选项卡,新建一个VPN账户。

(2) 出 现“New PPP Secret”窗 口 后,分 别 在“Name” 和“Password” 文本框中指定新账户的账户名称和密码,在本例中,新建VPN账户的用户名为“vpntest01”,密 码 是“123456”。在“Profile”下拉列表中选择刚配置的PPP模板,在本例中,新建的模板文件是“vpnprofile”。如果只想让该用户登录PPTP服务器,在“Service”下拉菜单中选择“PPTP”即可,在本例中,允许该用户访问所有PPP服务,故使用默认值“any”。

配置PPTP服务器

(1) 在“PPP” 窗 口“Interface”下,单击“PPTP Server”按钮。

(2)勾选“Enabled”(允许)。开启PPTP服务。

(3) 出现“PPTP Server”窗 口 后, 在“Default Profile”下拉菜单中选择刚配置的PPP模板,在本例中,刚配置的模板是“vpnprofile”。

在“Authentication”(身份认证)勾选PPTP身份认证方式,“PAP”和“CHAP”是PPP支持的两种授权认证方式,两种方式都需要账号和密码,因此在配置PPTP客户端时,也需要PPTP账号和密码。为了让大家在创建VPN连接时对认证方式有更清晰的认识,少出错,下面对RouterOS PPTP支持的4种认证方式做个简要介绍。

PAP(密码验证协议)是两次握手协议,认证过程非常简单。PAP只在链路建立阶段进行身份认证,一旦链路建立成功将不再进行认证检测。PAP使用明文格式发送用户名和密码,发起方为PPTP客户端,可以做无限次的尝试(容易暴力破解),直到身份验证过程结束。在实际应用中,如果应用环境对安全性要求不高,可以采用PAP认证建立PPP连接。

CHAP(询问握手认证协议)通过三次握手周期性的校验对端的身份。首先,PPTP客户端发送挑战信息,PPTP服务器接收到挑战信息后,根据PPTP客户端提供的用户名到自己本地的数据库中查找对应的密码(如果没有设密码就用默认的密码),查到密码再结合PPTP客户端发来的id和随机数据,根据MD5算法算出一个Hash值。其次,PPTP客户端回复认证请求,PPTP服务器处理挑战的响应信息,根据PPTP客户端发来的认证用户名,PPTP服务器在本地数据库中查找PPTP客户端对应的密码(口令)结合id找到先前保存的随机数据和id根据MD5算法算出一个Hash值,与PPTP客户端得到的Hash值做比较,若一致,则认证通过,如果不一致,则认证不通过。最后,PPTP服务器告知PPTP客户端认证是否通过。

MSCHAP(微软挑战握手认证协议)认证过程与CHAP类似,微软开发MSCHAP是为了对远程Windows工作站进行身份验证,它在响应时使用质询响应机制和单向加密认证。MS-CHAP也是三次握手协议,除加密算法不同外,和CHAP相比,MSCHAP支持重传机制。在PPTP客户端认证失败的情况下,如果PPTP服务器允许PPTP客户端进行重传,PPTP客户端会将认证相关信息重新发回,PPTP服务器根据此信息重新对PPTP客户端进行认证。PPTP服务器最多允许PPTP客户端重传3次。

MSCHAP2(微软挑战握手认证协议2)是MSCHAP的升级版本,除加密算法有变化外,还有其他两个重要变化,一是MSCHAP2通过报文捎带的方式实现了PPTP服务器和PPTP客户端的双向认证;二是MSCHAP2支持修改密码机制。PPTP客户端由于密码过期导致认证失败时,PPTP客户端会将用户输入的新密码信息发回PPTP服务器,PPTP服务器根据新密码信息重新进行认证。

(4) 综 上 所 述,在“PPTP Server”窗 口 设 置“Authentication”身份认证时,可视PPTP客户端而定。Windows XP以上操作系统都支持上述4种认证方式,如果PPTP客户端操作系统都是Windows操作系统,只勾选“mschap2”即可,如图4所示。

PPTP客户端共享上网设置

图4 窗口设置

很多单位(或个人)架设自己的VPN服务器后,在使用“VPN连接”连接到单位局域网后,经常出现无法上网(无法连接互联网)的现象,这是因为通过VPN连接到单位网络后,该电脑就成为单位内部的一台电脑。包括PPTP服务器在内的,所有PPTP客户端要共享一个IP地址上网,就必须进行网络地址转换。用RouteOS搭建PPTP服务器,可以通过IP伪装来实现共享上网。下面是共享上网的实现过程:

(1)依次单击WinBox窗 口 左 侧“IP” 菜 单→“Firewall”(防火墙),添加防火墙规则。

(2)出现“Firewall”窗口后,单击“NAT”(网络地址转换)选项卡,在“NAT”选项卡下单击“+”图标按钮。

(3) 出 现“New NAT Rule”窗口后,在“Chain”(链路)下拉列表中选默认 的“srcnat”(源 地 址转换),在“Src Address”(源地址)文本框输入单位网络的IP地址段。在本例中,某单位的IP地址段是“172.16.1.0/24”。在“Out.Interface”(输出接口)下拉列表中选择RouterOS路由器上连接外网的网络接口。在本例中,安装RouteOS路由器的服务器上只有一块网卡,因此,除前面创建的接口“pptp-in1”外,只有“ether1”这样一个网络接口,故此处选“ether1”。

(4)在“New NAT Rule”窗口单击“Action”选项卡,在“Action”下拉菜单中选择“masquerade”(伪装),即采用IP伪装方式实现共享上网。

创建VPN连接

至此,在RouterOS路由器上的所有参数全部设置完成,下一步就是用一台电脑尝试创建VPN连接,以测试所搭建的PPTP服务器能否正常工作。

进入网络和共享中心

在Windows上创建VPN连接大致相同,本例是在Windows 10上创建 VPN,首先通过控制面板或其他方式进入“网络和共享中心”,如果使用控制面板,具体路径是“控制面板”→“网络和internet” →“网络和共享中心”。

创建VPN连接

1.进入“网络和共享中心”后单击“设置新的连接或网络”。

2.出现“设置连接或网络”窗口后,单击“连接到工作区”。

3.出现“连接到工作区”窗口后,单击“使用我的Internet连接(VPN)”。

4.出现“键入要连接的Internet地址”窗口后,在地址栏输入映射RouterOS的外网地址。在本例中,RouterOS的内网地址配置是172.16.1.73,外网映射地址为59.56.72.12,此处输入地址“59.56.71.12”。 在“目标名称”文本框中为新建的VPN连接取一个名字。在本例中,使用的是“VPN连接”。

连接到单位网络

创建好VPN连接后,就可以在“控制面板”→“网络和 Internet”→“网络连接”找到新创建的VPN连接“VPN连接”。双击此连接即可将本地PC通过VPN隧道连接到单位的局域网,首次使用VPN连接,要求输入用户名和密码。

在本例中,前面为已为PPP用户创建了一个名为“vpntest01”的用户,密码是“123456”,用该账号和密码连接到单位的PPTP服务器后,就可以访问单位内部的网络和应用了。

常见问题解决

1.验证方式不一致引起的故障

笔者在创建VPN连接时,有连接失败的经历,笔者分别在Windows XP、Windows 7及Windows 10上都做过尝试,经检查,发现所创建VPN连接的身份验证方式和PPTP服务器提供的身份验证方式不一致,从而出现连接失败的现象,解决方法如下:

(1) 通 过“控 制面 板” →“网 络 和Interne”→“网络连接”,打开网络连接窗口。

(2)右击新创建的VPN连接“VPN连接”,在右键菜单中选择“属性”。

(3)出现“VPN连接”属性窗口后,单击“安全”选项卡,在“身份验证”拦勾选“允许使用这些协议”,然后勾选在配置PPTP Server时所提供的验证方式,如mschap2。

2.在单位内部尝试VPN连接引起的故障

笔者搭建好PPTP服务器后,在单位内找了一台PC创建VPN连接,急于测试所搭建VPN服务器,结果出现连接不上VPN服务器的故障,如果用RouteOS自带的PPTP客户端连接VPN服务器,能连接成功。

如果要在单位测试所搭建的PPTP服务器是否成功,可以开启手机热点,当PC连上手机热点后,再尝试VPN连接。当然,在局域网内部也是可以使用VPN的,但需要做相应的设置。

3.防火墙禁止使用VPN引起的故障

如何判断是防火墙还是VPN连接本身的故障,先开启手机热点,当PC连接到手机热点后再进行VPN连接,或者在手机上尝试VPN连接即可。

猜你喜欢

文本框选项卡路由器
买千兆路由器看接口参数
巧用文本框实现PPT多图片排版
PPT文本框的另类应用
禁用一切 优化无限
你所不知道的WIFI路由器使用方法?
文本框酷变3D效果
Windows 8专栏
鼠标滚轮隐藏在IE浏览器中的快捷操作
无线路由器辐射可忽略
文本框在地理课件中的应用