SDB:Setup l2tp VPN with Openswan

跳转至: 导航, 搜索

Template:Working

本文教您如何在 openSUSE 13.1+ 系统上面架设或使用 l2tp VPN。为了兼容性起见,我们选用了互联网上比较常见的 openswan + xl2tpd + ppp 的组合。其中 openswan 用于提供 ipsec VPN,而 xl2tpd 用于提供 l2tp 层,ppp 用于认证。
注意

1. 本文仅适用于 VPS 到客户端这样的应用场景。并未提供服务器到服务器这样的配置。

2. 本文不提供代架设也不提供测试 demo。但保证在上游没改配置选项的情况下教学都是可用的,并提供了简单的调试指南。

3. VPS 购买以及寻求帮助请到 https://forum.suse.org.cn。

什么是 l2tp?

L2tp 是 Layer 2 Tunneling Protocol(第二层隧道协议)的缩写。不同于 Ipsec,L2tp 仅仅是一个隧道协议,而不是一系列协议族(比如 Ipsec 协议族有管开隧道的,有管加密的,有管认证的),本身并不提供安全加密和可靠性认证。虽然理论上 L2tp 可与任何安全加密协议和认证协议配合使用(比如可能存在 openvpn + l2tp 这样的奇葩组合),但实际中 L2tp 经常与 Ipsec 组合使用,这也是我们在购买商用 VPN 的时候经常发现几乎只要提供了 L2tp VPN 就会同时提供 Ipsec VPN 的缘由(要先跑起一个 Ipsec VPN,再跑起一个 L2tp 层,才能架设 L2tp VPN)。所以除了我们在本教程中所选用的软件外,您自己也可以选择比如 strongswan + xl2tpd + ppp 这样的组合来架设您自己的 VPN,但那样客户端的后续配置可能要麻烦一些(比如可能无法用 NetworkManager 图形化配置,需要文本配置或者祭出 KVpnc 这样的神器),毕竟开发者们也是按照流行度来开发 l2tp 的支持的。

主流系统对 l2tp 客户端的兼容情况

Linux

命令行文本配置自不必说。

早先 Linux 下面图形化配置 L2tp VPN 是十分繁琐的,在 2012 年之前,基本上只有两种选择:神器 KVpnc、俄罗斯人开发的 vpnpptp。但 Kvpnc 的设置复杂到用户必须精确地了解 L2tp w. Ipsec 的原理和你的服务器所使用的配置才能够成功,而 vpnpptp 是用 Free Pascal 这种奇葩语言写成的(比较难打包)。

直到最近,随着两个消息,L2tp VPN 在 Linux 下的图形化应用才见到一些曙光。第一个消息是 NetworkManager-l2tp 被人接手(原来也是俄罗斯人开发的,但 2011 年就废弃了),第二个消息是 KDE 4.13 以后不再使用独有的 KNetworkManager -> NetworkManager-kde4 -> plasmoid-networkmanagement 这样的实现而是直接使用了 NetworkManager-Qt,这意味着 KDE 不再需要中间件的支持就可以直接使用 NetworkManager(也就是说,只要有了 NetworkManager-l2tp,不再需要 KDE 开发者再写一个 NetworkManager-l2tp-kde4,我们就可以在 KDE 下用上 L2tp)。

但请注意:NetworkManager-l2tp 只支持 openswan + xl2tpd + ppp 这样的组合。

iOS

直接支持 L2tp w. Ipsec VPN。

安装

安装 openswan,xl2tpd, ppp:

sudo zypper in openswan xl2tpd ppp

配置

启动

客户端设置

调试

扩展阅读

参考链接

作者