Процесс настройки и управления VPN на Linux-сервере обычно занимает немало времени. И если настроить можно один раз и забыть, то управлять пользователями VPN периодически приходится и хорошо бы, чтобы это мог делать и рядовой сотрудник компании без прав доступа к серверу и SSH вообще. Часто используется сценарий, когда с помощью VPN организуется доступ во внутреннюю сеть облака для подключения виртуальных серверов к корпоративной сети компании. Даже для себя быстро поднять VPN бывает полезно.
В этой статье мы буквально за несколько минут настроим OpenVPN сервер с возможностью простого управления VPN–серверами, пользователями и организациями и запустим все это в InfoboxCloud. Это облако присутствует в регионах Москва и Амстердам, благодаря чему можно использовать VPN как для корпоративных целей, так и для того, чтобы представиться жителем Нидерландов в сети (например для использования сервисов, которые не доступны на территории вашей страны).
На сервере мы будем использовать проект Pritunl, который представляет собой панель управления, автоматизирующую управление конфигурациями OpenVPN. Исходные тексты pritunl открыты и доступны на гитхабе. Бесплатной версии более чем достаточно для использования. Платная позволяет отправлять данные для доступа по email или настраивать автоматическую отказоустойчивость сервиса (что для InfoboxCloud не очень важно, т.к. само облако работает в отказоустойчивом кластере) и управлять балансировкой нагрузки между несколькими серверами.
В самое ближайшеее время в InfoboxCloud появится шаблон сервера с предустановленным Pritunl и можно будет создавь VPN–сервер за 1 клик.
Что нам потребуется для настройки
- Мы надеемся, что у вас уже есть учетная запись в InfoboxCloud. Если еще нет — создайте ее.
Затем создайте облачный сервер с Ubuntu 14.04 в панели управления (не забудьте серверу выделить 1 публичный IP–адрес и установить необходимую скорость канала — до гигабита). При создании сервера необходимо установить галочку «разрешить управление ядром ОС». После создания сервера на вашу электронную почту придут данные для доступа к серверу. Подключитесь к серверу по SSH. - Также нам потребуется домен или поддомен для организации точки входа в VPN. Запись A домена следует направить на ip–адрес созданного облачного сервера.
Устанавливаем Pritunl
Подключившись к серверу с Ubuntu 14.04 по SSH выполните команду:
apt-key update && apt-get update && apt-get -y upgrade && apt-get -y install python-software-properties && apt-get -y install software-properties-common && add-apt-repository -y ppa:pritunl && apt-get update && apt-get -y install pritunl
Настраиваем VPN–сервер в веб-интерфейсе
Откройте в браузере
https://адрес_домена_направленного_на_сервер:9700
В статье используется тестовый адрес
https://vpn.trukhin.com:9700
Предлагается настроить путь к базе данных.
Просто нажмите «Save». Откроется окно входа.
Используйте:
- Логин: pritunl
- Пароль: pritunl
После входа будет предложено изменить пароль (что сделать очень рекомендуется), указать данные SMTP сервера для отправки писем (не обязательно) и отображается ключ API для программного управления VPN. Подробная документация по API тут. Если вы оставите ip–адрес как есть — VPN будет работать через публичную сеть Infobox (отлично подходит для того, чтобы пользоваться интернетом из Нидерландов).
После заполнения формы вы попадете в панель управления. Пока что пользователей VPN в системе нет.
Перейдите в раздел «Users».
Добавьте организацию.
Теперь добавьте пользователя.
Пришло время наконец-то создать наш VPN–сервер. Нажмите на кнопку «Servers».
Нажмите «Add server».
Укажите имя VPN–сервера (должно совпадать с доменом, направленным на VPN–сервер!). Можно настроить DNS, выбрать способ работы VPN, разрешить нескольким устройствам подключаться одновременно и даже можно использовать двухфакторную аутентификацию с Google Authenticator.
Теперь прикрепите организацию (со всеми пользователями) к VPN–серверу, нажав «Attach Organization».
Нам уже предлагается наша организация и VPN-сервер. Просто нажмем «Attach».
Все готово! Нажмите «Start server» для запуска VPN–сервера.
Наш VPN–сервер успешно запущен!
Теперь осталось только скачать файл конфигурации OpenVPN для пользователя.
Особенности подключения к внутренней сети InfoboxCloud
Это очень часто используемый компаниями сценарий. Серверам кроме VPN–сервера и веб-сервера не назначается публичный ip–адрес и они не имеют доступа к внешней сети. Пользователь подключается по VPN и входит во внутреннюю сеть компании в облаке.
Для того, чтобы этот сценарий работал, для начала посмотрите в панели управления InfoboxCloud приватные ip–адреса серверов, к которым необходимо доступ.
При создании VPN–сервера в pritunl выберите режим сервера «Local Traffic Only» и установите cidr подсети, как показано на скриншоте.
После этого как и раньше, добавьте компанию к VPN–серверу, скачайте заново настройки для подключения пользователя и подключитесь к VPN. Теперь вы можете подключаться к серверам, доступным только из приватной сети InfoboxCloud.
Настраиваем клиентов OpenVPN
Для подключения можно использовать любой клиент OpenVPN, в том числе можно настроить подключение с роутера, если он поддерживает OpenVPN (например Mikrotik). Мы рассмотрим способы подключения с десктопа.
Настройка OpenVPN–клиента на Windows
Скачайте клиент OpenVPN для Windows отсюдa.
Установите клиент с настройками по умолчанию. В процессе согласитесь на установку драйвера OpenVPN.
Затем скачайте файл конфигурации OpenVPN из раздела пользователей вашего VPN–сервера:
Установите 7zip и распакуйте скачанный tar файл.
Скопируйте .ovpn файл в директорию
C:Program filesOpenVPNconfig
Запустите с рабочего стола с правами администратора OpenVPN Gui (в свойствах ярлыка можно установить запуск с правами администратора постоянно).
В системном трее нажмите правой кнопкой мыши на ярлык OpenVPN и выберите «Connect».
Соединение будет успешно установлено.
Настройка OpenVPN–клиента на OS X
Скачайте Tunnelblick отсюда и установите его.
Скачайте файл конфигурации OpenVPN из раздела пользователей вашего VPN–сервера:
Установите The Unarchiver, чтобы распаковать tar файл не открывая терминал.
Распакуйте tar файл. Затем сделайте двойной клик по файлу конфигурации .ovpn. Разрешите использование файла конфигурации только для себя или для всех пользователей (на выбор).
Введите пароль администратора.
В панели меню нажмите на иконку Tunnelblick и выберите «Connect».
Соединение будет успешно установлено.
Настройка OpenVPN–клиента на Ubuntu Desktop
Откройте терминал и введите следующую команду:
sudo apt-get install network-manager-openvpn
Скачайте файл конфигурации OpenVPN из раздела пользователей вашего VPN–сервера:
Загрузится файл tar. Перейдите в терминале в директорию, куда был загружен файл:
cd ~/Downloads/
Распакуйте файл (название файла будет соответствовать имени пользователя):
tar -xvf trukhinyuri.tar
Из-за ошибки в Network Manager мы не можем импортировать ovpn файл напрямую. Но есть временное решение:
- Создайте папку «OpenVPN» и скопируйте туда файл конфигурации ovpn, который вы распаковали ранее из архива.
- Откройте файл конфигурации ovpn из папки «OpenVPN» в текстовом редакторе.
- Создайте файл ca.crt в папке «OpenVPN»: скопируйте в него текст между
<ca> и </ca>
из файла конфигурации ovpn.
- Создайте файл client.crt в папке «OpenVPN»: скопируйте в него текст между
<cert> и </cert>
из файла конфигурации ovpn.
- Создайте файл client.key в папке «OpenVPN»: скопируйте в него текст между
<key> и </key>
из файла конфигурации ovpn.
- Создайте файл ta.key в папке «OpenVPN»: скопируйте в него текст между
<tls-auth> и </tls-auth>
из файла конфигурации ovpn.
- Откройте файл конфигурации ovpn из папки «OpenVPN» и отредактируйте его: удалите секцию
<ca>
и все ниже и добавьте в конец:
ca ca.crt cert client.crt key client.key tls-auth ta.key
Нажмите на иконку Network Manager и выберите «Edit connections»:
В Network manager нажмите Add и выберите «Import a saved vpn configuration» и нажмите «create»:
Выберите модифицированный файл конфигурации ovpn из папки «OpenVPN» и нажмите «Open»:
Войдите в «Advanced» -> «TLS Authentication» и установите «Key Direction» такой же, как в оригинальном файле конфигурации ovpn значение «key-direction». В нашем случае это «1».
Нажмите «Save» и закройте все окна Network manager. Подключитесь к VPN серверу, как показано на скриншоте ниже:
Вы успешно подключились к VPN из Ubuntu Desktop.
Заключение
В этой статье мы научились быстро разворачивать VPN–сервер с веб-интерфейсом в InfoboxCloud. Если вы хотите попробовать облачный сервер — пришлите нам свой email и мы предоставим бесплатную пробную версию облака на 15 дней.
Если вы не можете писать комментарии, задайте вопрос в Сообществе InfoboxCloud. В случае, если вы обнаружили ошибку в статье, автор ее с удовольствием исправит. Пожалуйста напишите в ЛС или на почту о ней.
Успешной работы!
Автор: infobox