之前已经讲过了使用AWS Client VPN实现实例资源内网访问的功能。但是因为直接是cert认证,如果有人拿到了相关信息,就可以一直访问。为了避免此种情况的发生,此次我们将通过账号密码的方式进行验证登录。只要管理好账号密码的发放,及时收回可疑账号,就可以比较理想的解决相关的登录安全问题。

1.Directory Service

  
  创建AWS Directory Service在单独的子网中创建两个域控制器以实现弹性并添加DNS服务。

directoryservice01

directoryservice02

  设置目录的DNS名称(如account.webuysg.com),然后设置管理员密码点击下一步。

directoryservice03

directoryservice04

directoryservice05

  选择VPC和子网,审核创建。等一段时间后即可看到已经创建好的Directory Service。

2.在ACM中创建证书

  在ACM证书管理控制台创建之前设置的DNS名称的公有证书(account.webuysg.com)。并做验证,我这里因为已经验证好了。

directoryservice06

3.创建服务器以安装管理工具

3.1创建Windows服务器的IAM角色

  创建账户管理服务器时,需要使用AmazonEC2RoleforSSM权限来创建一个IAM角色。

3.2创建Windows服务器

  directoryservice07

  启动新实例时,域加入目录选择刚才创建的Directory Service,IAM角色选择具有AmazonEC2RoleforSSM权限。

3.3添加Active Directory管理工具

  创建服务器后,我们就可以使用域管理员帐户格式和用户名admin(即domain \ admin)和以前的密码登录RDP (如果需要,可以在AWS目录中重置)在Server 2016上添加Active Directory管理工具;

  1.选择“服务器管理器”,从“开始”屏幕打开服务器管理器。

  2.在“服务器管理器仪表板”中,选择“添加角色和功能”,

  3.在添加角色和功能向导中,选择安装类型,选择基于角色或基于功能的安装,然后选择下一步。

  4.在“服务器选择”下,确保已选择本地服务器,然后在左侧导航窗格中选择“功能”。

  5.在“功能”树中,打开“远程服务器管理工​​具”,“角色管理工具”,选择“ AD DS和AD LDS工具”,向下滚动并选择“ DNS服务器工具”,然后选择“下一步”。

  6.查看信息,然后选择“安装”。功能部件安装完成后,可在“管理工具”文件夹的“开始”屏幕上使用Active Directory工具。

  安装后,从管理工具中打开“ Active Directory用户和计算机”,如果未正确打开,请检查以确保我们没有以本地管理员身份登录,RDP用户名格式应为domainname \ admin

  向下钻取到我们的域设置为的OU(您无权创建比此级别更高的对象)

  创建几个测试用户(在下次登录时取消选中更改密码)和一个Client VPN Users安全组,然后向其中添加1个测试用户。

  同样使用powershell通过命令获取组的SID,此sid将用于控制谁有权使用VPN

  Get-ADGroup -Identity "Client VPN Users"

directoryservice08

4.创建Cloudwatch日志组和日志流

  通过Cloudwatch日志组和日志流,我们可以记录和审核VPN活动。
  在AWS管理控制台中导航到Cloudwatch,然后从左侧选择Logs,选择Action> Create Log Group并为其指定一个逻辑名(Client-VPN)。

创建日志组后,进入该日志组并选择创建日志流,并为其指定一个逻辑名称(即Client-VPN-LOG)。

4.创建客户端VPN端点

  由于我们之前已经创建过一次Client-VPN客户端终端了,所以本次就主要讲下其中的不同点的设置。

directoryservice09

  服务器证书ARN选择刚才验证的公有证书(account.webuysg.com)。然后选择刚才创建的日志组和日志流。其他的设置和之前差不多,但要注意的是下载的客户端配置需要做一些修改。如:删除掉其中的一个cert再添加两行DNS解析,不然macOS会连接失败。

directoryservice10

  至此设置基本完成,添加openvpn配置,然后输入账号密码进行验证,即可连接实例内网VPC。