AWS China S2S (Solution-Custom)

2018/01/31 23:12
阅读数 23

请关注微信公众号:插秧者  获取更多资料。

转载请说明出处!!! 

理论:

IPsec:安全协议(Internet Protocol Security,缩写为IPsec),是一个协议组合,协议工作在OSI模型中网络层。

IKE:密钥交换(Internet Key Exchange,简称IKE或IKEv2)是一种网络协议,归属于IPsec协议族之下。

ESP:安全报文协议(Encapsulating Security Payload,简称ESP)是一种安全报文协议,范畴于ICP-IP。

关于IKE v1和IKE v2差别这里不做详细的阐述了,一个重要的差别 IKE v1一般被称为Policy Based的VPN,IKEv2一般被称为Route Based的VPN。详情请参阅RFC5996做了定义。接下来阐述一下IKE的工作过程(参阅下图):

IKE的工作过程:

  • 启动IKE阶段1,目标保护的流量触发协商过程,对通讯双方进行身份,两端之间建立一条安全通道。

  • 启动IKE阶段2,在阶段1的安全通道内协商IPSec参数。

  • 加密传输,按照协商好的IPSec参数对数据流进行加密,HASE等进行双向传输的保护。

如果需要支持多站点那么需要采用Route Based模式,IKE v2不同的设备配置方法不同,可能密钥算法类型不支持,前期一定调研好本地的硬件设备的类型,以及VPN的模式,被动还是主动,加密算法等。一般IKE v1是支持的。参考一做网络的朋友提供的设备资料,参阅之后,进行了简单的总结如下(可能有更新)供前期实施调研朋友们的参考: 支持IKEv1和IKEv2的设备供应商(含软件提供) Barracuda Networks,Cisco,F5,Juniper,Palo AltoNetworks,WatchGuard等。仅支持IKEv1的设备提供商:Allied Telesis,Citrix,Internet Initiative Japan (IIJ),Brocade等。仅支持IKEv2的设备提供商:A10 Networks, Inc,Microsoft(Windows Server 2012 RRAS),ShareTech, SonicWall等。

本章节参考文献:

IPsec:

https://en.wikipedia.org/wiki/IPsec

Routing protocol:

https://en.wikipedia.org/wiki/Routing_protocol

IKE:

https://en.wikipedia.org/wiki/Internet_Key_Exchange

 

AWS VPN Gateway解决方案实践:

理论的简单普及后,那我们接下来实践一下VPN的解决办法,在国内做公有云的朋友也知道。AWS在中国区VPN的Gateway一直没有上线,这个…个人认为当然不是一个技术问题,很大程度是公关的问题,我们没权利讨论这个问题。接下来实践探讨一下在AWS China区域自定义的VPN Gateway创建布署的技术的细节和注意事项。

我们会采用两个EC2,实现两个方案,从操作系统入手:

A: Linux实例:基于CentOS 7 Strongswan的布署

B: Windows实例:基于Windows Server 2012 RRAS的布署。

AWS VPC(公有子网,私有子网)已经创建完毕(关于AWS VPC的理论这里就不展开阐述)。

详情参阅:https://docs.aws.amazon.com/zh_cn/AmazonVPC/latest/UserGuide/VPC_Introduction.html

VPC参数:VPC CIDR: 10.101.0.0/16,公有子网 CIDR: 10.101.0.0/24, 私有子网 CIDR: 10.101.10/24

路由表A:关联公有子网,路由表B:关联私有子网(默认为VPC的主路由)

IDC1:CIDR: 10.124.0.0/16  VPN设备:Cisco (配置IKE v2)

IDC2:CIDR: 10.107.0.0/24  VPN设备:Juniper(配置 IKE v1)

那我们接下来会搭建两中方案实现AWS VPC和IDC1&IDC2的站点到站点(S2S IPsec)的连接。

EC2创建(必须创建在VPC 的公有子网内):

Linux实例:基于CentOS 7 Strongswan的布署

Step1: EC2实例的创建

AMI: 选择社区AMIàCentOS 7 x86_64GenericCloud 1801 (AWS社区AMI命名格式:Linux版本+位数+定制版本+年月)关于GenericCloud版本为官方专门的发布同样也有Azure专门定制的版本.

参考:

https://cloud.centos.org/centos/7/images/  

其次剩下创建EC2过程了,选择公有子网创建即可。

Step2: 实例NSG等附属组件配置

A.网络安全组(入站新增加以下3条规则,为了安全来源可以具体的CIDR):

类型

协议

端口范围

来源

自定义协议

50

全部

0.0.0.0/0

自定义UDP规则

UDP

500

0.0.0.0/0

自定义UDP规则

UDP

4500

0.0.0.0/0

B.网卡IP检测配置:

选择EC2à查看描述à网络接口eth0(一定是eth0)排出多网卡的à操作à更改源/目标。检查à已禁用保存

C.路由表A,路由表B配置:

新增两条路由:目标:10.124.0.0/16à目标:EC2实例或EC2实例eth0(网卡ID)

目标:10.107.0.0/24à目标:EC2实例或EC2实例eth0(网卡ID)

D.EIP(弹性IP)的关联:

生成EIPà操作à关联àEC2实例

Note:以上四个操作没有先后顺序,建议每个操作步骤最好给每个资源打上Tag,方便管理和后续排查问题。

Step3: Strongswan配置以及参数说明

A. 配置系统,SSH登进EC2,默认用户名centos,执行操作配置

sudo yum install epel-release    

#添加额外的安装源,安装扩展包

sudo yum install strongswan -y 

#安装Strongswan

sudo vi /etc/sysctl.conf  

#开启系统转发等配置信息

net.ipv4.ip_forward = 1

sudo sysctl -p 

#应用刷新配置

B. 配置Strongswan

sudo vi /etc/strongswan/ipsec.conf 

#编辑配置文件

 

sudo vi /etc/strongswan/ipsec.secrets

#配置密钥

EIP : PSK “密钥”

sudo strongswan strat /restart 

#启动和重启Strongswan

sudo strongswan statusall 

#查看连接状态

IDC1和IDC2硬件配置完毕后,查看Strongswan的状态2up现在进行ICMP测试校验。

ICMP包测试,ping IDC1测试:

ICMP包测试,ping IDC2测试:

Note: 其中3个配置文件在我的Github里:https://github.com/BoushZhou/AWS

关于Strongswan HA的解决方案,需要借助于集群,时间紧迫后续有空会更新一下,感兴趣的朋友可以自自己先研究一下,HA的参考文献:https://wiki.strongswan.org/projects/strongswan/wiki/HighAvailability

本章节参考文档:

https://wiki.archlinux.org/index.php/StrongSwan

https://wiki.strongswan.org/projects/strongswan/wiki/UserDocumentation

Windows实例:基于Windows Server 2012 RRAS的布署

将会采用Windows ServerRRAS的服务,关于RRAS的服务的介绍这里就不阐述了。那么接下来只需要两个步骤。因为目前支持IKEv2,那我们接下来将打通AWS与IDC1之间的网路。

Setp1:EC2的实例创建。

这里不就不过多阐述了,可以使用本地的镜像传至AWS创建,使用本地的License。前提是创建选择专用类型的机器,如果选用AWS的镜像就采用官方的镜像即可。EC2的路由表和网卡等配置采用以上Linux的配置方法即可。

Setp2:修改Powershell的参数

我创建的EC2是Windows Server 2012 R2版本的,那我们下载R2版本的脚本只须更改一部分参数即可。

脚本下载地址:

2012 R2: https://github.com/BoushZhou/AWS/blob/master/microsoft-rras-windows-server-2012-R2.ps1

2012: https://github.com/BoushZhou/AWS/blob/master/microsoft-rras-windows-server-2012.ps1

修改3个参数,以管理员身份运行Powershell_ISE ,运行脚本即可,配置运行,对端设备配置好就可以测试。

然查看路由和远程访问服务拨号的连接状态。状态已变为:已连接 

 

连接成功,接下来ICMP测试一下连通性:

 

截止目前两个方案测试完毕。

本章节参考文献:

https://blogs.technet.microsoft.com/canitpro/2016/01/11/step-by-step-connect-your-aws-and-azure-environments-with-a-vpn-tunnel/

https://blogs.technet.microsoft.com/networking/2015/03/26/troubleshooting-site-to-site-s2s-vpn-connections-on-hnv-gateway/

 

 



 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部