|
strongSwan – это программное обеспечение для создания виртуальной частной сети (VPN) на основе IPsec-протокола. Домашняя страница ПО: https://strongswan.org/.
Используется двухфакторная аутентификации пользователя:
Общая статья по работе с токенами: Ключевые носители (токены) PKCS в Astra Linux.
На сервере и клиентском узле настроить маршрутизацию пакетов, задав значения параметрам в файле /etc/sysctl.conf:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 net.ipv4.ip_forward=1 # Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host #net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1 # Do not accept ICMP redirects (prevent MITM attacks) #net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.accept_redirects=0 # Do not send ICMP redirects (we are not a router) #net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.send_redirects=0 |
Применить заданные параметрами настройки:
sudo sysctl -p |
Установить пакеты с strongSwan:
sudo apt install strongswan libstrongswan-extra-plugins |
Сгенерировать сертификаты на сервере:
Установить расширение для создания сертификатов:
sudo apt install strongswan-pki |
Создать закрытый ключ ca.key.pem и самоподписанный сертификат удостоверяющего центра ca.cert.pem:
sudo ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem sudo ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=CA" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem |
Создать закрытый ключ server.key.pem и сертификат сервера server.cert.pem:
sudo ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem sudo ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 3650 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=<server static IP address>" --san=”<server static IP address>” --san="<server static IP address>" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem |
Примечание: параметр --san в последней команде надо действительно указывать дважды, это не ошибка !
Настроить strongSwan-сервер, разместив в файле /etc/ipsec.conf:
config setup
charondebug="all"
strictcrlpolicy=no
uniqueids=yes
conn server
type=tunnel
auto=start
keyexchange=ikev2
authby=pubkey
left=<server static IP address>
leftcert=server.cert.pem
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
rightsourceip=<virtual IP subnet for clients> |
(Настроить доступ по сертикату на сервере) указать местоположение закрытого ключа strongSwan-сервера в файле /etc/ipsec.secrets:
: RSA "/etc/ipsec.d/private/server.key.pem" |
Перезапустить strongSwan-сервер для применения настроек:
sudo systemctl restart ipsec (sudo ipsec restart) |
Предполагается, что по статье настроен: Единый доступ к ключевым носителям разных производителей.