Авторизация виндовых клиентов будет происходить по EAP, клиентов на Убунту - с помощью PSK.
1. Устанавливаем необходимые пакеты:
apt-get install strongswan libcharon-extra-plugins dnsmasq
Дополнительно для debian9: apt-get install strongswan-pki
2. Генерируем сертификаты. Можно пойти правильным путем и получить "честные" сертификаты у центра сертификации, типа Comodo. В данном случае вариант бюджетный - самоподписанные сертификаты. В принципе, они ничем не хуже, кроме того, что каждую клиентскую машину нужно настраивать вручную, для того, чтобы она доверяла нашей CA.
2.1 Закрытый ключ для CA
mkdir cert
cd cert
ipsec pki --gen > caKey.der
2.2 Генерируем самоподписанный сертификат CA
ipsec pki --self --in caKey.der --dn "C=CH, O=MyVPN, CN=MyVPN CA" --ca > caCert.der
2.3 Генерируем закрытый ключ сервера
ipsec pki --gen > peerKey.der
2.4 Генерируем сертификат для сервера
ipsec pki --pub --in peerKey.der | ipsec pki --issue --flag serverAuth --san <server_IP_or_FQDN> --cacert caCert.der --cakey caKey.der \
--dn "C=CH, O=MyVPN, CN=MyVPNServer" > peerCert.der
*для Windows обязательный аргумент --san, он должен совпадать с реальным IP адресом сервера, или его FQDN
2.5 Копируем сгенерированные файлы в соответствующие директории:
/etc/ipsec.d/private/peerKey.der
хранит закрытый ключ узла. Загрузку данного ключа следует настроить в ipsec.secrets
/etc/ipsec.d/certs/peerCert.der
хранит end-entity сертификат узла. Следует указать в ipsec.conf чтобы использовать.
/etc/ipsec.d/cacerts/caCert.der
хранит CA сертификат с помощь. которого были выпущены и подписаны клиентские сертификаы. Загружается автоматически.
3 Добавляем конфигурацию для клиентов на Windows:
3.1 В /etc/ipsec.conf:
conn win10
dpdaction=clear
dpddelay=35s
dpdtimeout=300s
fragmentation=yes
rekey=no
#left = server side
left=%any
leftsubnet=0.0.0.0/0
leftcert=peerCert.der
leftfirewall=yes
leftsendcert=always
right=%any
rightsourceip=10.1.1.2/32
rightdns=8.8.8.8
eap_identity=%identity
rightauth=eap-mschapv2
keyexchange=ikev2
auto=add
3.2 В /etc/ipsec.secrets
: RSA peerKey.der
test : EAP "abcd1234"
dpdaction=restart
dpddelay=35s
dpdtimeout=300s
rekey=no
left=<public_ip>
leftid=<public_ip>
leftsubnet=0.0.0.0/0
leftfirewall=yes
right=<public_ip>
rightid=<private_ip>
rightdns=8.8.8.8
rightsourceip=10.1.1.3/32
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
authby=secret
auto=add
Комментариев нет:
Отправить комментарий