建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

shangwubad...

发帖: 16粉丝: 1

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-4-25 18:23:11 2597 2 楼主 显示全部楼层
【VPN锦囊】Openswan/Strongswan对接华为云VPN配置指南

Openswan/Strongswan对接华为云VPN配置指南

作者 : 华为云VPN服务团队

文档中底色绿色代表命令底色灰色代码命令显示信息底色黄色为配置关注点

一、拓扑说明

本场景连接拓扑如下图所示,云端两个VPC。其中一个VPC购买VPN网关,另一个VPC购买ECS EIP并安装IPsec软件客户端,两个VPC间建立VPN连接。

VPC1VPN网关IP11.11.11.11,本地子网192.168.200.0/24

VPC2EIP22.22.22.22,本地子网为192.168.222.0/24

两端VPC中的ECS分别为192.168.200.200192.168.222.222

拓扑-swan.jpg

VPC1侧建立VPN连接资源策略采用华为云缺省配置信息,详见下图

华为云策略配置.jpg

本实例以VPC1VPN配置信息为基础,详细介绍Linuxopenswanstrongswan两种IPsec客户端VPN配置。

二、配置步骤

1安装IPsecVPN客户端

安装openswan

yum install openswan

安装交互过程选择“Y”,出现“Complete!”提示即完成安装,openswan的配置文件放置在/etc目录中,为方便调试,建议在/etc/ipsec.d目录下创建新的confsecrets文件。

安装strongswan

yum install strongswan

安装交互过程选择“Y”,出现“Complete!”提示即完成安装,strongswan的配置文件集中放置在/etc/strongswan目录中,配置过程只需编辑ipsec.confipsec.secrets文件即可。

2、开启IPv4转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1        //编辑增加内容

/sbin/sysctl p                    //执行命令,生效转发配置命令

3iptables配置

确认关闭firewall或允许数据流转发,查询命令iptables –L

iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

4、预共享密钥配置

openswan

vim /etc/ipsec.d/open_ipsec.secrets              //创建并编辑open_ipsec.secrets文件

22.22.22.22 11.11.11.11 : psk "ipsec-key"

格式【本地用于连接的IP+空格+远端网关IP+空格+英文冒号+空格+PSK+预共享密钥】

注意:冒号的两边都有空格,PSK大小写均可,密钥用英文双引号。

安装strongswan

vim /etc/strongswan/ipsec.secrets          //编辑ipsec.secrets文件

22.22.22.22 11.11.11.11 : PSK "ipsec-key"

格式与openswan相同,冒号的两边都有空格,PSK只能为大写,密钥用英文双引号。

5ipsec连接配置

openswan

vim /etc/ipsec.d/open_ipsec.conf          //创建并编辑open_ipsec.conf文件

conn openswan_ipsec                                 //定义连接名称为openswan_ipsec

authby=secret                                     //定义认证方式为PSK

auto=start                                          //可选择addroutestart

ikev2=never                                       //关闭IKEv2版本

ike=aes128-sha1;modp1536                 //按照对端配置定义ike阶段算法和group

keyexchange=ike                                // ike密钥交换方式

ikelifetime=86400s                             // ike阶段生命周期

phase2=esp                                        //二阶段传输格式

phase2alg=aes128-sha1;modp1536 //按照对端配置定义ipsec阶段算法和group

compress=no                                      //关闭压缩

pfs=yes                                             //开启PFS

salifetime=3600s                                //二阶段生命周期

type=tunnel                                       //开启隧道模式

left=192.168.222.222                         //本地IPnat场景选择真实的主机地址

leftid=22.22.22.22                              //本地标识ID

leftsourceip=22.22.22.22                     //存在nat源地址选择natIP

leftsubnet=192.168.222.0/24               //本地子网

leftnexthop=22.22.22.1                       //nat场景下一跳选择nat后的网关IP

right=11.11.11.11                              //远端VPN网关IP

rightid=11.11.11.11                                   //远端标识ID

rightsourceip=11.11.11.11                   //远端源地址选择VPN网关IP

rightsubnet=192.168.200.0/24             //远端子网

rightnexthop=%defaultroute                //远端路由按缺省配置

安装strongswan

vim /etc/strongswan / ipsec.conf           //编辑ipsec.conf文件

config setup

conn strong_ipsec                               //定义连接名称为strong_ipsec

auto=route                                         //可选择addroutestart

type=tunnel                                       //开启隧道模式

compress=no                                      //关闭压缩

leftauth=psk                                       //定义本地认证方式为PSK

rightauth=psk                                     //定义远端认证方式为PSK

ikelifetime=86400s                             // ike阶段生命周期

lifetime=3600s                                   //二阶段生命周期

keyexchange=ikev1                     // ike密钥交换方式为版本1

ike=aes128-sha1-modp1536!               //按照对端配置定义ike阶段算法和group

esp=aes128-sha1-modp1536!              //按照对端配置定义ipsec阶段算法和group

leftid=22.22.22.22                                   //本端标识ID

left=192.168.222.222                         //本地IPnat场景选择真实的主机地址

leftsubnet=192.168.222.0/24               //本地子网

rightid=11.11.11.11                      //远端标识ID

right=11.11.11.11                         //远端VPN网关IP

rightsubnet=192.168.200.0/24             //远端子网

请特别关注conf中标记为黄色的配置项,配置完成后openswan可通过命令进行配置项校验,strongswan实在开启服务时进行校验。Openswan校验命令为ipsec verify,回显信息需要全部为OK

ipsec verify

ope你、swan-校验.jpg

若回显信息出现如下报错:

Checking rp_filter                                  [ENABLED]

 /proc/sys/net/ipv4/conf/default/rp_filter          [ENABLED]

 /proc/sys/net/ipv4/conf/lo/rp_filter               [ENABLED]

 /proc/sys/net/ipv4/conf/eth0/rp_filter             [ENABLED]

 /proc/sys/net/ipv4/conf/eth1/rp_filter             [ENABLED]

 /proc/sys/net/ipv4/conf/ip_vti01/rp_filter             [ENABLED]

通过如下命令解决

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/ip_vti01/rp_filter

6、启动服务

openswan

service ipsec sotp                 //关闭服务

service ipsec start                 //启动服务

service ipsec restart              //重启服务

openswan auto –down openswan_ipsec        //关闭连接

openswan auto –up openswan_ipsec             //开启连接

strongswan

service strongswan stop                //关闭服务

service strongswan start                //启动服务

service strongswan restart             //重启服务

strongswan down strong_ipsec                    //关闭连接

strongswan up strong_ipsec                        //开启连接

 

注意:每次修改配置都需要重启服务,并重新开启连接。

7、结果验证

Openswan

通过查询ipsec的状态,结果显示如下信息(摘录),查询状态命令ipsec --status

openswan-status.jpg

Strongswan

通过strongswan statusall查询,可见连接启动时间

strong-status.jpg

通过VPC2安装有IPsec客户端的linux操作系统pingVPC1的主机。

ping 192.168.222.222

PING 192.168.222.222 (192.168.222.222) 56(84) bytes of data.

64 bytes from 192.168.222.222: icmp_seq=1 ttl=62 time=3.07 ms

64 bytes from 192.168.222.222: icmp_seq=2 ttl=62 time=3.06 ms

64 bytes from 192.168.222.222: icmp_seq=3 ttl=62 time=3.98 ms

64 bytes from 192.168.222.222: icmp_seq=4 ttl=62 time=3.04 ms

64 bytes from 192.168.222.222: icmp_seq=5 ttl=62 time=3.11 ms

64 bytes from 192.168.222.222: icmp_seq=6 ttl=62 time=3.71 ms

举报
分享

分享文章到朋友圈

分享文章到微博

任我连

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-4-25 19:12:57 沙发 显示全部楼层

好详细。

好有用。



点赞 回复 举报

michaelz

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-9-7 17:15:52 板凳 显示全部楼层

vpc2可以跟vpc1通信,但是vpc1怎么跟vpc2通信呢,后续的步骤最好补全一下

点赞 回复 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册