Установка OpenVPN-Access Server на Linux

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

Прекращение доступа пользователя к OpenVPN

Отозвать у пользователя доступ к OpenVPN можно в меню Сеть > VPN > Пользователи. Снимите флаг «OpenVPN-доступ» напротив нужного пользователя и нажмите «Сохранить».

Доступ у пользователя прекратится сразу, даже если у него было активное соединение.

В меню Защита > Сертификаты созданный ранее автоматический сертификат пользователя станет серым, с состоянием «сертификат отозван».

Внимание! Отозванный сертификат не рекомендуется удалять из модуля «Сертификаты», иначе он пропадет из списка отозванных и пользователь с таким сертификатом вновь получит доступ к OpenVPN.

При удалении из ИКС пользователя, который имеет доступ к OpenVPN, его сертификат также будет отозван.

Размещение файлов ключей

Раз уж в этой в этой статье я решил рассказать о настройке клиентской части OpenVPN, то будем думать, что файлы ключей шифрования у вас уже имеются (вам их выдал администратор OpenVPN-сервера). Количество и тип ключей зависит от того, как сконфигурирован OpenVPN-сервер, к которому вы подключаетесь. В этой статье предполагается, что  для шифрования и аутентификации используются три файла:

  • закрытый ключ шифрования клиента  в формате .pem (назовём файл );
  • подписанный центром сертификации сертификат клиента в формате .pem, (назовём файл );
  • сертификат центра сертификации сервера в формате .pem, которым был подписан файл (назовём файл )

Получив ключ и сертификаты, обязательно позаботьтесь об их безопасности. Хорошим решением будет размещение всего этого добра на флешке, зашифрованной, например, TrueCrypt. В этой статье будем полагать, что ключи и сертификаты размещены в каталоге /media/keys. Также, обязательно оставьте минимум прав доступа к каталогу с ключом и сертификатами:

$ sudo chown -R /media/keys $ sudo chmod 0700 /media/keys $ sudo chmod 0600 /media/keys/* # ls -la /media/keys drwx—— 2 root root 1024 2010-08-18 15:32 . drwx—— 5 root root 1024 2010-08-18 15:24 .. -rw——- 1 root root 1265 2010-08-18 22:27 -rw——- 1 root root 3821 2010-08-18 15:13 -rw——- 1 root root 887 2010-08-18 15:13

Веб менеджер OpenVPN клиентских ключей VPNFace Lite

О возросшем, у далёкого от сетевых технологий населения, спросе к магическим буквам VPN и их причинам уже даже шутить не интересно.

Читайте также:  37 полезных сервисов для копирайтеров и редакторов

На самом деле я даже рад тому, что люди начинают учиться основам компьютерных сетей (что такое впн, какой он бывает, и почему с ним начинают открываться разные сайты?), и, по возможности, помогаю.

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

Но любой программист должен быть ленив, чтобы не повторять одно и тоже многократно. Выполнение одних и тех же действий раз за разом — оттачивает навых, но убивает весь интерес развития и творчества (и время).

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

Так родился проект VPNFace — набор серверных скриптов для управления пользовательскими ключами OpenVPN серверов, и веб панель управления к ним.

А через несколько дней разработки, я поймал себя на мысли, что уже где-то 25% закладываемого функционала никогда не будут востребованы этим самым “обычным пользователем”, и к названию добавилась приставка Lite, а основной концепт проекта изменился с конструктора общего назначения на узкозаточеный инструмент, что заодно ещё и значительно сократило время разработки до релиза.

Конечно — ну никогда такого же не было — зачем ещё один OpenVPN управлятор? Сказать честно — мысль о других проектах впн менеджеров пришла ко мне в голову когда основное ядро уже работало, а я пилил всякие мелочи. Поначалу огорчившись, что так сглупил и не провёл даже минимального исследования (так как не люблю особо плодить велосипеды), но после изучения вышеперечисленых проектов, понял, что мой тоже имеет свою нишу.

Ключевые особенности:

  • Функциональный минимализм: обычному пользователю при взаимодействии с vpn в качестве администратора требуется всего несколько функций — создать ключ, заблокировать, и разблокировать. Вряд ли он подумает о том, что бы создать ещё один впн сервер, если у него есть работающий, или полезть менять данные центра сертификатов. Мало кому понадобятся красивые графики трафика, и функционал ентерпрайз сервера, при цели спокойно пользоваться телеграмом.
  • Полуфиксированная конфигурация: 80-и процентам пользователей необходимо одно и то же, и их не волнует какие ip адреса внути впн сетей (они даже не догадываются о том что они там есть), ещё 15% требуют немного больше, но, аналогично — одно и тоже, оставшиеся 5% пишут аналогичные штуки сами, реализовывая в них всё как им надо, так что о них можно не переживать. Но тем не менее панель можно вручную подключить к уже работающим openvpn серверам, или подправить данные сертификатов перед стандартной установкой.
  • Абсолютная непривязанность к хостинг компаниям или другим сторонним сервисам — копий в спорах о самом волшебном хостинге сломано не мало, это остаётся полностью на выбор пользователя. Скрипту более важна операционная система сервера — он написан под Ubuntu/Debian системы, но они есть у всех хостеров. Система спокойно встанет и во внутренней домашней сети, и в корпоративной.
  • Фиксированные адреса для клиентов

    Если вы проводили настройку по предыдущей статье, то у вас почти все готово. Если нет, то проверьте в файле C:\Program Files\OpenVPN\config\ наличие следующих записей: ifconfig-pool-persist «C:\\Program Files\\OpenVPN\\ccd\\» //Указываем файл с описанием сетей между клиентом и сервером. client-config-dir «C:\\Program Files\\OpenVPN\\ccd» //Указываем каталог с описаниями конфигураций каждого из клиентов. Теперь открываем файл и вносим в него записи вида: Имя сертификата,адрес, например: client_1,10.0.0.4 client_2,10.0.0.8 В openvpn нельзя просто так назначать какие захочешь адреса. В openvpn адреса разбиты на подсети из 4-ох адресов. Поэтому в файл добавляем адреса с номерами кратными 4. Реальный адрес компьютера для доступа при этом будет +2 от внесенного в список. Теперь при подключении клиента с сертификатом client_1 ‘этот компьютер всегда будет получать адрес 10.0.0.6, а компьютер с сертификатом client_2 — адрес Для начала немного сложно, но к этому быстро привыкаешь.

    Используем приложение OpenVPN

    О штатных возможностях «десятки» я расскажу далее в статье. Но начну с описания стороннего приложения для настройки vpn.

    Используем приложение OpenVPN
    Используем приложение OpenVPN
    Используем приложение OpenVPN
    • Сначала необходимо узнать, какая разрядность у Вашей ОС. Данная информация отображается в окне «Свойства», которое вызывается при выборе одноименного пункта в контекстном меню «Мой компьютер». Возможно два варианта. 64-х и 32-х разрядная система.
    Используем приложение OpenVPN
    Используем приложение OpenVPN
    Используем приложение OpenVPN

    Внимание! Перед установкой обязательно проверьте правильность указания системной даты и времени. Если настройки неправильны, то клиент не сможет соединиться с сервером!

    Используем приложение OpenVPN
    Используем приложение OpenVPN
    Используем приложение OpenVPN

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

    Установка происходит следующим образом:

    1) Подключаемся к серверу по SSH с правами root;

    2) В своём браузере переходим на официальный сайт OpenVPN, затем в Community. Во вкладке Downloads выбираем пункт Access Server Downloads;

    3) В появившейся странице выбираем раздел Access Server Software Packages;

    4) Выбираем операционную систему, которая соответствует установленной на VPS;

    5) Из появившегося списка возможных версий и разрядностей выбираем соответствующую установленной на сервере (для 32-разрядных ОС – 32bit, для 64-разрядных – 64bit) и копируем в буфер обмена ссылку на скачивание файла.

    Примечание: на изображении представлено контекстное меню браузера Mozilla Firefox.

    6) Возвращаемся в SSH консоль и скачиваем по скопированной ссылке необходимый пакет при помощи команды wget. Пример:

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

    # wget http:// -as-*.rpm

    7) Устанавливаем скачанный пакет:

    для RedHat:

    # rpm -ivh openvpn-as-*.rpm

    для Debian:

    # dpkg -i openvpn-as-*.deb

    где параметр «-i» инициализирует установку пакета, параметры «-v» и «–h» выводят детализированный процесс установки.

    8) Изменяем пароль для пользователя openvpn, который является администратором по умолчанию в данном сервисе:

    # passwd openvpn

    Вводим новый пароль и подтверждаем изменение.

    9) После успешного изменения пароля можно подключаться к веб-интерфейсу OpenVPN для изменения настроек согласно своим требованиям. По умолчанию, адрес подключения имеет следующий вид:

    Читайте также:  Как настроить ASIC-майнер для NiceHash: инструкция

    https://Х.Х.Х.Х:943/admin/ (где Х.Х.Х.Х – IP вашего сервера)

    10) Автоматические настройки и конфигурационные файлы для клиентского подключения возможно скачать подключившись по клиентской ссылке к OpenVPN, которая имеет следующий вид:

    https://Х.Х.Х.Х:943/ (где Х.Х.Х.Х – IP вашего сервера)

    В качестве логин-деталей используйте либо данные администратора openvpn, либо же другого пользователя, который присутствует в системе.

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

    Примечание: Если вы хотите, чтобы администратором по умолчанию был не пользователь с именем “openvpn”, то вы можете воспользоваться утилитой по изменению настроек ovpn-init, которая располагается на сервере в директории /usr/local/openvpn_as/bin/

    Для запуска данной утилиты необходимо перейти в данную директорию:

    cd /usr/local/openvpn_as/bin/

    и запустить саму утилиту:

    ./ovpn-init

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