12
Ноя

Установка и настройка Strongswan на Centos 6 IKEv2

Устанавливаем репозиторий EPEL

Купить виртуалку под VPN можно тут

[sourcecode language=»plain»]yum install epel-release[/sourcecode]

Устанавливаем StrongSwan

[sourcecode language=»plain»]yum install strongswan[/sourcecode]

Будем считать что у вас уже есть сертификат от Let’s Encrypt certificates, вам необходимо создать симлинки к ним в каталог strongswan

[sourcecode language=»plain»]ln -s /etc/letsencrypt/live/hd.zp.ua/fullchain.pem /etc/strongswan/ipsec.d/certs/fullchain.pem
ln -s /etc/letsencrypt/live/hd.zp.ua/privkey.pem /etc/strongswan/ipsec.d/private/privkey.pem
ln -s /etc/letsencrypt/live/hd.zp.ua/chain.pem /etc/strongswan/ipsec.d/cacerts/chain.pem[/sourcecode]

Если VestaCP или Hestia:
[bash title=»код»]ln -s /home/admin/conf/web/ssl.hd.zp.ua.crt /etc/strongswan/ipsec.d/certs/fullchain.pem
ln -s /home/admin/conf/web/ssl.hd.zp.ua.ca /etc/strongswan/ipsec.d/cacerts/chain.pem
ln -s /home/admin/conf/web/ssl.hd.zp.ua.key /etc/strongswan/ipsec.d/private/privkey.pem[/bash]

Вместо hd.zp.ua ваш домен

Конфиг strongswan

Редактируем конфиг /etc/strongswan/ipsec.conf

[sourcecode language=»plain»]
config setup
uniqueids=no
charondebug = ike 3, cfg 3

conn %default
dpdaction=clear
dpddelay=35s
dpdtimeout=2000s

keyexchange=ikev2
auto=add
rekey=no
reauth=no
fragmentation=yes
compress=yes

### left — local (server) side
# filename of certificate chain located in /etc/strongswan/ipsec.d/certs/
leftcert=fullchain.pem
leftsendcert=always
leftsubnet=0.0.0.0/0,::/0

### right — remote (client) side
eap_identity=%identity
rightsourceip=10.1.1.0/24
rightdns=8.8.8.8

type = tunnel

conn ikev2-mschapv2
rightauth=eap-mschapv2

conn ikev2-mschapv2-apple
rightauth=eap-mschapv2
leftid=hd.zp.ua
[/sourcecode]

Пользователи для подключения у нас содержатся в этом файле /etc/strongswan/ipsec.secrets

[sourcecode language=»plain»]#filename of private key located in /etc/strongswan/ipsec.d/private/
: RSA privkey.pem

# syntax is `username : EAP "plaintextpassword"`
rusty : EAP "IAmRustyTheMoodle"[/sourcecode]

Открываем порты для IKEv2 трафика

[sourcecode language=»plain»]iptables -I INPUT -p udp —dport 500 -j ACCEPT
iptables -I INPUT -p udp —dport 4500 -j ACCEPT
iptables -I INPUT -p esp -j ACCEPT[/sourcecode]

Настроим преобразование адреса источника, так чтобы VPN трафик, исходящий из VPN сервера в Интернет, выглядел бы так, что сервер является его источником

[sourcecode]iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE[/sourcecode]

Поскольку речь идет про дополнительные заголовки, могут возникнуть проблемы с IP фрагментацией. Для того чтобы этого избежать, нужно указать MSS используемый при установке TCP соединения, чтобы сегмент вмещал в себя пакет целиком. Но у меня работает и без этого

[sourcecode language=»plain»]iptables -t mangle -I FORWARD -p tcp -m policy —pol ipsec —dir in —syn -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360
iptables -t mangle -I FORWARD -p tcp -m policy —pol ipsec —dir out —syn -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360[/sourcecode]

В /etc/sysctl.conf добавляем

[sourcecode language=»plain»]net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0[/sourcecode]

Применяем изменения sysctl -p

Добавляем в автозапуск

[php]
chkconfig strongswan on
service strongswan start[/php]

[php][root@r ~]# swanctl -L
ikev2-mschapv2: IKEv2
local: %any
remote: %any
local public key authentication:
id: CN=hd.zp.ua
certs: CN=hd.zp.ua
remote EAP authentication:
ikev2-mschapv2: TUNNEL
local: 0.0.0.0/0 ::/0
remote: dynamic
ikev2-mschapv2-apple: TUNNEL
local: 0.0.0.0/0 ::/0
remote: dynamic[/php]

[php][root@r ~]# strongswan listcerts

List of X.509 End Entity Certificates

subject: "CN=hd.zp.ua"
issuer: "C=US, O=Let’s Encrypt, CN=Let’s Encrypt Authority X3"
validity: not before Oct 25 02:14:09 2019, ok
not after Jan 23 01:14:09 2020, ok (expires in 71 days)
serial: 03:d4:fb:ce:a0:31:ed:a1:23:9d:32:8c:76:70:de:8f:95:a8
altNames: hd.zp.ua
flags: serverAuth clientAuth
OCSP URIs: http://ocsp.int-x3.letsencrypt.org
certificatePolicies:
2.23.140.1.2.1
1.3.6.1.4.1.44947.1.1.1
CPS: http://cps.letsencrypt.org
authkeyId: a8:4a:6a:63:04:7d:dd:ba:e6:d1:39:b7:a6:45:65:ef:f3:a8:ec:a1
subjkeyId: 07:8a:72:e1:e6:3f:87:86:3f:36:fe:f7:a4:ee:ca:09:86:70:a1:56
pubkey: RSA 4096 bits, has private key
keyid: bf:1f:3c:ae:f0:65:16:6b:35:fa:32:6f:c7:d0:3a:34:c7:2c:31:62
subjkey: 07:8a:72:e1:e6:3f:87:86:3f:06:fe:f7:a4:ee:ca:09:86:70:a1:56[/php]

Может возникнуть ошибка
swanctl -L
[bash title=»код»]unable to set openssl FIPS mode(2) from (0)
plugin ‘openssl’: failed to load — openssl_plugin_create returned NULL[/bash]

Правим /etc/strongswan/strongswan.d/swanctl.conf
[bash title=»код»]swanctl {

# Plugins to load in swanctl.
# load =
plugins {
openssl {
fips_mode = 0
}
}
}[/bash]

Обратная связь

    The average number of adverse effects was 3. T max is 23 minutes in females and 32 minutes in males. What other drugs will affect doxercalciferol Viagra natural sin receta. Archived from the original on 2009-08-14.

    Talk to your doctor before using this form of cefadroxil if you have diabetes. What should I tell my healthcare team before starting CABLIVI? There is no FDA guidance on the use of Tetracycline (oral) with respect to specific gender populations https://www.apotheke-rezeptfreie.com/. Opper K, Uder S, Song K Development of Heterogeneous and Homogeneous Platforms for Rapid Analysis of DNA-Protein Interactions.

    Contact Us