В первую очередь необходимо заново собрать ядро с поддержкой 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

ipsec-tools: /usr/ports/security/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