阿里云ECS上使用StrongSwan搭建IPsec VPN
在阿里云ECS上使用StrongSwan搭建IPsec VPN,并通过跳板机访问家庭资源和管理AR161W-S路由器(iptables并不是必须的,但强烈建议安装并配置iptables以增强安全性),以下是详细的实施步骤和命令行操作:
一、环境准备
ECS配置:
公网IP:
45.23.85.245
操作系统:Ubuntu 20.04/22.04(或其他支持StrongSwan的Linux发行版)
StrongSwan版本:
U5.9.5/K5.15.0-122-generic
AR161W-S配置:
家庭内网网段:
192.168.1.0/24
AR161W-S管理IP:
192.168.1.1
目标:
在ECS上配置StrongSwan作为IPsec VPN服务器。
AR161W-S作为客户端连接到ECS的VPN。
通过VPN隧道访问家庭内网资源和管理AR161W-S。
二、实施步骤
1. 安装StrongSwan
在ECS上安装StrongSwan:
# 更新系统
sudo apt update
# 安装StrongSwan
sudo apt install strongswan strongswan-swanctl
2. 配置StrongSwan
编辑StrongSwan配置文件:
sudo nano /etc/ipsec.conf
添加以下内容:
config setup charondebug="ike 2, cfg 2" conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev2 authby=secret conn home-to-ecs left=45.23.85.245 # ECS公网IP leftsubnet=0.0.0.0/0 # 允许所有流量通过VPN leftid=45.23.85.245 # ECS公网IP作为ID right=%any # 允许任意客户端连接 rightsubnet=192.168.1.0/24 # 家庭内网网段 auto=add
配置预共享密钥(PSK):
sudo nano /etc/ipsec.secrets
添加以下内容:
45.23.85.245 %any : PSK "your_psk_here"
将
your_psk_here
替换为强密码。启用IP转发:
sudo nano /etc/sysctl.conf
确保以下行已启用:
net.ipv4.ip_forward=1
应用配置:
sudo sysctl -p
3. 配置iptables(可选但推荐)
如果系统未安装iptables,先安装:
sudo apt install iptables
配置iptables规则:
# 允许IPsec流量
sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 允许VPN隧道流量转发
sudo iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
# 启用NAT(将VPN流量转发到ECS的公网接口)
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# 保存iptables规则
sudo iptables-save | sudo tee /etc/iptables/rules.v4
4. 启动StrongSwan服务
sudo systemctl start strongswan
sudo systemctl enable strongswan
5. 配置AR161W-S作为IPsec客户端
登录AR161W-S管理界面:
访问
192.168.1.1
,输入管理员账号密码。
配置IPsec VPN:
进入VPN > IPsec VPN,添加新配置:
远程网关:
45.23.85.245
预共享密钥:
your_psk_here
本地子网:
192.168.1.0/24
远程子网:
0.0.0.0/0
保存并启用配置。
测试连接:
在AR161W-S上启动IPsec VPN,检查状态是否显示“已连接”。
6. 异地访问家庭资源
在异地设备上安装VPN客户端:
使用StrongSwan或其他支持IPsec的客户端(如Windows内置VPN、iOS/Android的StrongSwan客户端)。
配置VPN连接:
服务器地址:
45.23.85.245
预共享密钥:
your_psk_here
远程子网:
192.168.1.0/24
访问家庭资源:
连接VPN后,通过内网IP(如
192.168.1.x
)访问家庭设备。
三、验证与调试
检查VPN连接状态:
sudo swanctl --list-conns sudo swanctl --list-sas
测试连通性:
ping 192.168.1.1
查看日志:
sudo journalctl -u strongswan -f
四、总结
iptables的作用:
iptables用于控制流量转发和NAT,确保VPN流量正确路由到家庭网络。虽然非必须,但强烈建议安装并配置以增强安全性。安全性建议:
使用强密码作为PSK。
定期更新StrongSwan和系统补丁。
限制ECS安全组仅允许VPN端口(500/4500)访问。
通过以上步骤,您可以成功搭建IPsec VPN,并通过阿里云ECS访问家庭资源和管理AR161W-S路由器。