OpenVPN на Ubuntu 14.04

За основу была взята статья, размещенная на хабре. Этот пост призван упростить установку OpenVPN сервера. отделив теорию от практики. Кроме того. на момент прочтения статьи я не понимал от какого пользователя должны были выполняться те или иные команды. Понятно, что # – root, а $ пользователь. Но $ – принадлежит какому пользователю? А еще мне нужно было разместить весь функционал в пределах одиного сервера. Я настоятельно рекомендую всё же прочитать и попытаться понять статью ибо лишним явно не будет.

И так, Устанавливаем сервер. ОС не имеет значения (винда не в счёт) ибо дело вкуса. Я выбрал Ubuntu LTS 14.04.3 на тот момент являющаяся последним стабильным релизом.

Обновляемся и устанавливаем необходимые пакеты.

Настраиваем синхронизацию времени

Создаем три пользователя. vpnoperator, ca, openvpn

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

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

Приводим файл openssl.cnf к такому виду:

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

Редактируем файл openvpn.conf

Генерим сертификаты, необходимые для работы openVPN:

Увидим что-то типа:

Важно запомнить, что напишите тут: Common Name (eg: your user, host, or server name) [server]:

Должно получиться что-то типа:

Пришло время запустить первый раз наш сервер:

Проверяем стартанул ли наш сервер:

Сервер у меня находится за NAT-ом и не имеет публичного IP адреса. Но пользователю мы будем отдавать в конфиге публичный адрес: 44.214.1.11 (здесь в тексте, фейковый, можете не пытаться подключиться) >8)

Если нет, лезем в /var/log/openvpn/openvpn-server.log и смотрим в чём порылась собака.

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

Для добавления пользователей:

Пример использования:

После выполнения данного скрипта будет создан каталог по имени пользователя в /fflash в который, в свою очередь, будут помещены созданные для нового пользователя файлы и сертификаты. Файлы ta.key и ca.crt в корне /fflash общие для всех пользователей. По этому они оставлены в данном каталоге за тем, чтобы при создании нового пользователя быть скопированными скриптом в каталог вновь создаваемого пользователя.

Нам остаётся создать пользовательский файл настроек, заархивировать каталог /fflash/developer и отдать файл пользователю.

Тут мы присваиваем аккаунту developer статический IP адрес 192.168.79.2 и отдаём необходимые этому пользователю маршруты.

Для удаления пользователя:

Каталог удаленного пользователя будет перемещён из /fflash/developer в /fflash/!developer. А файл отозванных сертификатов crl.pem будет скопирован в crl.pem.bk для того, чтобы можно было вернуть работоспособность ошибочно удаленному аккаунту пользователя.

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

а дальше используем одну из команд:

Have a nice day, как говорит OpenSuSE. 8)

1 Comment - Leave a comment
  1. […] многие скажут: — «Зачем mpd, если есть openvpn«?Я не буду отвечать на этот вопрос, дабы понимаю, что […]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

20 − одиннадцать =

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.


Перейти к верхней панели