暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用Libreswan构建OP到OCI的VPN通道

4290
Libreswan是目前基于("IPsec")和Internet密钥交换("IKE")的最广泛支持和标准化VPN协议的自由软件实现。本文我们将使用Libreswan搭建点对点的IPSec网络,实现OP和OCI的内网互通。
Libreswan简介

Libreswan是IPsec协议的开源实现,它基于FreeSwan项目,可以在RedHat的Linux发行版上使用该软件包。关于Libreswan的IPsec协议的两个部分的简要信息如下所述。

基于IPsec的VPN由Internet密钥交换协议和封装安全有效载荷(ESP)协议组成。 

  • IKE

正如名称所示,IKE协议的目的是认证(使用的预共享密钥,公开密钥加密,自由连接)对等体来动态生成密钥并与对等体共享密钥。IPsec第二阶段的加密密钥也取决于IKE。Libreswan使用pluto程序实现IKE协议。

  • ESP

ESP协议是在Linux内核(NETEY XFRM)IPsec中实现的对等体约定策略的实际规范。 

  • Libreswan功能

    • 支持基于预共享密钥的认证。

    • 支持基于公钥的认证。

    • 支持IKE v1 v2版本的密钥交换。

    • 支持NSS加密库。

    • 还支持Xauth和DNSSec。

环境介绍

本文我们将使用Libreswan搭建点对点的IPSec网络,实现OP和OCI的内网互通。

安装配置

1. 安装Libreswan

sudo yum -y install https://download.libreswan.org/binaries/rhel/7/x86_64/libreswan-4.1-1.el7_9.x86_64.rpm

2. 配置系统内核参数.

sudo vim /etc/sysctl.d/50-libreswan.conf

net.ipv4.ip_forward=1

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

net.ipv4.conf.eth1.send_redirects = 0

net.ipv4.conf.default.accept_redirects =0

net.ipv4.conf.eth0.accept_redirects = 0

net.ipv4.conf.eth1.accept_redirects = 0

net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.eth0.rp_filter = 0

net.ipv4.conf.eth1.rp_filter = 0

sudo sysctl -p/etc/sysctl.d/50-libreswan.conf

3. 配置防火墙,开放端口4500和500的TCP和UDP协议。

4. 在OCI控制台中,创建指向Libreswan公共IP地址(例如52.118.5.18)的customer premises equipment(CPE)对象。

5. 如果尚未将DRG连接到VCN:在OCI控制台中,创建一个DRG,然后将其连接到VCN(10.155.64.0/18)。

6. 在OCI控制台中,创建IPSec连接,并将其静态路由设置为OP的私有IP网段10.177.159.64/26

对于每个已配置的IPSec连接,Oracle都会创建两个隧道:

7. 在OCI控制台中,配置隧道的IKE版本和共享密码(OCI20210408IBM).说明:共享密码在后续libreswan的ipsec配置中会用到。

8. 在Oracle控制台中,编辑VCN的安全规则,在端口4500和500上启用TCP和UDP流量,同时开启ESP流量。

9. 在OCI控制台中,编辑VCN的路由表以添加一个规则,该规则将OP私网的网段(10.177.159.64/26)作为目标CIDR块,并将先前创建的DRG作为目标。请记住:路由表与子网相关联,因此请编辑与每个需要与OP通信的子网相关联的路由表。

10. 配置Libreswan,Libreswan配置使用left和right的概念来定义本地CPE设备和远程网关的配置参数。连接的任一侧(Libreswan配置中的conn)可以是左侧或右侧,但该连接的配置必须一致。在本例中:

left:OP的Libreswan CPE

right:Oracle VPN IP Address

sudo vim /etc/ipsec.d/oci-ipsec.conf

conn bg-tunnel-ocivpn-1

    left=52.118.5.18

    right=193.122.161.149

    authby=secret

    leftsubnet=10.177.159.64/26

    rightsubnet=10.155.64.0/18

    auto=start

    mark=8/0xffffffff # Needs to be unique across all tunnels

    vti-interface=vti5

    vti-routing=no

    ikev2=insist # To use IKEv2, change to ikev2=insist

    ike=aes_cbc256-sha2_384;modp1536

    phase2alg=aes_gcm256;modp1536

    encapsulation=yes

    ikelifetime=28800s

    salifetime=3600s       

   

conn bg-tunnel-ocivpn-2

    left=52.118.5.18

    right=193.122.172.220

    authby=secret

    leftsubnet=10.177.159.64/26

    rightsubnet=10.155.64.0/18

    auto=start

    mark=9/0xffffffff # Needs to be unique across all tunnels

    vti-interface=vti6

    vti-routing=no

    ikev2=insist # To use IKEv2, change to ikev2=insist

    ike=aes_cbc256-sha2_384;modp1536

    phase2alg=aes_gcm256;modp1536

    encapsulation=yes

    ikelifetime=28800s

    salifetime=3600s     

11. 设置密钥文件:/etc/ipsec.d/oci-ipsec.secrets

sudo vim /etc/ipsec.d/oci-ipsec.secrets

52.118.5.18 193.122.161.149: PSK"OCI20210408IBM"

52.118.5.18 193.122.172.220: PSK"OCI20210408IBM"

12. 设置Libreswan配置和密码文件后,必须使用以下命令重新启动Libreswan服务。

sudo service ipsec restart

13. 在OCI控制中,查看两个隧道的连接状态。

14. 在Libreswan所在的服务器上配置路由,使用以下ip命令创建静态路由,通过IPSec隧道向VCN发送流量。

sudo ip route add 10.155.64.0/18 nexthopdev vti5 nexthop dev vti6



作者简介

唐承波,甲骨文云架构团队高级咨询顾问,专注于甲骨文PaaS云平台相关产品及架构解决方案,具有9+年的IT行业从业经验,擅长大数据和分布式系统的架构与开发。熟悉电信,公共安全行业。您可以通过chengbo.tang@oracle.com与他联系。


扫描二维码或点击阅读原文

快速预约精选云解决方案演示



文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论