如何在 Linux 中实现 IPsec如何在 Linux 中实现 IPsec如何在 Linux 中实现 IPsec如何在 Linux 中实现 IPsec
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中实现 IPsec

本教程介绍如何使用 StongSwan 和 ProtonVPN 实施 IPsec 协议来屏蔽互联网连接。

IPsec 基础知识:

IPsec 是第 3 级安全协议。它为传输层提供安全性,并优于 IPv4 和 IPv6。IPSEC 使用 2 种安全协议和密钥管理协议:ESP(封装安全有效负载)、AH (身份验证标头)和IKE(互联网密钥交换)。协议ESP和AH授予不同的安全级别,并且可以在传输模式和隧道下运行模式。隧道和传输模式都可以应用于 ESP 或 AH 实现。虽然 AH 和 ESP 以不同的方式工作,但它们可以混合使用以提供不同的安全功能。

传输模式:原始IP标头包含有关发送者和目的地的信息。

隧道模式:实现了包含源地址和目标地址的新IP标头。原始 IP 可能与新 IP 不同。

AH,协议(身份验证标头):AH 协议保证数据包点对点完整性以及传输层和应用层的身份验证,但可变数据除外:TOS、TTL、标志、校验和和偏移量。用户该协议的基本原理确保数据包由真正的发送者发送并且未被修改(如中间人攻击中可能发生的情况)。下图描述了 AH 协议在传输模式下的实现。

ESP协议(封装安全有效负载):

协议 ESP 结合了不同的安全方法来确保传输层和应用层的数据包完整性、身份验证、机密性和连接安全。为了实现这一点,ESP 实现了身份验证和加密标头。

下图展示了ESP协议在隧道模式下的实现:

通过比较前面的图形,您可以意识到 ESP 过程覆盖了对它们进行加密的原始标头。同时,AH添加一个认证头。

IKE 协议(互联网密钥交换):

IKE 根据需要管理与 IPsec 端点地址、密钥和证书等信息的安全关联。

您可以在什么是 IPSEC 及其工作原理中阅读有关 IPsec 的更多信息。

使用 StrongSwan 和 ProtonVPN 在 Linux 中实施 IPsec:

本教程展示了如何使用 StrongSwan(一种开源 IPsec 实现)和 Debian 上的 ProtonVPN 在隧道模式下实现 IPsec 协议。对于基于 Debian 的发行版(例如 Ubuntu),下面描述的步骤是相同的。

要开始安装 StrongSwan,请运行以下命令(Debian 和基于 Debian 的发行版)

sudo apt install strongswan -y

Strongswan安装后,通过执行以下命令添加必要的库:

sudo apt install libstrongswan-extra-plugins libcharon-extra-plugins

要使用 wget 下载 ProtonVPN,请运行:

wget https://protonvpn.com/download/ProtonVPN_ike_root.der -O /tmp/protonvpn.der

通过运行以下命令将证书移至 IPsec 目录:

sudo mv /tmp/protonvpn.der /etc/ipsec.d/cacerts/

现在访问 https://protonvpn.com/ 并按下立即获取 PROTONVPN 绿色按钮。

按按钮免费。

填写注册表并按绿色按钮创建帐户。

使用 ProtonVPN 发送的验证码验证您的电子邮件地址。

进入仪表板后,点击帐户>OpenVPN/IKEv2 用户名。这些是编辑 IPsec 配置文件所需的凭据。

通过运行以下命令编辑文件 /etc/ipsec.conf:

/etc/ipsec.conf

在示例 VPN 连接下方,添加以下内容:

注意:其中LinuxHint是连接名称,任意字段。 必须替换为您在 ProtonVPN 仪表板中 帐户>OpenVPN/IKEv2 用户名下找到的用户名。

值 nl-free-01.protonvpn.com 是选择的服务器;您可以在仪表板中的“下载”>“ProtonVPN 客户端”下找到更多服务器。

conn LinuxHint

left=%defaultroute

leftsourceip=%config

leftauth=eap-mschapv2

eap_identity=<OPENVPN-USER>

right=nl-free-01.protonvpn.com

rightsubnet=0.0.0.0/0

rightauth=pubkey

rightid=%nl-free-01.protonvpn.com

rightca=/etc/ipsec.d/cacerts/protonvpn.der

keyexchange=ikev2

type=tunnel

auto=add

按 CTRL+X 保存并关闭。

编辑/etc/ipsec.conf后,您需要编辑存储凭据的文件/etc/ipsec.secrets。要编辑此文件,请运行:

nano /etc/ipsec.secrets

您需要使用语法“USER: EAP KEY”添加用户名和密钥,如下图所示,其中 VgGxpjVrTS1822Q0 是用户名,b9hM1U0OvpEoz6yczk0MNXIObC3Jjach< 关键;您需要将它们替换为仪表板中 帐户>OpenVPN/IKEv2 用户名下的实际凭据。

按 CTRL+X 保存并关闭。

现在是时候进行连接了,但在运行 ProtonVPN 之前,请通过运行以下命令重新启动 IPsec 服务:

sudo ipsec restart

现在您可以连接运行:

sudo ipsec up LinuxHint

可以看到,连接已成功建立。

如果你想关闭 ProtonVPN,你可以运行:

sudo ipsec down LinuxHint

如您所见,IPsec 已正确禁用。

结论:

通过实施 IPsec,用户对安全问题的关注度大幅提高。上面的示例显示了如何在隧道模式下使用 ESP 协议和 IKEv2 部署 IPsec。如本教程所示,实施非常简单,所有 Linux 用户级别都可以使用。本教程使用免费 VPN 帐户进行说明。尽管如此,上述 IPsec 实施仍可以通过 VPN 服务提供商提供的高级计划进行改进,从而获得更快的速度和额外的代理位置。 ProtonVPN 的替代品是 NordVPN 和 ExpressVPN。

将 StrongSwan 视为开源 IPsec 实现,选择它作为多平台替代方案;适用于 Linux 的其他选项包括 LibreSwan 和 OpenSwan。

我希望您发现本在 Linux 中实现 IPsec 的教程很有用。继续关注 LinuxHint 以获取更多 Linux 技巧和教程。

©2015-2025 艾丽卡 support@alaica.com