VPN (Virtual Private Network) — технология, позволяющая обеспечить соединение поверх другой сети. Рассмотрим пример достаточно традиционный в нашем мире. Есть роутер, скажем, Asus-RT56U (прошивка Падаван) он имеет выделенный ( белый) IP- это сервер. И есть Asus RT-AC68C1 ( прошивка ddwrt) он не имеет выделенного (серый) IP и установлен за городом у жадного деревенского провайдера. Если у Вас возникнет необходимость, скажем в загородном доме установить видеонаблюдение, то без создания канала VPN никак не обойтись.

Назначение файлов для VPN:

Имя файла Нужен Назначение Секретность
ca.crt сервер и клиенты Root CA серт. Нет
ca.key ключ подписи Root CA ключ Да
server.crt сервер Сертификат Нет
server.key сервер Ключ Да
client1.crt клиент1 Сертификат Нет
client1.key клиент1 Ключ Да
dh.pem сервер Diffie Hellman Нет
ta.key сервер и клиенты tls-auth Да

Установка сертификатов на сервер

Общий алгоритм

  • Создать CA сертификат и личный ключ
  • Создать серверный личный ключ и сертификат, подписанный CA
  • Создать ключ Diffie–Hellman
  • По желанию создать TLS ключ

Далее войти по SSL в роутер и

 cd /etc/storage/openvpn/server

Создать CA сертификат и личный ключ

openssl req -nodes -x509 -days 3650 -newkey rsa:2048 -outform PEM -out ca.crt -keyout ca.key -sha1 -subj '/CN=OpenVPN CA'

где –days это количество дней действия сертификата.

Содержимое сертификата можно посмотреть

openssl x509 -text -noout -in ca.crt

Далее необходимо засекретить личный ключ

chmod 600 ca.key

Если есть желание засекретить личный ключ это можно сделать так

openssl rsa -aes256 -in ca.key -out ca.key.aes
 mv ca.key.aes ca.key
 chmod 600 ca.key

Пароль может быть от 4 до 1024 символов.

Создание серверного сертификата

openssl req -nodes -days 365 -newkey rsa:2048 -outform PEM -out server.csr -keyout server.key -sha1 -subj '/CN=test.com'

Далее создаем новый личный ключ (server.key) и подпись (server.csr), на 365 дней.

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -clrext -out server.crt -sha1

И далее

rm -f server.csr
chmod 600 server.key

Создаем ключ Diffie-Hellman

openssl dhparam -out dh1024.pem 1024

Это достаточно длительная процедура.

По желанию создаем TLS ключ

openvpn --genkey --secret ta.key
chmod 600 ta.key

После этого сохраняем все во флеш памяти роутера.

mtd_storage.sh save

На этом сервер настроен и на закладке web интерфейса должно быть приблизительно следующее

Установка сертификата клиента

После того как сервер настроен можно создать в меню VPN сервер – > Учетные записи клиентов клиента, указав ему статический IP туннеля и скачать конфигурацию клиента  Экспорт client.ovpn. Следует заметить что скачивание доступно только из локальной сети из внешней нет из позиций безопасности. Данный файл выглядит приблизительно так

client
dev tun
proto udp
remote   1.1.1.1  1194
resolv-retry infinite
nobind  -> в Additional Config
persist-key -> в Additional Config
persist-tun -> в Additional Config
auth SHA1
cipher BF-CBC
comp-lzo adaptive
nice 0 -> в Additional Config
verb 3 -> в Additional Config
mute 10 -> в Additional Config
;ns-cert-type server
<ca>   занести в 1 поле ключей без тега <ca>
-----BEGIN CERTIFICATE-----
TiBDQYIJAPVnUmpseCtFMA0GCSqGSIb3DQEBBQUAA4GBACfNbzN7Rb1IIAFbjw56
LX7eB5LTjZBxMASpMqFlGzvVtJWfKEbzh3u8oPtUjpwhNNUVPsXMwxPy7NqUp0qn
r2xTxaydeXvc/Qo3TonsauplEI0hiTthOJBZtu5UgM7tqFPq9PWVy/aKzKSdNVvL
wdqgInrFzAd3gllAIIrzkukd
-----END CERTIFICATE-----
</ca>
<cert> занести в 2поле ключей без тега <cert
-----BEGIN CERTIFICATE-----
MIIByDCCATGgAwIBAgIJAIiFUpfCD0K1MA0GCSqGSIb3DQEBBQUAMBUxEzARBgNV
ooGht0p2ziaSdnagAgTn6pvjMT9ow+SE44Q0X38VFTX+ctltr/xlcCSQaIC10QXa
lKtd5vsHt5cd5iQW9qsmTqTx2Cxatr1uyD99I6iTmmCgtI979LLNNowWtWOHrO0e
VFhGgZphOmUOcupuXEZNnjrNRpuB5lrGLYDi0Q==
-----END CERTIFICATE-----
</cert>
<key> занести в 3поле ключей без тега <key>
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMT6AJ27hd9uM9XJ
0r9HMYFXqPRWdkV3LVB8SCqPJ38enCI3OxQNgvlZCz7Y5r99ikgscIHSbtz+QtEl
j6cjLJUMHSGUzyo90O6TNHA3Gcph/bPHS0JLp5xCgEFYjJLrKfHXEj0qLZq5HCgB
Ec8PKZ3a8MN2k9vFRL4RZoU+fKFzAkAZlWDBGVVRMML6nJM0EmuKk/z4b5pM0vC7
Z+EEGf1SJrYRKa7Jz1h+yGq+2MFKTEpWDRdkP5N7WLfla6vhEkAhAkEAycsP9ES+
FyN09X6RRjyE5QMXarcyhDQ7y/ybTh6rBuBXmygzp0Oc1MqSAY7Nif8GGc6nnsca
6agwCELmveXYFw==
-----END PRIVATE KEY-----
</key>

В ddwrt на роутере клиента нужно заполнить соответствующие поля как показано на рисунках

Далее нажать кнопку Применить ( Apply Settings) и в Status -> OpenVPN должно быть приблизительно следующее

Если есть ошибки нужно все перепроверить. Адресация локальных сетей сервера и клиента в данном случай должна иметь разные подсети, например сервер 192.168.0.0/24, а клиент 192.168.1.0/24.

Добавить комментарий

Следующая запись Предыдущая запись