Содержание
strongSwan
IKEv2 MTU Size IPv4/IPv6 : 1438/1422
Команды
Переподключить соединение:
sudo ipsec up connection-name sudo ipsec down connection-name
Перегрузить секреты:
sudo ipsec rereadsecrets
Перегрузить ipsec:
sudo ipsec restart
Статус подключений:
sudo ipsec status sudo ipsec statusall
Показать состояние и политики безопасности ipsec:
sudo ip xfrm state sudo ip xfrm policy
Сервер
Входящие порты UDP: 500,4500
Установить:
sudo apt install strongswan strongswan-pki libcharon-extra-plugins
Создать ca.crt и server.crt, server.key в PEM формате:
Сконфигурировать /etc/ipsec.conf:
Сконфигурировать /etc/ipsec.secrets
Добавить в sysctl:
Добавить правила в iptables с помощью if-up.d:
или добавить в автозагрузку с помощью iptables-persistent:
Strongswan - Mikrotik
Strongswan - Strongswan
Описание
Сеть 1:
IP 1: 1.1.1.1 Сеть 1: 172.16.0.0/24
Cеть 2:
IP 2: 2.2.2.2 Сеть 2: 172.16.2.0/24
Настройка
Создать psk:
openssl rand -hex 64
Сеть 1:
Cеть 2:
docker
Правила SNAT для работы сети докера с сетью ipsec на одном хосте
ipsec сеть к которой нужен доступ: 172.16.2.0/24 сети docker: 172.17.0.0/16,172.18.0.0/16 ip адрес интерфейса сети хоста для доступа к сети ipsec: 172.16.3.1 внешний интерфейс: eth0
iptables -t nat -I POSTROUTING 1 -o eth0 -d 172.16.2.0/24 -s 172.17.0.0/16,172.18.0.0/16 -j SNAT --to-source 172.16.3.1
https://unix.stackexchange.com/questions/544725/route-docker-container-traffic-through-ipsec
https://serverfault.com/questions/771108/allow-docker-containers-to-use-ipsec-vpn-on-host/810597#810597
Let's Encrypt
Ipsec с сертификатами Let's Encrypt и передачей маршрутов клиенту
Конфигурация (пример для домена vpn.domain.com):
255.255.255.255 - для запросов ДНС
- identity_lease - запрашивать ip адрес у DHCP по учётным данным из identity (ipsec.secret), для каждой учётной записи свой ip, если несколько подключений по одной учётке, то должно стоять «no» (по умолчанию)
Добавить интерфейс и настроить dnsmasq:
Добавить правила iptables для DHCP INFORM и NAT:
Получить сертификат:
https://docs.strongswan.org/strongswan-docs/5.9/howtos/forwarding.html
Автозагрузка интерфейса и правил:
Diffie-Hellman groups
| NAME | NUMBER | SYMMETRIC | RSA | KEYWORD |
|---|---|---|---|---|
| 1024-bit MODP Group with 160-bit Prime Order Subgroup | 22 | 80 | 1024 | modp1024s160 |
| 2048-bit MODP Group with 224-bit Prime Order Subgroup | 23 | 112 | 2048 | modp2048s224 |
| 2048-bit MODP Group with 256-bit Prime Order Subgroup | 24 | 112 | 2048 | modp2048s256 |
| 192-bit Random ECP Group | 25 | 80 | 1024 | ecp192 |
| 224-bit Random ECP Group | 26 | 112 | 2048 | ecp224 |
| 256-bit Random ECP Group | 19 | 128 | 3072 | ecp256 |
| 384-bit Random ECP Group | 20 | 192 | 7680 | ecp384 |
| 521-bit Random ECP Group | 21 | 256 | 15360 | ecp521 |
https://www.rfc-editor.org/rfc/rfc5114#section-3.2
https://www.rfc-editor.org/rfc/rfc5114#section-4
https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-8
https://docs.strongswan.org/docs/5.9/config/IKEv2CipherSuites.html#_diffie_hellman_groups
Ссылки
https://wiki.strongswan.org/projects/strongswan/wiki/ConfigSetupSection
https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection
https://wiki.strongswan.org/projects/strongswan/wiki/WindowsClients
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-20-04-ru
https://blog.ruanbekker.com/blog/2018/02/11/setup-a-site-to-site-ipsec-vpn-with-strongswan-and-preshared-key-authentication/
https://medium.com/the-10x-dev/how-to-setup-a-site-to-site-vpn-connection-with-strongswan-32d4ed034ae2
