AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1060372
Accepted
Dave
Dave
Asked: 2021-04-15 07:46:28 +0800 CST2021-04-15 07:46:28 +0800 CST 2021-04-15 07:46:28 +0800 CST

libreswan 为 ipsec 流量配置虚拟接口

  • 772

描述:

我正在学习如何使用 libreswan 配置 ipsec。我想在两台主机之间建立一个主机到主机的 vpn。我希望每个主机都为其 ipsec 隧道使用虚拟接口。

问题:

我用 RSA 设置了我的 ipsec 配置,并启动了隧道,但是没有构建虚拟接口。

系统:

(2) RHEL 8.2 虚拟机

我不清楚什么

  • 如何启动隧道?我知道我运行了ipsec auto --up mytunnel,但是该命令需要同时在两个系统上运行还是先在右侧然后在左侧运行?
  • 我的“左”和“右” ip 是在可以相互路由的接口上配置的 ip 地址。这个对吗?
  • 我觉得我在这里错过了一步,比如配置接口并设置 libreswan 以使用它?

故障排除:

  • 我按照这些说明如何设置 ipsec 隧道。
  • 我用 netstat 确认,似乎所有接口都在监听 500 和 4500。
  • 执行了一个ip a,我看到没有创建虚拟接口。
  • 为了启动我运行的隧道systemctl restart ipsec.service,然后ipsec auto --up mytunnel,最后ipsec auto --up mytunnel,我看到了这个输出
181 "mytunnel" #1: initiating IKEv2 IKE SA
181 "mytunnel" #1: STATE_PARENT_I1: sent v2I1, expected v2R1
182 "mytunnel" #2: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=DH19}
002 "mytunnel" #2: IKEv2 mode peer ID is ID_FQDN: '@west'
003 "mytunnel" #2: Authenticated using RSA with IKEv2_AUTH_HASH_SHA1
002 "mytunnel" #2: negotiated connection [10.10.10.111-10.10.10.112:0-65535 0] -> [10.10.10.111-10.10.10.112:0-65535 0]
004 "mytunnel" #2: STATE_V2_IPSEC_I: IPsec SA established transport mode {ESP=>0xe25ebdee <0x3d8ac123 xfrm=AES_GCM_16_256-NONE NATOA=none NATD=none DPD=passive}

我的 ipsec 配置:

conn mytunnel
    auto=add
    leftid=@west
    left=10.10.10.111
    leftrsasigkey=0sAwEAAbqd ... blqu1K0=
    rightid=@east
    right=10.10.10.112
    rightrsasigkey=0sAwEAAboA ... NEJbLk=
    authby=rsasig

编辑 修复了我的日志输出。

EDIT2 我了解到 ipsec 不会自行设置虚拟接口。这需要通过 IPIP、GRE 或其他方法完成。

  • 这是有关设置 VPN 路由的不同方式的有用链接。
  • 这是关于如何设置 IPIP 的一个很好的链接。
redhat ipsec interface libreswan
  • 1 1 个回答
  • 893 Views

1 个回答

  • Voted
  1. Best Answer
    Simon Richter
    2021-04-15T08:37:10+08:002021-04-15T08:37:10+08:00

    IPsec 不一定使用虚拟接口。

    相反,您有一个 IPsec 策略数据库(setkey -DP显示当前内容),这些策略在数据包通过堆栈时应用于数据包。

    当您不希望额外分配额外地址并确保它们与其他用途没有冲突时,这很有用。

    正如您配置的那样,传输模式甚至在数据包中没有空间用于附加地址。像您这样的策略说“从 10.10.10.111 到 10.10.10.112 的任何数据包都需要加密然后正常路由”,但是如果您没有使用这些地址的任何接口,则不会生成这样的数据包。

    我并不完全清楚为什么日志文件中的地址与配置中的地址不同。

    根据日志,您拥有的 IPsec 设置将加密 10.104.8.109 和 10.104.8.108 之间的数据包。如果您从另一台 ping 这些主机中的一个,ping 数据包应该被封装,具有数据包结构 IP - ESP - ICMP,任何不拥有密钥的人只能看到 ESP 而无法分辨其中传输了什么内部协议。

    对于隧道,存在两种主要方法:将 IPsec 策略应用于未加密的隧道,以及连接两个无论如何都将通过同一接口路由的网络。

    未加密的隧道将使用 GRE 或 IPIP 创建数据包结构 IP - IP - ICMP,然后加密策略(在传输模式下)将环绕内部 IP 标头以获得 IP - ESP - IP - ICMP。隧道提供 IP 地址绑定到的虚拟接口。

    网络链接方法使用隧道模式 IPsec,但仍然不会创建接口。在这里,数据包从内部网络接口到达并被寻址到不在内部接口上的目的地,因此它们被路由到默认路由。IPsec 策略将整个数据包包装在一个传输数据包中,将其带到另一端,在那里它被解包并正常路由到那里的内部接口。中间的路由器看不到内部地址,因此它们可以在私有范围内。对于这种方法,也不需要虚拟网络设备,路由器也不需要远程网络的路由条目。

    • 1

相关问题

  • 如何设置 Redhat 对 ActiveDirectory 的用户进行身份验证

  • 如何从 RHEL 5 迁移到 CentOS 5?

  • 我应该将 Rails 应用程序部署到哪个目录?

  • 如何移动 MySQL 的数据目录?

  • RHEL 5.3 上可用的 yum 存储库

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve