为什么我比其他VPN更爱IKEv2



现在,周围的每个人都在为远程员工设置VPN。看着人们如何安装巨大的错误程序,配置某种证书,安装TUN / TAP驱动程序以及执行许多复杂的操作让我很痛苦,而最佳的解决方案已经内置在操作系统中。

IKEv2是由Microsoft和Cisco开发的现代VPN协议。默认情况下,它用于Windows,macOS,iOS中的新VPN连接。它比大多数VPN协议更快,更安全,并且可以在客户端上单击两次轻松配置,而无需使用第三方程序。

我相信IPsec IKEv2不仅适用于连接服务器,而且适用于常规的VPN最终用户连接。在本文中,我将尝试说服您对普通家庭用户使用IPsec IKEv2,而不是OpenVPN。

IKEv2更快


在所有条件都相同的情况下,IKEv2总是比OpenVPN更快。这在内存较低的低功耗系统(例如路由器或单板计算机)上尤其明显。

事实是IPsec在操作系统内核的上下文中工作,而OpenVPN在用户(用户空间)的上下文中工作,并且每个程序包的处理都在内核进程和用户进程之间切换上下文。这会影响吞吐量和延迟。


不同VPN协议的延迟比较。

上面的屏幕截图显示了IPsec和OpenVPN之间的延迟差了一半。当然,肉眼无法察觉到1ms的差异,但是随着系统的负载,这些值可能会显着变化。此外,实际指标在很大程度上取决于特定系统的特性,因此在比较这两种协议时,我不会给出绝对数字。在VPN上使用语音和视频时,延迟非常重要。

根据我的主观感受,Windows 10上的IKEv2的响应速度明显比OpenVPN高。毕竟,台式机的实际使用与VPN协议的综合测试有很大不同。处理器和内存上的负载不是恒定的,用户可以运行要求严格的程序,所有这些都会影响性能。

IKEv2易于配置


所有现代操作系统(Android除外)都立即支持IPsec IKEv2。无需安装任何程序,虚拟TUN / TAP驱动程序等。所有VPN管理都来自系统菜单。

同时,客户端上的配置可以简化为三行:

  • -对于IPsec,由于已为其颁发SSL证书,因此需要一个域
  • 登录
  • 密码

您不再需要将带有证书和密钥的文件传输到客户端,而强制其将根证书导入系统存储。用户名和密码已足够,并且使用证书时,连接将与OpenVPN中一样安全,因为该连接使用与具有HTTPS的网站相同的x.509证书。

在Windows 10上安装


从WiFi连接菜单中调用VPN设置向导。任何资格的用户都可以处理一个窗口的设置。带有WiFi网络列表的菜单会激活创建的连接。


在Windows 10中配置新IKEv2连接的界面

MacOS设定
macOS IKEv2 10.11 (El Capitan). .

image

. .

image

, . «Server Address» IP- , «Remote ID», DNS-, .

image

/etc/ipsec.secrets

image

iOS设置
iOS , mobileconfig.

macOS:

-> VPN -> VPN

IKEv2是安全的


在上一步中,我们发现登录名和密码足以配置连接。但是,客户端如何验证未窃听连接,未替换数据以及服务器确实是它声称的身份?为此,使用普通的SSL证书,我们习惯于将其用于网站和HTTPS。



客户端与服务器一起安装了安全的SSL隧道,并且已经在其中传输了登录密码。默认情况下,在Windows和macOS上,mschapv2算法用于传输密码。因此,在SSL证书的帮助下,客户端验证服务器的真实性,并且服务器使用登录名/密码验证客户端的真实性。

IKEv2服务器可以与Web服务器使用相同的证书,例如流行的Let's Encrypt。这大大简化了证书管理。

OpenVPN使用相同的模型,如果需要,您可以在其中使用来自Lets Encrypt的证书,但是,在任何情况下,管理员都需要将文件传输给用户以配置VPN。

配置IKEv2服务器


您可以使用自动安装脚本或使用现成的容器在几分钟内部署IKEv2服务器。不建议使用docker,因为其网络子系统会以低廉的VPS速率降低IPsec的性能。您也可以手动配置IKEv2服务器,Habré上有文章介绍了Strongswan服务器设置

我们将使用最成功的自动调整脚本之一github.com/jawj/IKEv2-setup
该脚本很好,因为它使用了Lets Encrypt的证书并自动生成有效的证书。

步骤1:服务器选择


要启动VPN服务器,我们需要VDS。具有单个处理器核心的最简单配置即可。我们示例中的脚本在Ubuntu 18.04上进行了最佳测试,因此在创建服务器时,请选择此OS映像。



我们正在等待服务器安装完成并复制连接的详细信息。根密码将发送到邮件,或者可以通过Web界面手动设置。接下来,我们输入所有命令



步骤2:安装Strongswan


我们通过SSH客户端连接并运行安装脚本:

#     IKEv2 
wget https://raw.githubusercontent.com/jawj/IKEv2-setup/master/setup.sh
chmod u+x setup.sh
./setup.sh
....
#      IP- 
#   sslip.io     
Hostname for VPN: 123-45-67-89.sslip.io
#   VPN
VPN username: coolguy
#  
VPN password (no quotes, please):
....
#     SSH-,    .

步骤3:客户端设定


输入的VPN用户详细信息现在必须用于客户端上的配置。完全使用您在Hostname中输入的VPN域名很重要

步骤4:添加新用户


要将新用户添加到已创建的服务器中,请编辑/etc/ipsec.sectes文件

# nano /etc/ipsec.secrets
123-45-67-89.sslip.io : RSA "privkey.pem"
coolguy : EAP "C00lPassword"
badguy : EAP "bAdP$$word"

添加用户后,运行ipsec secrets命令,以便Strongswan重新读取配置。

结论


我们回顾了IKEv2的用户体验。这样的服务器的管理并不复杂,有时甚至比OpenVPN更容易。如果仅计划为员工组织远程访问,请确保将目光转向IKEv2。如果您需要的所有内容已经在他们的计算机上,请不要强迫用户安装不必要的程序。它更方便,更安全,更先进。


All Articles