赞
踩
IPSec全称Internet Protocol Security,是通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议集,IPSec的主要用途之一就是建立虚拟专用网络。
strongswan是基于IPSec的虚拟专用网络解决方案,它是一款开源软件,支持Linux 2.6和3.x的内核,IKEv1和IKEv2的密钥管理协议,以及各种认证方式、校验、加密算法。
strongswan官网有大量的测试案例:https://www.strongswan.org/testresults.html。
下文将介绍如何部署基于strongswan的IPSec虚拟专用网络。
strongswan主要的配置文件有3个:/etc/ipsec.conf,/etc/strongswan.conf,/etc/ipsec.secrets
config setup conn %default ikelifetime=60m // IPSec SA协商间隔 keylife=20m // ISAKMP SA协商间隔 rekeymargin=3m // 密钥更新间隔 keyingtries=1 // ISAKMP SA协商次数 keyexchange=ikev1 // IKE模式 ike=3des-md5-modp1024 // IKE算法 esp=3des-md5-modp1024 // esp算法 authby=secret // 认证方式 conn s2s left=10.0.0.10 // 本机IP leftsubnet=192.168.1.0/24 // 本机内网 leftid=@delta // 本机标识 right=10.0.0.20 // 对端IP rightsubnet=192.168.2.0/24 // 对端内网 rightid=@cisco // 对端标识 auto=add // 连接方式
上述是一个ipsec.conf配置案例,conn 表示一个策略,其中conn %default表示全局默认策略。
参数 | 说明 |
---|---|
ikelifetime | IPSec SA协商间隔 |
keylife | ISAKMP SA协商间隔 |
rekeymargin | 密钥更新间隔 |
keyingtries | ISAKMP SA协商次数 |
keyexchange | IKE模式,可选"ikev1,ikev2" |
ike | IKE算法,分3个部分组成,用"-"连接,第一部分加密算法:3des,aes128,aes192,aes256,第二部分认证算法:md5,sha1,sha256,第三部分DH算法:modp1024,modp1536 |
esp | esp算法,分3个部分组成,用"-"连接,第一部分加密算法:3des,aes128,aes192,aes256,第二部分认证算法:md5,sha1,sha256,第三部分DH算法:modp1024,modp1536 |
authby | 认证方式,可选"secret,pubkey,psk,rsasig,xauthpsk,xauthrsasig,never" |
left | 本机IP |
leftsubnet | 本机内网,该网段会走专用网络通道 |
leftid | 本机标识 |
right | 对端IP, |
rightsubnet | 对端内网,该网段会走专用网络通道 |
rightid | 对端标识 |
auto | 连接方式,可选"add,route,start,ignore","add"表示手动,"route"表示由连接触发,"start"表示自启,"ignore"表示忽略该策略 |
left|rightauth | 指定left,right认证方式,可选"pubkey,psk,eap,xauth",相当于细分authby |
left|rightauth2 | 指定left,right附加认证方式,可选"xauth" (IKev1) |
left|rightcert | 指定left,right证书,证书存放路径"/etc/ipsec.d/certs" |
dpdaction | dpd(对端失效检测)动作,可选"none,clear,hold,restart" |
dpddelay | dpd检测间隔时间 |
dpdtimeout | dpd检测超时时间 |
待补充 |
上述列举了一些常用的参数,所有参数可以查看 https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection
# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details
#
# Configuration changes should be made in the included files
charon {
load_modular = yes
plugins {
include strongswan.d/charon/*.conf
}
}
参数 | 说明 |
---|---|
charon.i_dont_care_about_security_and_use_aggressive_mode_psk | 用于aggressive mode + PSK模式 |
charon.filelog | 配置log文件 |
待补充 |
详询 https://wiki.strongswan.org/projects/strongswan/wiki/StrongswanConf
# /etc/ipsec.secrets - strongSwan IPsec secrets file
: PSK "12345678" // 匹配任意策略,其preshared key为12345678
1.1.1.1 2.2.2.2 : PSK "12345678" // 匹配"left=1.1.1.1 right=2.2.2.2"的策略
cisco : XAUTH "test" // 匹配id=cisco的策略,该策略xauth secret为test
: RSA "test.pem" // 匹配authtype为pubkey的任意策略
参数 | 说明 |
---|---|
PSK | [ ] : PSK |
RSA | : RSA [ | %prompt ],公钥文件必须在/etc/ipsec.d/private |
XAUTH | [ ] : XAUTH “” |
待补充 |
详询 https://wiki.strongswan.org/projects/strongswan/wiki/IpsecSecrets
准备工作:两台安装strongswan的ubuntu电脑,互相可以ping通。
假设这两台电脑分别为ubuntu1(IP:172.17.92.138),ubuntu2(IP:172.17.92.209)。
/etc/ipsec.conf 配置:
# ipsec.conf - strongSwan IPsec configuration file # basic configuration config setup conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev1 authby=secret conn c2c left=172.17.92.138 right=172.17.92.209 ike=3des-md5-modp1024 esp=3des-md5-modp1024 auto=add
/etc/strongswan.conf 配置:
# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details
#
# Configuration changes should be made in the included files
charon {
load_modular = yes
plugins {
include strongswan.d/charon/*.conf
}
}
/etc/ipsec.secrets 配置:
: PSK "12345678"
/etc/ipsec.conf 配置:
# ipsec.conf - strongSwan IPsec configuration file # basic configuration config setup conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev1 authby=secret conn c2c left=172.17.92.209 right=172.17.92.138 ike=3des-md5-modp1024 esp=3des-md5-modp1024 auto=add
/etc/strongswan.conf 配置:
# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details
#
# Configuration changes should be made in the included files
charon {
load_modular = yes
plugins {
include strongswan.d/charon/*.conf
}
}
/etc/ipsec.secrets 配置:
: PSK "12345678"
在两台电脑上面运行ipsec restart
重新载入配置,然后在任意一台运行ipsec up c2c
发起连接,连接成功如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M04iA5aZ-1596098783042)(http://i4.buimg.com/1949/87cabc3129aad83b.png)]
待补充
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。