AWS使用OpenSwan对接华为USG防火墙配置指南
一、场景拓扑
二、AWS VPC配置
VPC中需要添加数据中心的内网IP路由,
1.配置 VPC 基础环境
1.1 创建 VPC
在AWS console界面点击VPC,在左侧点击“您的VPC”, 创建VPC
名称标签: MyVPC
CIDR块: 172.168.0.0/16
租赁:默认
1.2 创建子网
将鼠标点到子网,选择创建子网
标签名称:Public
VPC:选择第一步创建好的VPC
可用区:保持默认
CIDR块:172.168.1.0/24
以同样的方法创建一个172.168.2.0/24的子网
1.3 创建路由表
点击路由表,创建路由表
名称标签:PrivateRoute
VPC:选择1.1创建好的VPC
创建完成以后,点到刚刚创建好的路由表,在页面下列点击子网关联,点击编辑
在172.168.2.0/24的路由前打勾,点击保存。
1.4 创建 IGW
点击Internet网关,创建Internet网关
名称标签:MyIGW
创建完成,点击附加到VPC
选择新创建好的VPC
2. 启动并配置 VPN 实例
2.1 启动实例
到EC2页面,点击启动实例。选择Amazon Linux
在详细信息页中,网络请选择新创建的VPC
子网选择172.168.1.0/24
点击下一步,存储标签等按需配置
配置安全组,选择创建一个新的安全组
添加规则
自定义的UDP规则,端口500 来源任何位置
自定义的UDP规则,端口4500 来源任何位置
自定义协议, 协议 50 来源任何位置
所有流量 来源为 172.168.2.0/24
注意:一定要放行来自于172.168.2.0/24的流量,否则无法通信。
最后审核启动,启动时指定一个用于登陆实例的key文件,如果没有创建一个新的。
2.2 配置弹性 IP (EIP)
在EC2页面,左侧导航栏找到弹性IP,申请分配新地址,并将其关联到新创建的OpenSwan实例。这里申请到的为 54.223.152.218。
2.3 关闭源/目的检查
在EC2页面点击OpenSwan实例,右键选择联网,更改源/目标检查,点“是,请禁用”
三. 安装配置 OpenSwan
3.1 登录到实例安装 OpenSwan
如何登陆实例请参考如下文档:
https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/putty.html
登陆完成以后,运行如下命令安装OpenSwan
$ sudo yum -y install openswan
3.2 配置OpenSwan参数
Vim /etc/ipsec.conf
version 2.0 # conforms to second version of ipsec.conf specification
# basic configuration
config setup
# Debug-logging controls: "none" for (almost) none, "all" for lots.
# klipsdebug=none
# plutodebug="control parsing"
# For Red Hat Enterprise Linux and Fedora, leave protostack=netkey
plutostderrlog=/var/log/ipsec.log[书轩1]
protostack=netkey
nat_traversal=yes
virtual_private=
oe=off
# Enable this if you see "failed to find any available worker"
# nhelpers=0
#You may put your configuration (.conf) file in the "/etc/ipsec.d/" and uncomment this.
#include /etc/ipsec.d/*.conf[书轩2]
conn huawei
type=tunnel
authby=secret
auto=start
##IKE##
ike=3des-sha1;modp1024[书轩3] //IKE参数第一次加密算法
keyexchange=ike //预设密钥
##IPsec##
phase2=esp[书轩4] //IPSes参数第二次认证算法
phase2alg=3des-sha1[书轩5]
pfs=no[书轩6]
aggrmode=no
ikelifetime=86400s[书轩7]
salifetime=10000s[书轩8]
forceencaps=yes
dpdaction=restart
left=%defaultroute
leftnexthop=%defaultroute
leftsubnet=172.168.2.0/24 //本地私有子网
leftid=52.80.152.79 //本地外网弹性IP
leftsourceip=52.80.152.79 //本地外网弹性IP
rightsubnets=192.168.30.0/24 //对端私有子网
right=221.226.100.202 //对端外网IP
rightid=221.226.100.202 //对端外网IP
3.3 配置预设密钥
Vi /etc/ipsec.secrets
#include /etc/ipsec.d/*.secrets[书轩9]
52.80.152.79 221.226.100.202: PSK "aws@123[书轩10] " //预设密钥
3.4启动openswan服务并做配置检查
$ sudo service ipsec start
$ sudo ipsec verify
3.5 修改系统参数
更改系统参数做IP转发并关闭重定向功能
编辑/etc/sysctl.conf内核配置文件,做如下修改
$ vim /etc/sysctl.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.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
配置完成以后,启用新的配置
$ sudo sysctl –p
3.6 更改 OpenSwan 的网卡 MSS 值
$ sudo iptables -t mangle -A FORWARD -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1387
3.7 修改 VPC 私有子网路由表
找到VPC Console页面,在左侧点路由表,找到172.168.2.0/24关联的路由表(1.3中创建), 在页面下方点击路由,编辑
添加其他路由,
目标: 192.168.30.0/24
目标:OpenSwan实例ID (i-xxxxx)
四、华为防火墙配置
4.1添加ipsec参数
网络——IPsec——Ipsec,点击新建。添加对端地址,本地外网地址,对端外网地址。与感兴趣流(AWS内网地址)。
4.2设置加密算法
参照OpenSwan配置参数选择算法类型
4.3添加AWS子网路由
网络——路由——静态路由表
4.4 可选:多出口路由设置
如果数据中心的外网涉及多个公网出口,需要设置策略路由,已是数据中心内网IP与AWS内网IP走IPsec连接出口。
网络——路由——智能选路——策略路由
4.5 设置访问AWS流量为免NAT
因为访问AWS的感兴趣流的源IP为192.168.30.0 目的地址为:172.168.2.0 需要联通需要走IPsec通道,所以流量不可以被NAT。
感兴趣流:
免NAT设置:
策略——NAT策略——源NAT——新建。(注:防火墙策略为从上到下匹配,所以需要注意位置)
4.6 配置安全策略
因为防火墙默认是所以区域全部禁止访问,所以需要新建策略允许访问。注意策略的位置,从上到下的匹配原则。
策略——安全策略——安全策略
1)设置密钥端口放行:
2)设置公司内网到AWS内网的源地址允许
3)设置AWS内网到公司内网的源地址允许
4)设置本地外网地址到AWS外网弹性IP地址的允许
5)设置AWS外网弹性IP的地址到公司外网地址允许
五、测试连通性
Openswan侧测试:
以上步骤都完成以后,就可以在172.168.2.0网段的实例进行测试了。使用 ping 测试到 192.168.30.0 private 私有地址段的一个地址。
ping 192.168.30.36
检查 IPsec tunnel 状态:
$ sudo service ipsec status
IPsec running - pluto pid: 25674
pluto pid 25674
1 tunnels up[书轩11]
some eroutes exist
防火墙侧测试:
[书轩1]设置Ipsec对接日志
[书轩2]注释ipsec配置文件查找的文件位置
[书轩3]加密算法-认证算法;DH组(除以512)
[书轩4]安全协议
[书轩5]ESP加密算法-ESP认证算法
[书轩6]PFS功能
[书轩7]IKE参数 SA超时时间
[书轩8]IPSec参数 的SA超时时间
[书轩9]注释到ipsec.d文件夹寻找密钥文件
[书轩10]华为预设密钥要加特殊字符
[书轩11]通道建立成功