之前写过一篇文章,介绍了RouterOS上OpenVPN的配置:使用Mikrotik的RouterOS搭建OpenVPN服务器,以及配置内网互连

因为是在网关上进行了配置,只要身处家庭或者公司内网,无需在设备上运行VPN。

我的需求是在外出的时候,也能通过VPN连接到家里的内网。但是OpenVPN对于很多设备来讲,并不是自带的VPN方案,需要安装单独的客户端。所以此篇介绍一个更加通用的VPN方案L2TP/IPsec。Mac/iPhone/Widows/Linux均默认支持。

创建IP地址池

IP地址池用于给连接到L2TP的客户端分配IP地址。

由于我使用的Mikrotik没有配置桥接,所以需要配置一个独立的网段,通过路由来实现和内网的通讯。

我这里保留了10.10.11.1地址作为服务端的地址。

/ip/pool/add name=l2tp-pool \
ranges=10.10.11.2-10.10.11.254 \
comment="l2tp peers pool"

创建L2TP配置文件

配置文件用于配置L2TP使用的地址,地址池,加密等必要信息。

我这边设置的参数比较少,因为大部分参数直接用默认就可以了。

/ppp/profile/add name=l2tp \
local-address=10.10.11.1 \
remote-address=l2tp-pool

开启L2TP服务

启用L2TP服务,使用之前步骤中创建的配置,并且启用IPsec,设置IPsec密钥。

/interface/l2tp-server/server/set enabled=yes \
default-profile=l2tp \
use-ipsec=yes \
ipsec-secret=123456

为L2TP创建用户

/ppp/secret/add name=simaek \
password=123456 \
service=l2tp \
profile=l2tp \
comment="l2tp user for mac"

为L2TP创建接口

创建接口可以和用户连接进行绑定,便于配置路由,防火墙等规则。

/interface/l2tp-server/add name=l2tp-simaek \
user=simaek \
comment="l2tp for Mac"

添加防火墙允许规则

L2TP/IPsec使用UDP 500,1701,4500端口,需要放行。如果有拦截规则,此规则必须放在拦截规则之前。

/ip/firewall/filter/add chain=input \
action=accept \
protocol=udp \
in-interface=wan1 \
dst-port=500,1701,4500 \
place-before=0 \
comment="Allow L2TP"

连接测试

iPhone:

我使用的版本为IOS 15。

设置 -> 通用 -> VPN与设备管理 -> VPN -> 添加VPN配置...

  • 类型:L2TP
  • 描述:兮陌的家
  • 服务器:RouterOS的公网IP
  • 账户:simaek
  • 密码:123456(用户的密码)
  • 密钥:123456(IPsec密钥)
  • 发送所有流量:勾选

点击完成,选中新添加的配置,点击连接。

连接成功后,使用浏览器访问家庭内网的路由网关进行连通性测试。

在服务端也可以查看建立的连接。

/ppp/active> print
;;; L2TP for Mac
1 simaek  l2tp     43.91.17.116    10.10.11.101  58s       cbc(aes) + hmac(sha1)

Mac和QWinows配置就省略了,大致相同的。

在外面通过L2TP连接到家里,又因为家里和公司建立了互联,最终可以同时访问家庭和公司的网络。

关于IPsec

我们在配置的时候启用了IPsec,但是并不需要进行IPsec的配置,因为IPsec有默认的配置。一般没有特殊需要,不必折腾。

默认的配置很好的兼容大部分设备,如果更改,可能导致部分设备连接不上,尤其是加密算法,验证算法等,根据设备尝试不同的组合。
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏