IPsec sous debian avec strongswan
aptitude install strongswan strongswan-swanctl
Placer la CA dans /etc/ipsec.d/cacerts puis :
cd /etc/ipsec.d/cacerts/ ln -s myca.pem `openssl x509 -hash -noout -in myca.pem`.0
Placer le certificat dans /etc/ipsec.d/certs/
Placer la clé privée dans /etc/ipsec.d/private/
Il faut définir la clé privé dans /etc/ipsec.secrets sous le format ID : TYPE KEY. L'ID peut être vide, contenir une ip, un FQDN, user@FQSN, %any ou any6. TYPE est PSK ou RSA. KEY peut être soit une clé, soit un chemin vers une clé.
: RSA /etc/ipsec.d/private/mykey.key
ipsec.conf
De manière générale :
- left* correspond à la machine locale
- right* correspond à la machine distante
Les champs suivant sont à modifier :
- Définissez à left = l'ip de la machine locale (peut être une ip rfc1918)
- Définissez à right = l'ip de la machine distante (obligatoirement une ip accessible sur le réseau, donc pas d'ip rfc1918)
- Définissez à leftid une manière d'identifier la machine locale (IP, FQDN, etc). En cas d'authentification RSA, cet identifiant devra exister soit au champ CN soit au champ SubjectAltName du certificat local.
- Définissez à rightid une manière d'identifier la machine distante (IP, FQDN, etc). En cas d'authentification RSA, cet identifiant devra exister soit au champ CN soit au champ SubjectAltName du certificat distant.
conn ipsec1
reqid = 1
fragmentation = yes
keyexchange = ikev2
reauth = yes
forceencaps = no
mobike = no
rekey = yes
installpolicy = yes
auto = start
dpdaction = restart
dpddelay = 10s
dpdtimeout = 60s
left = 211.124.34.153
right = 92.119.29.26
leftid = nodeA.domain.tld
rightid = nodeB.domain.tld
ikelifetime = 28800s
lifetime = 3600s
ike = aes128gcm128-sha512-modp4096!
esp = aes128gcm128-sha256-modp2048!
leftauth = pubkey
rightauth = pubkey
leftcert="/etc/ipsec.d/certs/mycert.crt"
rightca="/CN=My Ca/ST=My Location/L=My City/O=My Company/OU=My Company Unit/"
leftsubnet = 10.66.10.2/30
rightsubnet = 10.66.10.1
mark = 42
leftupdown = /etc/ipsec.updown