导语:在本文中,我们将为读者详细介绍如何利用Raspberry PI搭建用户网关,以实现家庭网络和远程AWS VPC子网之间的安全桥接。

上一篇文章中,我们为读者展示了如何使用OpenVPN等VPN软件为AWS私有资源创建安全隧道。而在本文中,我们将为读者详细介绍如何利用Raspberry PI搭建用户网关,以实现家庭网络和远程AWS VPC子网之间的安全桥接。

1.png

首先,我们首先要知道家庭路由器的公有IP地址:

1.png

接下来,登录AWS管理控制台,导航至VPC仪表板,并创建一个新的VPN用户网关:

1.png

然后,创建一个虚拟专用网关:

1.png

并将其附加到目标VPC

1.png

随后,使用用户网关和虚拟专用网关创建VPN连接:

1.png

注:务必将Home CIDR子网添加到静态IP前缀部分。

创建好VPN连接后,点击“Tunnel Details”选项卡,就会看到两条备用的隧道:

1.png

创建VPN连接可能需要几分钟的时间。准备就绪后,选择连接,然后选择“Download Configuration”,打开配置文件,记下预共享密码和隧道IP

tunnel-group 52.47.119.151 type ipsec-l2l
tunnel-group 52.47.119.151 ipsec-attributes
   pre-shared-key irCAIDE1NFxyOiE4w49ijHfPMjTW9rL6

我使用的是Raspbian系统的Raspberry PI 3Quand Core CPU 1.2 GHz1 GB RAM),启用了SSH服务器(默认用户名和密码:pi/raspberry),可以通过下列命令来登录并操作这个系统:

1.png

需要注意的是,必须安装IPsec内核支持。因此,必须在PI上安装openswan,具体命令如下所示:

sudo apt-get install -y openswan lsof

然后,更新/etc/ipsec.conf文件,具体命令如下所示:

version 2.0     # conforms to second version of ipsec.conf specification
# basic configuration
config setup
        # Enable core dumps (might require system changes, like ulimit -C)
        dumpdir=/var/run/pluto/
        # NAT-TRAVERSAL support, see README.NAT-Traversal
        nat_traversal=yes
        virtual_private=
        # OE is now off by default. Uncomment and change to on, to enable.
        oe=off
        # which IPsec stack to use. auto will try netkey, then klips then mast
        protostack=netkey
include /etc/ipsec.d/*.conf

然后,在/etc/ipsec.d/home-to-aws.conf中创建一个新的IPsec连接,具体命令如下所示:

conn home-to-aws
 type=tunnel
 authby=secret
 #left=%defaultroute
 left=192.168.1.81
 leftid=89.95.X.Y
 leftnexthop=%defaultroute
 leftsubnet=192.168.0.0/16
 right=52.47.119.151
 rightsubnet=10.0.0.0/16
 pfs=yes
 auto=start

·leftRaspberry PI私有IP

·leftid:家庭路由器的公有IP

·leftsubnet:家庭子网的CIDR

·right:虚拟专用网关隧道IP

·rightsubnetVPCCIDR

将隧道预共享密码添加到/var/lib/openswan/ipsec.secrets.inc文件中:

89.95.X.Y 52.47.119.151 : PSK“irCAIDE1NFxyOiE4w49ijHfPMjTW9rL6”

为了启用IPv4转发功能,请编辑/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.default.accept_redirects = 0

运行sysctl -p以重新加载。然后,重新启动IPsec服务:

service ipsec restart

验证服务是否能够正常运行:

1.png

如果返回到AWS Dashboard,则应该看到第1个隧道状态已改为UP

1.png

添加一个新的路由条目,通过VPN网关将流量转发到家庭子网:

1.png

注意:请按照上述相同步骤设置第2条隧道,以实现VPN连接的弹性和高可用性。

在专用子网中启动一个EC2实例来验证VPN连接是否可以正常运行:

1.png

仅允许来自家庭网关CIDRSSH

1.png

创建实例后,使用服务器私有IP地址通过SSH进行连接:

1.png

1.png

好极了!我们现在就可以安全地连接到自己的私有EC2实例了。

要想从同一家庭网络中的其他机器建立连接的话,请添加一条静态路由,如下所述:

1 – Windows系统

    route add 10.0.0.0 MASK 255.255.0.0 192.168.1.81

1.png

2 – Linux系统

    sudo up route add -net 10.0.0.0 netmask 255.255.0.0 gw 192.168.31.232

3Mac OS X系统

    sudo route -n add 10.0.0.0/16 192.168.31.232

好了,我们来测试一下:

1.png

源链接

Hacking more

...