VPN — различия между версиями

Материал из Корпоративная wiki Администрации города Волгодонски
Перейти к: навигация, поиск
(Особенности настройки OpenVPN в iOS)
м (Особенности настройки OpenVPN в iOS)
Строка 116: Строка 116:
  
  
Обязательно укажите пароль для экспорта. Установить контейнера без пароля на экспорт в связку ключей iOS не получится. Полученный контейнер передаем на устройство через электронную почту или Safari.
+
Обязательно указать пароль для экспорта. Установить контейнера без пароля на экспорт в связку ключей iOS не получится. Полученный контейнер передаем на устройство через электронную почту или Safari. Скачать клиент OpenVPN Connect можно из iTunes.
  
Скачать клиент OpenVPN Connect можно из iTunes.
 
 
Ограничения, присутствующие в приложении:
 
Ограничения, присутствующие в приложении:
 
* Размер файла настроек не может превышать 256KB. Тем не менее, этого должно быть достаточно даже для хранения файла конфигурации в унифицированном ovpn формате.
 
* Размер файла настроек не может превышать 256KB. Тем не менее, этого должно быть достаточно даже для хранения файла конфигурации в унифицированном ovpn формате.

Версия 13:56, 3 февраля 2017

OpenVPN

(англ. Virtual Private Network — виртуальная частная(закрытая) сеть)

Файл настройки сервера

Минимально рабочий вариант.

port 1194
proto udp
dev tun
topology subnet
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/OpenVPN_srv.crt
key /etc/openvpn/easy-rsa/keys/OpenVPN_srv.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.200.0 255.255.255.0"
push "route 192.168.7.0 255.255.255.0"
push "dhcp-option DNS 192.168.7.7"
push "dhcp-option DNS 80.254.107.129"
push "dhcp-option DOMAIN vlgd61.ru"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
mute 20

Файл настройки клиента

Минимально рабочий вариант.

client
dev tun
proto udp
remote 80.254.107.129 1194
resolv-retry infinite
nobind
key-direction 1
persist-key
persist-tun
comp-lzo
verb 3
mute 20
float
<ca>
Содержимое сертификата центра сертификации.
</ca>
<tls-auth>
Содержимое TLS ключа. Должно содержаться в секрете!
</tls-auth>

Создание ключей

Скопируем easy-rsa в каталог /etc/openvpn. Это гарантирует, что любые изменения в сценарии не будут потеряны при обновлении пакета.

mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

Отредактируйте /etc/openvpn/easy-rsa/vars

Ключевая пара удостоверяющего центра

Выполнить от пользователя имеющего права записи в /etc/openvpn/easy-rsa/keys/

cd /etc/openvpn/easy-rsa
./clean-all
source vars
./build-ca

После выполнения последней команды будут записаны файлы открытой и закрытой части ключа удостоверяющего центра в /etc/openvpn/easy-rsa/keys/

Ключевая пара сервера к которому мы будем подключаться

./build-key-server myservername

где myservername имя файла ключа.

Файл параметров Диффи-Хэлмана

./build-dh 

Ключ TLS аутентификации

openvpn --genkey --secret ta.key

Ключевая пара клиента

  • Импортировать из файла vars переменные окружения командой
source ./vars
  • Создать ключ клиента client1 командой
./build-key client1

После создания пары ключей клиента, на клиент, кроме файла настройки, необходимо также передать по защищённому каналу связи открытую и закрытую часть ключей клиента, открытую часть ключа удостоверяющего центра и ключ TLS аутентификации.

  • Отозвать ключ клиента
cd /etc/openvpn/easy-rsa
source ./vars
./revoke-full client1
Особенности настройки OpenVPN в iOS

Наиболее важный момент настройки заключается в том, что закрытый ключ клиента должен быть в формате RSA. Если вы делали все согласно инструкции на сайте OpenVPN, или у вас уже были готовые ключи, то их необходимо предварительно конвертировать. Для этого можно использовать openssl:

openssl rsa -in ios.key -out ios_rsa.key


Соберем все необходимые ключи и сертификаты в один PKCS#12 контейнер:

openssl pkcs12 -export -in ios.crt -inkey ios_rsa.key -certfile ca.crt -name ios -out ios.p12


Обязательно указать пароль для экспорта. Установить контейнера без пароля на экспорт в связку ключей iOS не получится. Полученный контейнер передаем на устройство через электронную почту или Safari. Скачать клиент OpenVPN Connect можно из iTunes.

Ограничения, присутствующие в приложении:

  • Размер файла настроек не может превышать 256KB. Тем не менее, этого должно быть достаточно даже для хранения файла конфигурации в унифицированном ovpn формате.
  • Поддерживаются только tun соединения из-за ограничений iOS VPN API.
  • Не поддерживается ряд директив в конфигурационном файле: dev tap, tls-remote, fragment, mssfix.
  • Не поддерживается работа клиентов без сертификатов. Эта возможность появится в будущем.
  • Возможно использовать только шифрование AES или Blowfish. Связано это с тем, что данные алгоритмы больше адаптированы под архитектуру ARM. Таким образом достигается большая энергоэффективность.
  • Использование HTTP прокси настраивается на уровне настроек приложения, а не в конфигурационном файле.
  • Использование контейнеров PKCS#12 возможно только, если они импортированы в связку ключей iOS. Такое поведение является настоятельной рекомендацией разработчиков, потому, что в отличие от хранения закрытого ключа прямо в ovpn файле, оно обеспечивает более высокий уровень сохранности секретных данных. Особенно в случае использования устройства с jailbreak.

Ссылки