在阿里云ECS上使用StrongSwan搭建IPsec VPN,并通过跳板机访问家庭资源和管理AR161W-S路由器(iptables并不是必须的,但强烈建议安装并配置iptables以增强安全性),以下是详细的实施步骤和命令行操作:


一、环境准备

  1. ECS配置

    • 公网IP:45.23.85.245

    • 操作系统:Ubuntu 20.04/22.04(或其他支持StrongSwan的Linux发行版)

    • StrongSwan版本:U5.9.5/K5.15.0-122-generic

  2. AR161W-S配置

    • 家庭内网网段:192.168.1.0/24

    • AR161W-S管理IP:192.168.1.1

  3. 目标

    • 在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

  1. 编辑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
  2. 配置预共享密钥(PSK)

    sudo nano /etc/ipsec.secrets

    添加以下内容:

    45.23.85.245 %any : PSK "your_psk_here"

    your_psk_here替换为强密码。

  3. 启用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客户端

  1. 登录AR161W-S管理界面

    • 访问192.168.1.1,输入管理员账号密码。

  2. 配置IPsec VPN

    • 进入VPN > IPsec VPN,添加新配置:

      • 远程网关45.23.85.245

      • 预共享密钥your_psk_here

      • 本地子网192.168.1.0/24

      • 远程子网0.0.0.0/0

    • 保存并启用配置。

  3. 测试连接

    • 在AR161W-S上启动IPsec VPN,检查状态是否显示“已连接”。

6. 异地访问家庭资源

  1. 在异地设备上安装VPN客户端

    • 使用StrongSwan或其他支持IPsec的客户端(如Windows内置VPN、iOS/Android的StrongSwan客户端)。

  2. 配置VPN连接

    • 服务器地址45.23.85.245

    • 预共享密钥your_psk_here

    • 远程子网192.168.1.0/24

  3. 访问家庭资源

    • 连接VPN后,通过内网IP(如192.168.1.x)访问家庭设备。


三、验证与调试

  1. 检查VPN连接状态

    sudo swanctl --list-conns
    sudo swanctl --list-sas
  2. 测试连通性

    ping 192.168.1.1
  3. 查看日志

    sudo journalctl -u strongswan -f

四、总结

  • iptables的作用
    iptables用于控制流量转发和NAT,确保VPN流量正确路由到家庭网络。虽然非必须,但强烈建议安装并配置以增强安全性。

  • 安全性建议

    • 使用强密码作为PSK。

    • 定期更新StrongSwan和系统补丁。

    • 限制ECS安全组仅允许VPN端口(500/4500)访问。

通过以上步骤,您可以成功搭建IPsec VPN,并通过阿里云ECS访问家庭资源和管理AR161W-S路由器。

文章作者: Lukey
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 三多运维
企业信息化实践 IPsec VPN StrongSwan 阿里云
喜欢就支持一下吧