OpenVPN сервер Ubuntu с веб интерфейсом

IT статьи от Linux до Windows Server

Ни для кого не секрет, что OpenVPN — самый удобный и безопасный способ организовать VPN для офиса, для доступа к интернету из другой страны или просто для скрытия реального IP адреса. Но стандартная версия, которую можно скачать с официального сайта, дает возможность бесплатно использовать только два подключения, а платная версия начинается от 10 пользователей и стоит очень дорого. На момент написания статьи — 720$ за год на 10 клиентов!

Если Вы ищете сервер для установки OpenVPN, Я рекомендую Вам хостинг TimeWeb. Он быстрый, трафик безлимитный и совсем недорогой. Ловите ссылку: https://cloud.timeweb.com/?i=38369

В этой статье я расскажу Вам, как поднять собственный сервер OpenVPN на Ubuntu 20.04 и без проблем администрировать его и добавлять любое количество пользователей бесплатно.

Установка OpenVPN сервера на Ubuntu 20.04

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

sudo apt install openvpn easy-rsa

Оба пакета нужны как на сервере, так и на клиенте, если Вы будете подключать ubuntu к openvpn серверу.

Всё, больше ничего делать не требуется. Всё остальное будет сделано за нас в веб интерфейсе.

Установка WebMin для управления OpenVPN на Ubuntu 20.04

Теперь самое главное. Нужно установить веб интерфейс для управления OpenVPN. Для этого нужно выполнить несколько команд в терминале и добавить источники пакетов.

sudo nano /etc/apt/sources.list

Добавляем в этот файл две строки источников для пакетов webmin:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Теперь добавит GPG-ключ для возможности обновлений с новых ресурсов:

sudo wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Обновляем список пакетов репозиториев:

sudo apt update

И, наконец, устанавливаем WbMin для Ubuntu:

sudo apt install webmin

После всех данных манипуляций Вы сможете легко использовать ВебМин по адресу https://ip_адрес_сервера:10000

Обратите внимание, что открывать нужно именно https, так как http выдаст ошибку. Стандартный порт webmin 10000. Логин и пароль такой же, как при ssh подключении к Вашему серверу или к его графической оболочке, если Вы её используете.

Установка пакета управления OpenVpn серверов в WebMin на Ubuntu 20.04

Теперь нам предствоит самое интересное. Сайт данного модуля уже давно недоступен и разработчик выложил последнюю версию на github. Во всех статьях и на файлообменниках лежит старая версия «OpenVPN + CA», которая не работает с Ubuntu 20.04, но я нашел рабочий модуль.

Устанавливаем модуль Webmin OpenVPN + CA.

Для этого заходим в WbMin через веб интерфейс и переходим в Настройки WebMin, выбираем «Модули WebMin».

OpenVPN сервер Ubuntu с веб интерфейсом

Скачиваем модуль

Устанавливаем скачанный модуль, выбрав его на компьютере.

OpenVPN сервер Ubuntu с веб интерфейсом

Далее необходимо настроить центр сертификации, но прежде мы исправим главную проблему данной установки. Если мы оставим всё как есть и перейдем сразу к настройке, то стандартный клиент OpenVPN, скачанный с официального сайта, будет ругаться на то, что hash алгоритм слишком слабый( «You are using insecure hash algorithm in CA signature. Please regenerate CA with other hash algorithm«.), и Вы не сможете подключиться. Стандартный hash алгоритм модуля WebMin ставится md5, а его нужно поменять на sha256. Для этого переходим в файл конфига ssl.

sudo nano /etc/openvpn/openvpn-ssl.cnf

Находим строчку default_md = md5 и меняем md5 на sha256

default_md = sha256

Теперь официальный клиент OpenVPN не будет ругаться на слабый hash алгоритм( «You are using insecure hash algorithm in CA signature. Please regenerate CA with other hash algorithm».).

Настраиваем центр сертификации OpenVPN.

Переходим в «Службы», выбираем «OpenVPN + CA» и кликаем на «Certification Authority List»

OpenVPN сервер Ubuntu с веб интерфейсом

Ничего сложного вводить не нужно, можно ввести данные организации или оставить как есть. Главное ввести название центра сертификации. На это нам намекает сам автор текстом «changeme».

OpenVPN сервер Ubuntu с веб интерфейсом

Сохраняем и переходим к добавлению ключа сервера и ключей клиентов сервера ОпенВПН.

Добавление ключа сервера и ключа клиента в WebMin на Ubuntu 20.04

Переходим в «Key List» нашего нового центра сертификации как на скриншоте.

OpenVPN сервер Ubuntu с веб интерфейсом

Для сервера достаточно одного ключа, но его нужно обязательно создать. Называем его как угодно, для удобства лучше назвать «server», никаких паролей для него не создаём. Главное выбрать «server» в «Key Server»

Теперь переходим к созданию ключа для клиента. Для этого так же переходим в «Key List» как выше, но теперь в «Key Server» выбираем «Client» и задаем пароль для клиента. Назовите сертификат как Вам будет удобно, его понадобится выбрать позже.

Настраиваем OpenVPN Server в WebMin на Ubuntu 20.04

Теперь нам необходимо создать сам сервер OpenVPN, точнее его конфигурацию.

Переходим в «VPN List» для добавления конфига сервера OpenVPN

OpenVPN сервер Ubuntu с веб интерфейсом

ВЫбираем наш центр сертификации и нажимаем «New VPN Server»

OpenVPN сервер Ubuntu с веб интерфейсом

Настроек здесь очень много и если Вы уже ранее имели опыт с OpenVPN, то Вы уже знаете что и куда ввести, поэтому я покажу только основные настройки. Нам нужно дать название нашему серверу, выбрать порт, который по умолчанию 1194, выбрать наш сертификат сервера, задать пул IP адресов, которые будут выдаваться клиентам сервера и выбрать шифрование. Так же рекомендую включить management, чтобы видеть подключенных клиентов. Порт можно ввести любой, например, 7505.

OpenVPN сервер Ubuntu с веб интерфейсом

Сохраняемся и переходим к шагу добавления клиентов.

Клиентов можно добавить только после добавления сертификатов клиентов!

Переходим обратно в VPN List, и уже видим наш OpenVPN Server. Нажимаем на Client List.

OpenVPN сервер Ubuntu с веб интерфейсом

Нажимаем на кнопку «New VPN Client» и добавляем клиента. Здесь обязательно нужно выбрать сертификат клиента и вписать внешний IP адрес сервера для подключения.

OpenVPN сервер Ubuntu с веб интерфейсом

Сервер готов к запуску. Теперь просто переходим к VPN List и выбираем справа Start в столбце Action нашего OpenVPN Сервера.

Скачиваем готовый конфиг в WebMin OpenVPN Server

теперь переходим обратно в Client List и скачиваем полный .ovpn файл нашего сервера для клиента.

OpenVPN сервер Ubuntu с веб интерфейсом

Данный файл можно просто импортировать в официальный клиент OpenVPN и подключиться, введя пароль клиента, который мы задавали при создании сертификата.

Дополнительная информация

Я не описывал в статье настройку маскарадинга пакетов OpenVPN сервера, настройку ufw и iptables. Если Вам нужна помощь, пишите в комментарии, обязательно отвечу.

Оцените статью
( 4 оценки, среднее 5 из 5 )
Добавить комментарий

  1. Фото аватара
    Иван

    А все, нашел. Нужно было включить sysctl -w net.ipv4.ip_forward=1

    Ответить
  2. Фото аватара
    Иван

    До этого был удачный опыт настройки openvpn, но без интерфейса администрирования было неудобно и поэтому нашел эту статью и переделал все как тут описано.
    После настройки была такая ситуация, что впн соединение устанавливалось, но мой ip адрес в интернете не менялся, трафик ходил напрямую, без впн.
    В интернете нашел настройку redirect-gateway def1. Она у меня была в старом работающем ВПН.
    Сделал эту настройку и после этого при подключенном ВПН просто нет соединения.
    Правила iptables в этой ОС почему то после установки пустые. Нашел как прописать маскардинг, но в iptables просто нет никаких запрещающих правил.

    Ответить
  3. Фото аватара
    Игорь

    Я не описывал в статье настройку маскарадинга пакетов OpenVPN сервера, настройку ufw и iptables. — Что это такое?)

    Ответить
    1. Фото аватара
      it-grafoman автор

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

      Ответить
  4. Фото аватара
    Buuug

    Все — ничего, но существующий опенвпн вебмин не видит

    Ответить
    1. Фото аватара
      it-grafoman автор

      К сожалению, да. Он не будет видеть OpenVPN, установленный не по данной инструкции.

      Ответить