在linux服务器上使用strongswan自建ipsecvpn网关实现IDC与云的内网通信配置实例

前言:  

    公有云技术已经非常成熟,各行各业都在上云。有的客户本身有自建IDC,想实现数据迁移或者公有云+本地IDC混合云运行模式,就需要打通IDC与公有云之间的内网,目前腾讯云有两个方案:

  • 专线----自建IDC与公有云之间通过运营商、专线服务商等第三方打通物理专线。适用于长期两地传输重要数据,同时对两地内网通信有高质量保障要求的业务。

        优点:线路相对稳定,传输质量较高。

        缺点:实施成本较高,实施耗时较长。

  • VPN----自建IDC与公有云之间通过公网建立一条VPN通道,实现两地内网通信。

        优点:实施成本相对较低,实施耗时端,可以在短时间内快速打通两地内网。

        缺点:依赖于两点公网传输质量,稳定性、可用性相对较低。

      腾讯云上有VPN网关可以直接购买,对端IDC可以采用支持ipsecvpn的硬件防火墙、路由器或者一台有公网出口能力的linux服务器。本文重点讲解如何在linux服务器上使用strongswan自建ipsecvpn网关实现IDC与云的内网通信。

环境说明:

 一台北京云主机安装strongswan(模拟客户IDC)

   centos7.5 strongswan U5.7.2/K3.10.0-862.el7.x86_64

一台腾讯云上的VPN网关,地域广州

一台腾讯云上广州地域的云主机

 网络拓扑:

配置strongswan

 1.环境准备,关闭防火墙或者同时在防火墙、安全组放通udp500,4500以及esp包。

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
vim /etc/selinux/config  
SELINUX=disabled #关闭selinux
或者:
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 

2.开启ip转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

3.安装strongswan

yum install strongswan -y

4.配置ipsec协商参数

cp ipsec.conf ipsec.conf.bak  #备份配置文件
vim /etc/strongswan/ipsec.conf 
config setup
	# strictcrlpolicy=yes
	 uniqueids = never

# Add connections here.
conn %default
    ikelifetime=3600s  #IPSec SA协商间隔
    keylife=86400s  #ISAKMP SA协商间隔
    rekeymargin=3m  #密钥更新间隔
    keyingtries=1   #ISAKMP SA协商次数
    keyexchange=ikev1 #IKE版本,目前云上支持V1
    ike=3des-md5-modp1024 #ike的加密算法、认证算法、DH group,两边要保持一致
    esp=3des-md5-modp1024 #ipsec的加密算法、认证算法、PFS(完美向前密钥)
    authby=secret #认证方式
    type=tunnel

conn  qcloud
     leftauth=psk #采用预共享密钥
     left=172.16.0.6 #本端IP,这里因云上CVM的公网IP是在TGW上用NAT映射过来的,所以只能填写服务器的内网IP,采用NAT穿透与对端建立VPN
     leftsubnet=172.16.0.0/16 #本端需要与对端通信的内网IP地址段
     leftid=152.136.41.251 #本端标示
     right=203.195.196.214 #对端公网IP
     rightsubnet=10.0.1.0/24 #对端需要与本端通信的内网地址段
     rightid=203.195.196.214 #对端标示
     rightauth=psk #采用预共享密钥
     auto=route #连接方式,可选"add,route,start,ignore","add"表示手动,"route"表示由连接触发,"start"表示自启,"ignore"表示忽略该策略
     type=tunnel #隧道模式

 5.设置预共享密钥

vim /etc/strongswan/ipsec.secrets
203.195.196.214 152.136.41.251 : PSK "qcloud" #注意格式为本端公网ip 空格 对端公网ip 空格 冒号 空格 PSK 空格 双引号具体密钥

 6.设置日志保存位置--可选

注意5.7的版本比5.6有了很多变化,各选项配置文件都分离了,目录集中在 /etc/strongswan/strongswan.d,其中charon.conf文件里可以修改vpn默认的upd端口号,具体功能可以自行研究。这里我们只讲日志的配置方式,便于在VPN联调过程中通过日志调试。

cd /etc/strongswan/strongswan.d
cp charon-logging.conf charon-logging.conf.bak
vim charon-logging.conf 
charon {
    filelog {
        charon-debug-log {
            path = /var/log/strangswan.vpn.log
            time_format = %b %e %T
            default = 2
            mgr = 0
            net = 1
            enc = 1
            asn = 1
            job = 1
            ike_name = yes
            append = no
            flush_line = yes
        }
    }
}

7.启动服务

systemctl start strongswan #启动服务
systemctl enable strongswan #设置开机启动
systemctl status  strongswan #查看服务运行状态与部分最近日志

8.在VPC控制台增加去往对端内网的路由,下一跳指向本云主机

官网地址:https://console.cloud.tencent.com/vpc/route?fromNav

配置腾讯云上的VPN通道

1.登录云控制台购买VPN网关

官网购买地址:https://console.cloud.tencent.com/vpc/vpnGw

2.创建VPN通道

官网链接:https://console.cloud.tencent.com/vpc/vpnConn?fromNav

3.在VPC控制台增加路由

官网地址:https://console.cloud.tencent.com/vpc/route?fromNav

4.用ping从任意一端发起访问流量,激活VPN通道。

至此,客户自建IDC内网已经与云上VPC内网通过IPsecVPN打通,客户可以迁移数据上云也可以运行本地IDC+腾讯云混合云模式来服务自己的业务。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

云网络社区

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券