В первую очередь необходимо заново собрать ядро с поддержкой IPSEC
options IPSEC
options IPSEC_DEBUG
device crypto
bsd$ sudo make -C /usr/src/ buildkernel KERNCONF=ipfw0.kern
bsd$ sudo make -C /usr/src/ installkernel KERNCONF=ipfw0.kern
bsd$ sudo init 6
bsd$ whereis -s ipsec-tools
bsd$ sudo make -C /usr/ports/security/ipsec-tools/ -D BATCH install clean
При установке пакета не выполняется никаких первоначальных настроек, поэтому нужно скопировать файл конфигурации, создать файл лога, определить ротацию лога и прописать запуск при загрузке системы (без ipsec racoon загружаться не будет)
bsd$ sudo cp /usr/local/share/examples/ipsec-tools/racoon.conf /usr/local/etc/racoon/
bsd$ sudo touch /var/log/racoon.log
bsd$ echo 'racoon_flags="-l /var/log/racoon.log"' | sudo tee -a /etc/rc.conf
bsd$ echo '/var/log/racoon.log 600 7 100 * JC' | sudo tee -a /etc/newsyslog.conf
bsd$ sudo /etc/rc.d/newsyslog restart
bsd$ echo 'racoon_enable="YES"' | sudo tee -a /etc/rc.conf
bsd$ echo 'ipsec_enable="YES"' | sudo tee -a /etc/rc.conf
bsd$ echo 'ipsec_file="/etc/ipsec.conf"' | sudo tee -a /etc/rc.conf
Чтобы избежать чтения логов запуска сервиса, целесообразно в файле конфигурации racoon.conf сразу заменить все вхождения @sysconfdir_x@ на директорию /usr/local/etc/ и, в случае соединения по парольной фразе, необходимо установить соответствующие разрешения для файла, содержащего пароль
bsd$ sudo vi /usr/local/etc/racoon/racoon.conf
:%s/@sysconfdir_x@/\/usr\/local\/etc/g
bsd$ sudo chmod 0600 /usr/local/etc/racoon/psk.txt
Создание интерфейса gif0
bsd$ ifconfig gif0 create
bsd$ ifconfig gif0 inet6 -ifdisabled
bsd$ ifconfig gif0 inet6 tunnel 2001:5c0:1103:3400::1 2001:5c0:1508:d800::1 prefixlen 128
bsd$ ifconfig gif0 inet 10.0.14.233 10.0.2.15 netmask 0xffffffff
bsd$ cat /etc/ipsec.conf
flush;
spdflush;
spdadd 2001:5c0:1103:3400::1/128 2001:5c0:1508:d800::1/128 any -P out ipsec esp/tunnel/2001:5c0:1103:3400::1-2001:5c0:1508:d800::1/require;
spdadd 2001:5c0:1508:d800::1/128 2001:5c0:1103:3400::1/128 any -P in ipsec esp/tunnel/2001:5c0:1508:d800::1-2001:5c0:1103:3400::1/require;
bsd$ ifconfig gif0
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
tunnel inet6 2001:5c0:1103:3400::1 --> 2001:5c0:1508:d800::1
inet 10.0.14.233 --> 10.0.2.15 netmask 0xffffffff
bsd$ ifconfig em0
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
inet6 2001:5c0:1103:3400::1 prefixlen 64
FreeBSD 10.0-RELEASE: Mon Oct 6 12:30:05 MSK 2014