Встала передо мною задача на скорую руку развернуть VPN сервер для доступа в корпоративную сеть. В организации VPN сервер (доступ по PPTP), настроенный на маршрутизаторе фирмы Cisco, уже существует, но, к сожалению, данный VPN сервер по объективным причинам не может быть задействован для доступа в корпоративную сеть. Поэтому появилась такая задача, как установить и настроить какой-нибудь альтернативный VPN сервер из подручных средств, ну и, естественно, очень быстро.


VPN сервер на основе СПО OpenVPN я, где-то год назад, настраивал. Но за год я подзабыл как и что нужно настроить, чтобы все заработало, да и еще за короткий срок. Поэтому я полез искать готовое решение, чтобы особо не заморачиваться, и чтобы все работало из коробки. И, к моему приятному удивлению, на оф. сайте проекта OpenVPN, я увидел, что есть готовый Virtual Appliance (VA) с уже практически настроенным OpenVPN на борту.

Полное название продукта: OpenVPN Access Server. Текущая версия 1.7. VA OpenVPN Access Server представляет собой небольшую виртуальную машину (2 vCPU, 1Gb RAM, 15Gb vHDD) с установленной в ней операционной системой Debian 5 (64 bit).

OpenVPN Access Server является платным решением. Без лицензии к этому VPN серверу смогут подключиться одновременно только два клиента. Как написано на оф. сайте продукта, лицензия на одного клиента стоит 5$, и минимальный заказ составляет 10 лицензий, то есть на 10 клиентов.

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


Для установки нам понадобится сервер, обязательно с поддержкой аппаратной виртуализации и установленным на нем гипервизором VMware ESXi версии 4 или 5 (не принципиально). У меня стоит VMware ESXi 4.1.


Deploy OVF Template

Первым делом запускаем vSphere Client'а и соединяемся с хостом ESXi. Теперь нужно развернуть виртуальную машину из OVF шаблона. Для этого заходим: File -> Deploy OVF Template. Появится окно, в котором нужно указать URL шаблона:


1.png

Затем нам покажут общую информацию о продукте OpenVPN Access Server:

2.PNG

После этого нас еще попросят указать Имя новой ВМ, выбрать хранилище, формат виртуального диска ВМ (Thin или Thick). Я выбрал так называемый "тонкий" диск:

3.PNG

Далее нам покажут окно со сводной информацией по разворачиваемому OVF шаблону, в котором нужно нажать Finish, и после этого начнется процесс загрузки шаблона с интернета. Когда ВМ будет готова, запускаем её. Процесс загрузки ОС в ВМ у меня прошел нормально, без каких-либо видимых ошибок:

4.PNG

Полдела уже сделано. Осталось совсем немного. Итак, теперь нам нужно залогиниться в ОС для продолжения настройки. Для этого в качестве логина указываем root, а в качестве пароля вводим openvpnas. После успешного входа в систему нужно:


  • изменить пароль для root'а:
# passwd root
  • задать сложный пароль для пользователя openvpn (данный пользователь необходим нам для администрирования OpenVPN Access Server через веб интерфейс):
# passwd openvpn
  • настроить сетевой интерфейс, указав IP адрес, маску и шлюз:
# nano /etc/network/interfaces

5.PNG

В принципе, всё. Осталось только перезагрузить ОС, выполнив команду:

# shutdown -r now

И теперь у вас есть практически настроенный VPN сервер. Вся остальная настройка производится с использованием веб интерфейса.


Настройка OpenVPN через Web Interface

Открываем свой любимый веб браузер и переходим по такому адресу: https://ваш_ip_адрес/admin. Появится приглашение на ввод логина и пароля. В качестве логина вводим openvpn, а пароль тот, что вы установили ранее, используя командную строку в консоли ВМ:

6.PNG

После успешной авторизации появится достаточно приятное окно с различными настройками VPN сервера. Описывать все настройки, я думаю, не имеет смысла, большинство из них интуитивно понятны. Я покажу только то, что я изменил, чтобы мой VPN сервер наконец-таки начал работать. Первым делом я перешел в настройки "VPN Mode" и там выбрал режим работы "Layer 3" (стоит по умолчанию). То есть, когда клиент будет соединяться с этим VPN сервером, будет создаваться VPN туннель третьего уровня, что для меня, в принципе, удобно.

Можно создать VPN туннель не третьего, а второго уровня. Сначала я так и сделал, но соединиться клиентом у меня не получилось. В логе выскакивала постоянно одна и та же ошибка. При поиске в интернете неисправности я обнаружил, что это косяк OpenVPN Access Server версии 1.7.1, которая стоит у меня. В связи с этим было принято решение делать VPN Layer 3.

Для своей VPN сети я отвел 30-ую подсеть (192.168.30.0/24). Когда клиент соединится, ему будет присвоен один из адресов 30-ой подсети, и, после этого, VPN клиент сможет обращаться к нужным ему внутрикорпоративным ресурсам. Ниже я приведу скриншот только тех настроек, значение которых я изменил:

OAS.PNG

Но на этом настройка пока что не закончена. Остался последний, так сказать, штрих. Нужно перейти в сетевые настройки сервера "Server Network Settings" и там указать IP адрес или имя VPN сервера, которое будет зашито в установочный пакет VPN клиента.

Немного остановлюсь и расскажу про логику работы всего этого хозяйства. Мой VPN сервер находится в корпоративной сети. Внутренний адрес у него - 192.168.33.4.


На центральном маршрутизаторе я сделал так, чтобы при соединении из интернета на наш внешний адрес 123.123.123.123 по 443-му порту происходил редирект на VPN сервер. Теперь, когда удаленному клиенту понадобится установить VPN соединение с центральным офисом, ему просто нужно будет открыть свой веб браузер и ввести там следующее: https://123.123.123.123. Появится приглашение на ввод логина и пароля, и, после успешной аутентификации, будет предложено скачать уже настроенный на соединение с VPN сервером VPN клиент.


После завершения закачки VPN клиента, его следует установить. При этом никаких вопросов задано не будет. Клиент просто установится и соединится с VPN сервером. Также значок OpenVPN появится в трее. При следующем соединении с офисом клиенту не нужно будет заново устанавливать VPN клиент. Нужно будет просто ввести логин и пароль.


Чтобы лучше понять все выше написанное, советую просмотреть вот этот видеоролик.

sns-2.PNG

Вы, наверное, еще не задались вопросом: "а как создавать новых vpn-пользователей?". А зря. Если вы думаете, что их можно будет добавлять через веб интерфейс - вы заблуждаетесь. Я тоже сначала так думал. Но после 10-минутного тыкания в web-интерфейсе я понял, что что-то здесь не так и полез читать документацию. Оказалось все достаточно тривиально. Нужно соединиться с VPN сервером через ssh и выполнить там следующую команду:

# adduser exampleuser

Вот так все просто. Только не понятно, почему бы не реализовать данную возможность в web-интерфейсе. На этом у меня всё.