RouterOS搭建一台SSTP Server用于远程办公

2020新冠疫情期间,很多单位提倡在家soho办公,这时候有一台ssl 服务器就显得尤为重要。下面步骤可以搭建一台低成本的RouterOS的ssl服务器。

一、基础知识

SSL 安全协议最初是由美国网景公司设计开发的,全称为:安全套接层协议 (Secure Sockets Layer) , 它指定了在应用程序协议 ( 如 HTTP 、 Telnet 、FTP) 和 TCP/IP 之间提供数据安全性分层的机制,它是在传输通信协议上实现的一种安全协议,采用公开密钥技术,它为TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。

SSTP可以认为是微软版的SSL VPN协议,微软自2008服务器开始支持SSTP,不过微软系统在实现上配置相当复杂。RouterOS上可以简单配置实现SSTP的服务器,配合微软的客户端,搭建一个较为完美的ssl系统。

SSTP系统需要用到服务器证书,微软的客户端需要用到信任的授权单位的证书,所以一般企业就用自签名证书来实现。

二、搭建环境

1、RouterOS V6.46 (一片网卡,内外网都在上面)

2、客户端:windows 10 专业版

3、域名:xu.com (根据单位不同可替换)

4、ca证书名称:ca.xu.com

5、服务器证书名称:server.xu.com

三、配置步骤

1、 ip pool等SSTP服务器设置

在RouterOS上,需要先设置SSTP服务器相关内容,主要步骤有设置pool池,设置profile文件,设置拨号用户名,最后设置服务器并关联相关参数。

/ip pool add
name=“sstp--pool” ranges=172.30.0.2-172.30.0.254

/ppp profile add
name=“sstp--profile” use-encryption=yes local-address=172.30.0.1
dns-server=8.8.8.8
remote-address=sstp--pool

/ppp secret add
name=sstpuser1 profile=sstp--profile password=sstpuser1 service=sstp

/interface
sstp-server server set enabled=yes default-profile=sstp--profile
authentication=mschap2

/interface
sstp-server server set enabled=yes default-profile=sstp--profile authentication=mschap2
certificate=server.xu.com force-aes=yes pfs=yes

2、 配置证书系统并导出CA证书

以下步骤同样是在RouterOS上做:

第一步先建立证书模板。

/certificate

add
name=ca-template common-name=ca.xu.com
days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign

add
name=server-template common-name=*.xu.com days-valid=3650
key-size=2048 key-usage=digital-signature,key-encipherment,tls-server

第二步进行签名,ca做自己签名。

/certificate

sign ca-template
name=ca.xu.com

sign server-template
name=server.xu.com ca=ca.xu.com

第三步导出ca证书(用export),再下载到本地,这些步骤可通过webcfg的菜单界面来做比较方便。

第四部,在客户端计算机上导入打本地计算机中。

步骤:是找到该证书文件、右键、导入证书。
RouterOS搭建一台SSTP Server用于远程办公_第1张图片

注意证书存储位置一定要导入到“本地计算机”的“受信任的根证书颁发机构”中。

3、 在PC客户端导入CA证书。

在win10的客户端上,在网络的一栏中,添加连接,如下图所示:
RouterOS搭建一台SSTP Server用于远程办公_第2张图片

连接名称可以任意写一个容易记住的名字,但是服务器名称或地址必须要写域名,本文是server.xu.com
。因为是测试环境,我需要修改我的etc/hosts文件,正式环境可不用修改。Hosts文件添加一行:

192.168.12.251 server.xu.com

如果是大规模部署,可手工方式建立sstp 的链接文件,直接在客户机器上运行以下命令:(在powershell以管理员命令方式运行)

PS> powershell.exe -c ‘Add-VpnConnection -name “SSTP-VPN连接” -ServerAddress
“server.xu.com” -TunnelType Sstp -auth MSChapv2 -RememberCredential
-PassThru’

4、测试。

在windows10机器上,找到“Sstp-连接”,拨号,输入用户名和密码(我用的用户名和密码都是sstpuser1),测试,正常。

总体来说比较简单,是一台比较有用的SSL设备,适合小微企业使用。RouterOS路由器的基础设置本文并没有写出来。最主要有设置有内外网ip,nat转换使之能上网,如果实际使用还需要做一些安全设置,如更改admin密码,关闭不常用的端口等。还需要申请域名和公网地址,祝顺利。

常见错误:

SSL握手失败时,您将看到以下证书错误之一:(综合了网上的一些信息和我自己总结的一些错误)

  • 证书尚未生效 :证书日期晚于当前时间;
  • 证书已过期 :证书的到期日期在当前时间之前;
  • invalid证书用途 :提供的证书不能用于指定目的;
  • self在链中签名的证书 :可以使用不受信任的证书建立证书链,但是在本地找不到根
  • 可以在本地获取颁发者证书:CA证书不在本地导入;
  • server的IP地址与证书不匹配 :启用了服务器地址验证,但是证书中提供的地址与服务器的地址不匹配;
  • 证书的cn名与传递的值不匹配:这是在服务器上选用了CA的验证,正确的应该选用server的验证。域名变了也是这个错误。
  • 接收到的消息异常,或格式不准确:这是因为在服务器上未启动证书认证。(在SSTP Server的设置上可修改。)
  • 证书对于请求用法无效:有证书,但是在PC机器上把正确的ca证书禁用了。
  • 证书对于请求用法无效:证书导入了,查看证书属性,发现证书目的是给客户端身份验证使用的。改为给服务器身份验证使用。
  • 处理证书链,但是在不受信任提供程序信任的根证书中终止:证书没有正确导入,原因是没有导入正确的证书到“本地计算机”的受信任根颁发机构的目录中。 或者原因是证书正确,导入到了“当前用户”的受信任根颁发机构目录。服务器地址错误也是这个提示。
  • 不能建立到远程计算机的连接,你可能需要更改此连接的网络设置:在SSTP服务器设置中,勾选了PFS。不是有连接错误提示,但是有时也能连接上来。MRRU设置了也会有这个提示。
  • 由于目标服务器积极拒绝,无法连接:服务器上SSTP服务器没有起作用,需要enable。
  • 能建立到远程计算机的连接,因此用于此连接的端口已关闭:是认证方法不对,改为machapV2。
  • 此句柄相关联的操作锁定现在与其他句柄相关联:是SSTP服务器设置中勾选了“verify Client
    Certificate”。

你可能感兴趣的:(routeros)