使用Openswan连接AWS VPC
业务上云之后,经常也有需求将多云、数据中心或办公室的私有网络同云端的私有网络建立连接。AWS Site-to-Site VPN正是AWS提供的托管VPN服务,我们可以在另一端的私有网络通过Openswan同AWS VPC网络建立基于IPSec协议的安全连接。
下面是配置的详细步骤,
- 如果是创建数据中心或办公室的连接,数据中心或办公室需要有公网IP。如果是在其他公有云上,需要创建带公网IP的EC2,或使用EIP。
- 如果使用AWS EC2配置Openswan,需要禁用 EC2 的 Source/Destination Check。
- 在AWS上创建Virtual Private Gateway 和 Customer Gateway(指定对端的公网IP作为静态路由)。
- 在AWS上创建Site-to-Site VPN连接,使用第一步和第二步创建的Virtual Private Gateway和Customer Gateway。
- 在对端机器上安装
openswan
。1sudo yum install openswan
- 编辑
/etc/sysctl.conf
文件,确保有以下配置,1net.ipv4.ip_forward = 1 2net.ipv4.conf.default.rp_filter = 0 3net.ipv4.conf.default.accept_source_route = 0
- 重新加载sysctl配置并重启network服务。
1sudo sysctl -p 2sudo service network restart
- 编辑
/etc/ipsec.conf
确保include /etc/ipsec.d/*.conf
没有被注释。 - 创建
/etc/ipsec.d/aws.conf
文件,内容拷贝来自第三步创建的连接Openswan建议配置。 - 创建
/etc/ipsec.d/aws.secrets
文件,内容拷贝来自第三步创建的连接Openswan配置。 - 启动ipsec服务。
1# Start the ipsec service. 2sudo service ipsec start 3 4# Check the logs. 5sudo service ipsec status 6sudo ipsec auto --status
以上配置在Amazon Linux, Centos 6.9上验证通过。但是在Amazon Linux 2、Centos 7等较新的Linux发行版本上,启动ipsec
服务遇到如下错误,
1Starting Internet Key Exchange (IKE) Protocol Daemon for IPsec...
2ERROR: /etc/ipsec.d/aws.conf: 12: keyword auth, invalid value: esp
auth=esp
。