В дистрибутивах, основанных на Debian/Ubuntu, штатным решением для IPsec является пакет StrongSWAN (в т.ч. основанный на нём же плагин для Network Manager). Работающей конфигурации для стыковки StrongSWAN с OpenSWAN/LibreSWAN автору сего документа, на момент его написания, не известно.
Для соединения хоста с актуальными Ubuntu-производными дистрибутивами и устройства с NSG Linux 2.1 рекомендуется:
sudo apt-get install libreswan
Проверить результат можно командой:sudo ipsec initnss sudo certutil -A -i root.der -d sql:/var/lib/ipsec/nss/ -n "root" -t 'CT,,' sudo ipsec import client.p12
В выводе должно быть 2 строки: одна с локальным именем (nickname) root, явно назначенным выше, другая с локальным именем, взятым автоматически из поля CommonName сертификата. (Вручную можно назначить и другое имя, см. man certutil, но явной надобности в этом нет.)sudo certutil -L -d sql:/var/lib/ipsec/nss/
show.config
(или часть его, относящуюся к общим настройкам и к данному клиенту), но несколько несимметричных параметров потребуется изменить. В качестве сертификата указывается его локальное имя в NSS:
полученное на предыдущем шаге — т.е. по существу CommonName сертификата.leftcert=nickname
/32
(на любой интерфейс, но желательно — всегда поднятый) и рассматривать этот адрес в качестве сегмента защищённой сети, расположенного за этим же хостом как шлюзом. Удобно это сделать путём добавления/удаления желаемого адреса в файле /lib/systemd/system/ipsec.service:
......................... # Add IPsec private address to lo ExecStartPre=/sbin/ip addr add my.private.ip.address/32 dev lo # Check configuration file ExecStartPre=/usr/lib/ipsec/addconn --config /etc/ipsec.conf --checkconfig # Check for kernel modules ExecStartPre=/usr/lib/ipsec/_stackmanager start # Check for nss database status and migration ExecStartPre=/usr/sbin/ipsec --checknss # Check for nflog setup ExecStartPre=/usr/sbin/ipsec --checknflog # Start the actual IKE daemon ExecStart=/usr/lib/ipsec/pluto --leak-detective --config /etc/ipsec.conf --nofork ExecStop=/usr/lib/ipsec/whack --shutdown ExecStopPost=/sbin/ip xfrm policy flush ExecStopPost=/sbin/ip xfrm state flush ExecStopPost=/usr/sbin/ipsec --stopnflog ExecStopPost=/sbin/ip addr del my.private.ip.address/32 dev lo ExecReload=/usr/lib/ipsec/whack --listen ......................... }
sudo systemctl daemon-reload
sudo systemctl start ipsec.service sudo systemctl stop ipsec.service sudo systemctl restart ipsec.service
Для запуска или запрета запуска при старте системы, сооответственно:
(При установке LibreSWAN он автоматически ставится в состояние enable, но не стартует, потому что не находит ни одного файла конфигурации).sudo systemctl enable ipsec.service sudo systemctl disable ipsec.service
Обратно в узел ipsec
...
© Network Systems Group 2015–2024 | Отдел документации |