SAsyncd est un démon permettant de synchroniser les SA (Security Association) d'IPsec entre 2 firewalls redondés via [CARP](/HowtoOpenBSD/CARP). Il est compatible avec les 2 démons [isakmpd](/HowtoISAKMPD) et [iked](/HowtoIKED)
## Configuration de sasyncd
SAsyncd se configure dans `/etc/sasyncd.conf` :
~~~
listen on 192.0.2.1
# IP addresses or hostnames of sasyncd(8) peers.
peer 192.0.2.2
# Track master/slave state on this carp(4) interface.
*`listen on` : IP sur laquelle sasyncd doit écouter ; le port TCP peut aussi être précisé en ajoutant `port` (exemple : "listen on X.X.X.X port Y") (défaut : 500)
*`peer` : définit le paire sasyncd ; peut être défini plusieurs fois
*`interface` : interface CARP sur laquelle sasyncd doit suivre l'état master/backup
*`group` : groupe CARP sur lequel sasyncd doit incrémenter le compteur *carpdemote* lorsqu'il détecte un changement d'état de l'interface définit précédemment (défaut : carp)
*`control` : démon que sasyncd doit contrôler, parmi `isakmpd`, `iked`, `all`, ou `none` (défaut : isakmpd).
*`sharedkey` : clé AES partagée pour chiffrer les échanges entre les peer ; le paramètre est obligatoire et doit avoir une longueur de 16, 24 ou 32 octets.
Pour les paramètres `listen on` et `peer`, il est conseillé d'utiliser le même réseau que celui utilisé pour `pfsync`.
La clé partagée peut être générée avec la commande `openssl rand -hex 32`. Ne pas oublier d'indiquer "0x" au début.
**Note** : en plus du temps de bascule de l'interface CARP, il faut prévoir une 10aine de secondes de temps de bascule de sasyncd, pouvant monter jusqu'à une 60aine de secondes.
Penser à redémarrer le démon concerné après la modification. Un reboot complet du serveur est souvent nécessaire pour que tout fonctionne correctement.
Ainsi, sasyncd définit si l'hôte est master ou backup d'après l'état de l'interface CARP, puis passe le démon défini en mode actif si l'interface est master. L'hôte master suit tous les changements locaux des SA et les synchronise à tous les paires sasyncd passifs.
Deux autres paramètres pour isakmpd ou iked ont également leur importance : `local` et `srcid`.
Le paramètre `local` indique quelle IP locale sera utilisée pour établir le tunnel ; il faut donc utiliser l'IP WAN CARP partagée entre les 2 hôtes sasyncd. Le paramètre `srcid` est un identifiant utilisé lors de l'établissement du tunnel et envoyé au pair IPsec ; par défaut, il correspond au FQDN de l'hôte et sera donc différent entre les 2 hôtes sasyncd. Il faut donc lui aussi le configurer pour utiliser l'IP WAN CARP partagée.
Pour isakmpd, via ipsec.conf :
~~~
[…]
local_ip_carp="198.51.100.254"
ike esp from $local_network to $remote_network local $local_ip_carp peer $remote_ip \