IKEv2/IPSec — протокол VPN, встроенный в iOS, macOS, Windows и Android. Не требует сторонних клиентов. Хорош для мобильных — автоматически переподключается при смене сети.
sudo apt update
sudo apt install -y strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins
cd /etc/ipsec.d
ipsec pki --gen --type rsa --size 4096 --outform pem > cacert.key
chmod 600 cacert.key
ipsec pki --self --ca --lifetime 3650 \
--in cacert.key --type rsa \
--dn "CN=VPN CA" \
--outform pem > cacert.pem
ipsec pki --gen --type rsa --size 2048 --outform pem > server.key
chmod 600 server.key
ipsec pki --pub --in server.key --type rsa \
| ipsec pki --issue --lifetime 825 \
--cacert cacert.pem --cakey cacert.key \
--dn "CN=your-domain.com" \
--san your-domain.com \
--flag serverAuth --flag ikeIntermediate \
--outform pem > server.pem
ipsec pki --gen --type rsa --size 2048 --outform pem > client.key
chmod 600 client.key
ipsec pki --pub --in client.key --type rsa \
| ipsec pki --issue --lifetime 825 \
--cacert cacert.pem --cakey cacert.key \
--dn "CN=vpn-client" \
--flag clientAuth \
--outform pem > client.pem
openssl pkcs12 -export -inkey client.key -in client.pem \
-certfile cacert.pem -name "VPN Client" \
-out client.p12 -password pass:ВАШ_ПАРОЛЬ
sudo nano /etc/ipsec.conf
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn ikev2-vpn
auto=add
keyexchange=ikev2
left=%any
leftid=@your-domain.com
leftcert=server.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.10.10.0/24
rightdns=1.1.1.1,8.8.8.8
rightsendcert=never
eap_identity=%any
fragment=yes
dpdaction=clear
dpddelay=300s
dpdtimeout=1h
rightauth=eap-mschapv2— авторизация по логину/паролю (не по сертификату). Удобнее для клиентов.
sudo nano /etc/ipsec.secrets
: RSA "server.key"
vpn-user : EAP "ВAШ_ПАРОЛЬ"
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo nano /etc/ufw/before.rules
Добавить в начало:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
COMMIT
sudo systemctl enable strongswan
sudo systemctl restart strongswan
sudo systemctl status strongswan
sudo ufw allow 500/udp
sudo ufw allow 4500/udp
sudo ufw allow 1701/udp
cacert.pem и client.p12 на устройствоcacert.pem (Настройки → Безопасность → Установить сертификат)cacert.pem (Локальный компьютер → Доверенные корневые)# Статус
sudo ipsec statusall
# Логи
sudo journalctl -u strongswan -f
# Проверка портов
sudo ss -ulnp | grep -E '500|4500'
Последнее обновление: 2026-07-18