11 сентября 2015

Настройка OpenVPN-туннеля для IP-телефонов Yealink

У моделей SIP-телефонов Yealink T26 и старше есть функция, полезная  - работа через OpenVPN.

Как это работает?

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

Подключение удаленных клиентских терминалов с помощью этого протокола позволяет:

  • Упростить настройку защиты (достаточно настроить один порт 1194 на UDP\ TCP);
  • Гарантировать дополнительное шифрование и общий высокий уровень защиты переговоров;
  • Усилить барьер от проникновения в сеть злоумышленников – отключен порт 5060, крайне популярный у хакеров.

Процедура настройки сервера требует определенных навыков. Мы постарались составить для вас максимально наглядную инструкцию.

Исходные данные: OpenVPN-сервер разворачивают на компьютере с адресом 192.168.0.2, операционная система Windows 7 (ОС, в принципе, значения не имеет, есть различные версии VPN, в том числе и для Linux).

Часть I. Установка ПО и создание сетевого моста

Загрузите OpenVPN-приложение и начните установку. Все характеристики остаются по умолчанию. В процессе установки вам предложат установить TAP-адаптер – согласитесь.


В Сетевых подключениях задайте вновь созданному подключению название tap. Именно к нему вы далее привяжете OpenVPN-сервер.


Из двух существующих подключений создаете сетевой мост.


Обратите внимание, что в процессе подключение по локальной сети к компьютеру будет потеряно! 


Вновь подключитесь к компьютеру и введите IP-адрес сделанного вами моста. Изначально мост получает адрес от DHCP. Ниже установлен адрес 192.168.0.2.


Часть II. SSL-сертификат.

Поскольку протокол использует для взаимного опознавания узлов сертификаты SSL, вам придется создать:

  • Корневой сертификат Certificate Authority
  • Сертификат Server для OpenVPN
  • Сертификат Client, т.е. сертификат клиента (IP-телефона)

В Windows откройте командную строку. Внимание! Вам потребуется openssl 1 версии.

Certificate Authority (CA). Откройте C:\program files\OpenVPN\easy-rsa\ , введите init-config в командной строке.


Отредактируйте по образцу переменные файла vars.bat в этой же папке (оптимально – в редакторе Notepad++). Используйте подходящие данные своей компании.

Укажите:

  • страну (set KEY_COUNTRY= Rus)
  • область (set KEY_PROVINCE=SPB)
  • город (set KEY_CITY=Saint-Petersburg)
  • название организации (set KEY_ORG=Marineq)
  • контактный e-mail (set KEY_EMAIL=admin@marineq.ru)

Это не обязательное, но рекомендуемое действие.

Сохраните файл.

Для OpenVPN версии 2.2.0:

В файле openssl.cnf по образцу закомментируйте (поставьте # в начале строки) настройки пакетного режима


и данные сертификата PKCS#11


От имени администратора вновь в командной строке введите C:\program files\OpenVPN\easy-rsa >vars и C:\program files\OpenVPN\easy-rsa >clean-all (Процедура создания сертификатов описана в Readme.txt)


Аналогично введите команду build-ca и создайте сертификат CA в папке c:\Program Files\OpenVPN\easy-rsa\keys\, используя значения vars.bat. На все вопросы отвечайте Enter. В качестве Common Name укажите имя сервера (хоста) OpenVPN или любое подходящее название. В примере - просто server.


Создайте параметр Diffie-Hellman. Введите команду build-dh.


Введите build-key-server server. На вопросы отвечайте y (yes). В качестве Common Name укажите server.

Созданный сертификат хоста будет подписан корневым CA.


Теперь сгенерируйте клиентский сертификат. Введите build-key client. Common Name - client.


В результате в папке keys появятся все необходимые для работы сервера и туннеля сертификаты.


Часть III. Конфигурация OpenVPN

Откройте файл server.ovpn (папка С:\Program Files\OpenVPN\sample-config\ ) и введите следующие параметры (помечены красным)

1194 – стандартный порт для данного решения.

Вводим протокол UDP:


Далее указывает туннель – ведь мы уже создали сетевой мост.


Указываем имя, ранее присвоенное OpenVPN адаптеру:

Указываем пути к файлам сертификатов – обратите внимание на правильные значки кавычек.

Указываем путь к файлу с параметрами DH

Уточняем, что используем Ethernet мост, указываем адрес сервера (192.168.0.2) и маску (255.255.255.0), диапазон адресов для телефонов клиентов (192.168.0.100 192.168.0.254). Не забудьте исключить эти адреса на корпоративном DHCP сервере!

В результате длинного набора инструкция клиентам по DHCP назначается адрес своего DNS сервера. Здесь же можно назначить и другие опции DHCP:

Разрешаем абонентам напрямую звонить друг другу и использовать один на всех сертификат, процесс его создания описан во второй части:

Это не очень безопасно, зато заметно ускоряет и упрощает работу сети.

Сохраните отредактированный файл в папке c:\Program Files\OpenVPN\config\

Установите автоматический запуск для сервиса OpenVPN и запустите его.

)

Убедитесь, что сервис стартовал успешно. Проверьте файл server.log в папке c:\Program Files\OpenVPN\log\

Часть IV. Определение параметров OpenVPN-клиента

В файле client.ovpn (адрес c:\Program Files\OpenVPN\sample-config) укажите следующие данные:

- внешний IP адрес или имя, установленное для OpenVPN сервера. В примере: DDNS офисного сервера.

Некоторые роутеры, в том числе модели популярного бренда Zyxel, изменяют порт для пакетов исходящего трафика, из-за чего сбивается процесс взаимной аутентификации. Если у вашего маршрутизатора есть это свойство, укажите в файле параметр float. Также рекомендуем дополнительно просмотреть документацию к OpenVPN для устранения сопутствующих ошибок.

Далее указываем путь для сертификатов. В нашем примере клиент OpenVPN установлен на компьютер. При использовании ip-телефона потребуются другие данные, более того, аппараты различных марок используют различные файлы. Также обратите внимание на пунктуацию и двойные кавычки!

Сохраните файл в папке c:\Program Files\OpenVPN\config\. Папка должна иметь примерно такой вид.

Часть V. Тестирование VPN-подключения

Установите на другой компьютер (VPN клиент) пакет OpenVPN отсюда.

На Интернет-роутере опубликуйте порт UDP 1194. В примере опубликован этот порт для внутреннего IP адреса 192.168.0.2, на котором установлены серверы OpenVPN. В нашем примере – данные для Zyxel.

С серверного компьютера скопируйте в идентичные папки клиентского компьютера следующие файлы:

Files\OpenVPN\easy-rsa\keys\client.crt
Files\OpenVPN\easy-rsa\keys\client.key
Files\OpenVPN\easy-rsa\keys\ca.crt
Files\OpenVPN\config\client.ovpn

Запустите соединение, нажав на иконку OpenVPN GUI.

Если все вышеуказанные пункты выполнены надлежащим образом, VPN соединение должно установиться и ему должен быть присвоен IP-адрес из пула, указанного в конфигурации сервера в Части III. 

Часть VI. Необходимые модификации и подготовка TAR для работы на IP телефоне

Убедившись в стабильности VPN-соединения на примере двух ПК, мы переносим настройки на клиентский IP-телефон.

Действуем по следующей схеме:

  • в сопроводительных документах находим адреса файлов конфигурации в телефоне
  • вносим изменения
  • архивируем измененные файлы и сертификаты в нужном формате и заменяем их в телефоне
  • тестируем работу телефона с сервером OpenVPN

При настройке Yealink на работу OpenVPN существуют некоторые особенности:

  • архивированный файл конфигурации должен называться client.tar
  • файл с конфигурацией OpenVPN клиента называется vpn.cnf (а для компьютера этот файл называется client.ovpn)
  • сертификаты лежат в папке keys в файле vpn.cnf

Пути, по которым телефон ищет файлы конфигурации, следующие:

  • ca /yealink/config/openvpn/keys/ca.crt
  • cert /yealink/config/openvpn/keys/client1.crt
  • key /yealink/config/openvpn/keys/client1.key

P.S. Для Yealink серии T4 и выше и W52, а также для видеотелефона VP-530 пути сокращены до /config/openvpn/keys/...

Создаем пустой текстовый файл и вписываем туда:

client
dev tap
proto udp
remote 92.93.94.95
resolv-retry infinite
nobind
ca /yealink/config/openvpn/keys/ca.crt
cert /yealink/config/openvpn/keys/client_spb.crt
key /yealink/config/openvpn/keys/client_spb.key
dh /yealink/config/openvpn/keys/dh1024.pem
verb 3
mute 20

Сохраняем файл под именем vpn.cnf

Скопируем с клиентского компьютера папку c:\Program Files\OpenVPN\easy-rsa\keys\.

Папку keys и файл vpn.cnf добавьте в архив client.tar. Рекомендуем архиватор 7-Zip.

Часть VII. Загрузка TAR-архива (tarball) в IP -телефон и включение VPN- туннеля

Убедитесь, что модель телефона поддерживает OpenVPN. Загрузите в телефон свежий файл прошивки.

Через IP адрес телефона зайдите в Web-интерфейс, в раздел Сеть > Дополнительно.

Для VPN укажите адрес файла client.tar, который был создан в Части VI, и нажмите Импорт.

После установки конфигурации включите параметр VPN Использование, подтвердите изменения.

Вы можете включить VPN-туннель и через экранное меню телефона, предварительно загрузив client.tar.

Если все прошло успешно, на экране телефона загорится индикатор VPN.