配置StrongSwan用于建立IPsec VPN隧道的步骤如下:
安装StrongSwan
确保你的系统有以下依赖项安装:
sudo apt-get install -y strongswan strongswan-ipsec-tools
生成预共享密钥(PSK)
使用strongswan工具生成PSK:
strongswan --genpsk mysecrets
将生成的密钥文件保存,例如mysecrets.rsa。
配置服务器端配置文件
创建或编辑strongswan.conf文件(通常位于/etc/strongswan或/etc/strongswan.d/目录下):
%define DEFAULT_LOGLEVEL = debug %define DEFAULT_SYSLOG_TAG = netpriv %define IKE_SA = yes %define AH = yes %define ESP = yes %define PFS = no %define D-HOP = yes %define NATT = no %define FMWE = yes # 预共享密钥 define PSK = "mysecrets" define PSK_ID = "myid@mydomain" # 服务器IP和端口 define SERVER_IP = "server-ip" define SERVER_PORT = 59000 # IKE参数 define IKE_AUTH_METHOD = psk define IKE_PSK = "%PSK%" define IKE_ID = "%PSK_ID%" define IKE_GK = IPADDRESS define IKE_GQ = IPADDRESS define IKE_NATTrunc = yes define IKE_V1 = yes # IPsec参数 define IPsec_Host = "localhost" define IPsec_LCL = "tun" define IPsec_RR = "server-ip/24" # 路由 define IPsec_Route = "192.168.1./24"
配置客户端配置文件
创建或编辑客户端配置文件,例如strongswan-clients.conf:
# 客户端配置
strongswan { version=5.1.1; }
%define DEFAULT_LOGLEVEL = debug
%define DEFAULT_SYSLOG_TAG = netpriv
%define IKE_SA = yes
%define AH = yes
%define ESP = yes
%define PFS = no
%define D-HOP = yes
%define NATT = no
%define FMWE = yes
# 预共享密钥
define PSK = "mysecrets"
define PSK_ID = "myid@mydomain"
# 客户端IP和端口
define CLIENT_IP = "client-ip"
define CLIENT_PORT = 59000
# IKE参数
define IKE_AUTH_METHOD = psk
define IKE_PSK = "%PSK%"
define IKE_ID = "%PSK_ID%"
define IKE_GK = IPADDRESS
define IKE_GQ = IPADDRESS
define IKE_NATTrunc = yes
define IKE_V1 = yes
# IPsec参数
define IPsec_Host = "localhost"
define IPsec_LCL = "tun"
define IPsec_RR = "server-ip/24"
启用并测试服务
sudo ipsec --up strongswan
运行后,查看状态:
sudo ipsec --status
客户端连接测试
在客户端运行:
sudo ipsec --up strongswan
然后尝试连接到服务器:
sudo ipsec --connect
额外配置(可选)
-
D-HOP:在服务器配置中添加:
%define D-HOP = yes define DH_P = 2048 define DH_B = -q define DH_pass = "your-dh-passphrase"
-
NATTraversal:如果需要:
%define NATT = yes
连接测试
在服务器和客户端运行ipsec verify:
ipsec verify
后续优化
- 调整密钥长度和握手频率。
- 定期监控状态:
ipsec status。 - 考虑使用证书(PKI)而不是PSK。
安全注意事项
- 定期更换密钥。
- 检查日志文件:
ipsec --debug trace. - 保护私密密钥和证书。
完成以上步骤后,你应该能够成功建立一个安全的IPsec VPN隧道。









