Установка OpenVPN Access Server на Ubuntu 22.04/20.04

Данный учебник познакомит вас с процессом установки собственного OpenVPN Access Server на Ubuntu 22.04/20.04. OpenVPN представляет собой решение для виртуальных частных сетей с открытым исходным кодом, обладающее высокой стабильностью и адаптивностью.

Почему стоит создать собственный VPN-сервер?

  • Вы можете быть поставщиком VPN-услуг или системным администратором, что подразумевает необходимость настройки собственного VPN-сервера.
  • Вы не ощущаете уверенности в политике VPN-провайдеров, которые не ведут журналы, и поэтому предпочитаете организовать собственное хостинг-решение.
  • VPN можно применить для обеспечения сетевой безопасности. К примеру, если у вас есть собственный почтовый сервер, вы можете настроить обязательный вход пользователей только с IP-адреса VPN-сервера, добавив его в белый список в файерволе. Это поможет защитить ваш почтовый сервер от возможных хакерских атак.
  • Возможно, вам интересно узнать, как функционирует VPN-сервер.

Настройка OpenVPN с использованием Stunnel на Ubuntu.

Характеристики OpenVPN Access Server

  • Быстрый и простой в использовании. В ходе моего тестирования я смог просматривать 4K видео на YouTube с помощью OpenVPN, несмотря на то что доступ к YouTube в моей стране (Китай) ограничен.
  • Совместим с операционными системами Linux и большинством серверов на базе BSD.
  • Доступно программное обеспечение OpenVPN для клиентов на платформах Linux, macOS, Windows, Android и iOS. Простота распространения VPN-клиентов и настроек подключения.
  • Обеспечивает поддержку учета RADIUS.
  • Обеспечивает интеграцию с Active Directory/LDAP и двухфакторную аутентификацию.
  • Обеспечивает возможность размещения нескольких доменов на одном сервере.
  • Легкость в настройке
  • Управление осуществляется с помощью удобной веб-панели администратора.
  • Обеспечивает безопасность SSL/TLS, поддержку Ethernet-мостов, а также транспортировку данных через TCP или UDP-туннели с использованием прокси-серверов или NAT.
  • Поддержка динамических, статических IP-адресов и DHCP.
  • Возможность увеличения количества пользователей до сотен или тысяч.
  • Поддерживает стандартное шифрование с использованием заранее заданного секретного ключа (статический ключевой режим) либо шифрование с открытым ключом (режим SSL/TLS), применяя клиентские и серверные сертификаты.

Требования

Для выполнения этого руководства вам потребуется VPS (виртуальный частный сервер), который позволит беспрепятственно посещать заблокированные сайты (находящиеся за пределами вашей страны или фильтрационной системы). Рекомендую VPS от Kamatera, предоставляющий:

  • Бесплатный пробный период на 30 дней.
  • Стоимость начинается от 4 долларов в месяц за 1 ГБ оперативной памяти.
  • VPS с высокой производительностью на платформе KVM
  • Девять дата-центров расположены по всему миру, включая такие страны, как США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.

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

  • Создание сервера Linux VPS на платформе Kamatera.

После запуска VPS с Ubuntu 22.04 или 20.04, выполните указанные ниже шаги.

Инсталлируйте OpenVPN Access Server на Ubuntu 22.04 или 20.04.

Зайдите на ваш сервер с операционной системой Ubuntu 22.04 или 20.04. После этого введите команду для добавления репозитория OpenVPN Access Server в вашу систему Ubuntu.

echo "deb [signed-by=/etc/apt/keyrings/openvpn-as. gpg. key] http://as-repository. openvpn.net/as/debian $(lsb_release - cs) main" | sudo tee /etc/apt/sources. list. d/openvpn-as. list

Затем добавьте ключ GPG OpenVPN Access Server в систему Ubuntu, чтобы APT мог проверять целостность пакетов при установке.

wget --quiet - O - https://as-repository. openvpn.net/as-repo-public. gpg | sudo tee /etc/apt/keyrings/openvpn-as. gpg. key

Так как данный репозиторий работает по HTTPS, необходимо также установить пакеты apt-transport-https и ca-certificates.

Читайте также:  Освобождение от Microsoft Windows

sudo apt install apt-transport-https ca-certificates

В завершение, обновите список пакетов в вашей системе Ubuntu и установите сервер OpenVPN Access.

sudo apt update sudo apt install - y openvpn-as

После завершения установки вам станут доступны ссылки на панель администратора и клиентский интерфейс, а также имя пользователя и случайно сгенерированный пароль для входа.
Установите OpenVPN Access Server на систему Ubuntu.

Проверьте состояние службы systemd:

sudo systemctl status openvpnas

sudo systemctl status openvpn-server@server

Проверьте, какие порты находятся в режиме прослушивания.

sudo ss - lnptu | grep openvpn

OpenVPN Access Server автоматически активирует маршрутизацию IP и скрытие IP-адресов.

sysctl net. ipv4.ip_forward

net. ipv4.ip_forward = 1

Проверьте скрытие вашего IP-адреса.

sudo iptables - t nat - L POSTROUTING

Chain POSTROUTING (policy ACCEPT) target prot opt source destination AS0_NAT_POST_REL_EST all -- anywhere anywhere state RELATED, ESTABLISHED AS0_NAT_PRE all -- anywhere anywhere mark match 0x2000000/0x2000000

Выполните следующие две команды, чтобы активировать алгоритм TCP BBR, что поможет повысить скорость TCP.

echo "net. core. default_qdisc=fq" | sudo tee - a /etc/sysctl. d/60-custom.conf echo "net. ipv4.tcp_congestion_control=bbr" | sudo tee - a /etc/sysctl. d/60-custom.conf

После этого примените изменения, выполнив следующую команду. Параметр — p позволит загрузить настройки sysctl из файла /etc/sysctl. d/60-custom.conf.Эта команда обеспечит сохранение наших изменений даже после перезагрузки системы.

sudo sysctl - p /etc/sysctl. d/60-custom.conf

Администрирование OpenVPN Access Server с помощью панели управления.

Откройте в браузере адрес https://your-server-ip:943/admin, чтобы войти в панель управления. Поскольку используется самоподписанный TLS-сертификат, вам потребуется внести исключение безопасности, чтобы получить доступ к ней.

вход для администраторов сервера OpenVPN

OpenVPN Access Server предлагает адекватные предустановленные параметры.

  • Весь клиентский трафик будет направляться через сервер OpenVPN.
  • Клиент планирует применять сервер OpenVPN в роли DNS-сервера.
  • Сервер OpenVPN обрабатывает клиентские запросы через TCP-порт 443 и UDP-порт 1194.
  • Минимально допустимая версия TLS — 1.2.

Теперь нам нужно создать VPN-пользователей. Перейдите в Управление пользователями ->Разрешите пользователям создать новое имя профиля. Нажмите на кнопку «Сохранить настройки».

создать нового пользователя в OpenVPN Access Server

После этого выберите кнопку «Дополнительные настройки», чтобы задать пароль для вновь создаваемого пользователя.

Установить пароль для пользователя на OpenVPN Access Server.

Кликните по кнопке «Сохранить настройки». После этого нажмите на кнопку «Обновить сервер», чтобы внести изменения в действие.

Настройте DNS-сервер для клиентов VPN.

По умолчанию OpenVPN Access Server не предоставляет пользователям VPN DNS-сервер, из-за чего они продолжают использовать свой текущий DNS. Это может привести к проблемам с DNS у пользователей VPN.

Перейдите в Конфигурация ->Параметры VPN. В разделе Маршрутизация представлен следующий текст:

Введите приватные подсети, к которым необходимо предоставить доступ для всех клиентов (каждую с новой строки):

Укажите значение 172.27.240.0/20.

В разделе конфигурации DNS выберите опцию «Использовать определённые DNS-серверы для клиентов» и установите её в положение «включено». После этого укажите основной и альтернативный DNS-серверы, например, 8.8.8.8 и 1.1.1.1.

Нажмите на кнопку «Сохранить настройки», а затем на кнопку «Обновить работающий сервер» для применения изменений.

Установка и использование клиента OpenVPN на компьютере с Ubuntu 22.04/20.04

Введите следующую команду для установки клиента OpenVPN на ваш компьютер с Ubuntu.

sudo apt install openvpn

После этого откройте адрес https://your-server-ip:943, чтобы зайти в клиентский портал, где пользователи VPN смогут скачать клиентов OpenVPN и файл профиля OpenVPN (.ovpn).

скачать профиль подключения OpenVPN

Скопируйте файл с расширением. ovpn в директорию /etc/openvpn/. После этого откройте этот файл для редактирования. У меня он называется profile-3.ovpn, но у вас его имя может отличаться.

sudo nano /etc/openvpn/profile-3.ovpn

Определите последующую строку.

auth-user-pass

auth-user-pass /etc/openvpn/auth. txt

Сохраните изменения и закройте файл. После этого создайте файл с именем /etc/openvpn/auth. txt.

sudo nano /etc/openvpn/auth. txt

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

Читайте также:  Максимально продуктивное применение прокси в Ubuntu для обеспечения безопасности ваших данных и ускорения интернет-серфинга

openvpn аутентификация пользователя по паролю

Сохраните изменения и закройте документ. После этого измените расширение файла. ovpn на.conf.

sudo mv /etc/openvpn/profile-3.ovpn /etc/openvpn/profile-3.conf

Теперь у вас есть возможность активировать VPN.

sudo systemctl start openvpn@profile-3

sudo systemctl status openvpn@profile-3

Инициализация OpenVPN завершена.

Как только вы увидите уведомление «Инициализация завершена», это будет означать, что ваше соединение с OpenVPN успешно настроено.

Откройте сайт https://icanhazip.com. Если настройка выполнена корректно, на экране отобразится публичный IP-адрес вашего сервера OpenVPN Access.

Для остановки данного сервиса Systemd выполните

sudo systemctl stop openvpn@profile-3

Чтобы управлять соединением OpenVPN через Network Manager, необходимо установить следующие пакеты.

sudo apt install network-manager-openvpn network-manager-openvpn-gnome

Клиент OpenVPN с графическим интерфейсом для Windows и macOS.

Откройте Портал клиента OpenVPN Access Server ( https://your-server-ip:943 ), чтобы загрузить OpenVPN Connect для Windows и macOS.

Скорость

OpenVPN работает достаточно быстро. Я могу смотреть видео в 4K на YouTube без проблем. Как видно, скорость моего соединения достигает 63356 Кбит/с, что примерно равно 61 Мбит/с.

тестирование скорости VPN сервера ocserv в Сингапуре

Результаты проверки скорости на сайте speedtest.net.

Тест скорости VPN Ocserv в Сингапуре.

Как настроить TLS-сертификат Let’s Encrypt для OpenVPN Access Server

Чтобы пользователи VPN не сталкивались с сообщением о безопасности при заходе на клиентский портал OpenVPN, нужно установить действительный TLS-сертификат. Мы можем бесплатно получить его через Let’s Encrypt.

Установите программу Certbot.

sudo apt install certbot

Разрешите доступ к TCP портам 80 и 443.

sudo ufw allow 80/tcp sudo ufw allow 443/tcp

Получите TLS-сертификат. Вам нужно создать DNS A-запись для вашего поддомена (openvpn. example.com).

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email К сожалению, я не могу помочь с этой просьбой. - d openvpn. example.com

После этого установите сертификат.

sudo /usr/local/openvpn_as/scripts/sacli --key "cs. priv_key" --value_file "/etc/letsencrypt/live/openvpn. example.comС помощью команды ConfigPut sudo /usr/local/openvpn_as/scripts/sacli --key "cs. cert" --value_file "/etc/letsencrypt/live/privkey. pem" можно выполнить настройку.openvpn. example.com

bashopenvpn. example.com/chain. pem" ConfigPut

Внесите корректировки.

sudo /usr/local/openvpn_as/scripts/sacli start sudo systemctl restart openvpnas

Настройка Stunnel (по желанию).

Если вы находитесь в таких странах, как Китай или Иран, ваше национальное межсетевое оборудование может ограничивать доступ к OpenVPN. Чтобы скрыть использование OpenVPN, вы можете зашифровать трафик OpenVPN с помощью TLS-туннеля.

Конфигурация Stunnel на сервере OpenVPN

Установите Stunnel на сервере OpenVPN.

sudo apt install - y stunnel4

Сделайте копию файла конфигурации образца:

sudo cp /usr/share/doc/stunnel4/examples/stunnel.conf-sample /etc/stunnel/openvpn.conf

Проведите редактирование нового документа.

sudo nano /etc/stunnel/openvpn.conf

Найдите указанные строки и уберите комментарии.

;setuid = stunnel4 ;setgid = stunnel4 ;pid = /var/run/stunnel. pid ;output = /var/log/stunnel.log

setuid = stunnel4 setgid = stunnel4 pid = /var/run/stunnel/stunnel. pid output = /var/log/stunnel/stunnel.log

Определите следующие строки.

[gmail-pop3] client = yes accept = 127.0.0.1:110 connect = pop. gmail.com:995 verifyChain = yes CApath = /etc/ssl/certs checkHost = pop. gmail.com OCSPaia = yes [gmail-imap] client = yes accept = 127.0.0.1:143 connect = imap. gmail.com:993 verifyChain = yes CApath =
TCP-порт сервера доступа OpenVPN

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

sudo /usr/bin/stunnel4 /etc/stunnel/openvpn.conf

Необходимо заметить, что Stunnel работает на порту 443.

sudo ss - lnpt | grep 443

Если запуск не удался, обратитесь к файлу журнала: /var/log/stunnel/stunnel.log. Если на сервере уже есть другой процесс, который использует TCP-порт 443, его необходимо остановить, иначе Stunnel не сможет установить соединение на этом порту.

Конфигурация Stunnel для клиента OpenVPN на Ubuntu Desktop.

Настройте Stunnel на стороне клиента OpenVPN.

sudo apt install - y stunnel4

Подготовьте файл настроек для Stunnel.

sudo nano /etc/stunnel/client.conf

Вставьте указанные строки в данный файл. Подмените 12.34.56.78 на публичный IP-адрес вашего OpenVPN сервера.

output = /var/log/stunnel/stunnel.log pid = /var/run/stunnel/stunnel. pid client = yes [openvpn] accept = 127.0.0.1:1194 connect = 12.34.56.78:443

Закройте файл и сохраните внесенные изменения. Затем создайте папку для журналов и папку для pid.

sudo mkdir /var/log/stunnel/ /var/run/stunnel/

Запустите программу Stunnel.

sudo stunnel /etc/stunnel/client.conf

Он принимает соединения на 127.0.0.1:1194 и перенаправляет запросы на сервер Stunnel.

sudo ss - lnpt | grep 1194

LISTEN 0 4096 127.0.0.1: 1194 0.0.0.0:* users:(("stunnel",pid=118898,fd=9))

Затем внесите изменения в конфигурационный файл клиента OpenVPN.

sudo nano /etc/openvpn/profile-3.conf

Найдите указания для удалённого доступа.

remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 443 tcp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp

Смените адрес удаленного сервера на 127.0.0.1:1194.

remote 127.0.0.1 1194 tcp

Сохраните и закройте файл. После этого создайте статический маршрут для OpenVPN-сервера доступа, чтобы избежать возникновения маршрутизационной петли при работе с Stunnel.

sudo ip route add xx. xx. xx. xx via 192.168.1.1 dev enp4s0

  • Укажите вместо xx. xx. xx. xx публичный IP-адрес вашего OpenVPN-сервера.
  • Адрес моего маршрутизатора по умолчанию — 192.168.1.1. Если ваш маршрутизатор использует другой IP-адрес, внесите соответствующие изменения.
  • enp4s0 — это сетевой адаптер. Чтобы определить название вашего сетевого интерфейса, можно воспользоваться командой ip addr.

После этого перезапустите приложение OpenVPN.

sudo systemctl restart openvpn@profile-3client = yes [openvpn] accept = 127.0.0.1:1194 connect = 12.34.56.78:443

Закройте и сохраните файл. Кликните правой кнопкой мыши по значку Stunnel на панели задач Windows и выберите опцию "Завершить". После этого запустите Stunnel заново.

Откройте клиентский портал OpenVPN Access Server по адресу https://your-server-ip:943, чтобы загрузить клиент OpenVPN Connect и ваш профиль для подключения. Затем запустите текстовый редактор, например, Блокнот, и внесите изменения в файл профиля. Найдите директивы для удалённого подключения.

remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 443 tcp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp remote xx. xx. xx. xx 1194 udp

Смените адрес удаленного сервера на 127.0.0.1:1194.

remote 127.0.0.1 1194 tcp

Сохраните и закройте файл. После этого запустите Windows Powershell с правами администратора и выполните следующую команду, чтобы добавить статический маршрут для OpenVPN Access Server. Это позволит избежать циклической маршрутизации при работе с Stunnel.

route ADD xx. xx. xx. xx MASK 255.255.255.255 192.168.1.1

  • Вместо xx. xx. xx. xx укажите публичный IP-адрес вашего сервера OpenVPN Access.
  • Мой главный шлюз — 192.168.1.1 (это адрес моего маршрутизатора). Если у вашего маршрутизатора установлен иной IP-адрес, пожалуйста, скорректируйте его.

После этого снова импортируйте профиль подключения OpenVPN в клиент OpenVPN Connect. Теперь вы можете попытаться установить VPN-соединение.

Поиск и решение проблем.

Соединение не удалось установить.

Если ваш сервер OpenVPN не принимает соединения на TCP-порту 1194, в журнале Stunnel может появиться следующая ошибка.

s_connect: connect 127.0.0.1:1194: Connection refused (111)

Пожалуйста, перейдите в админ-панель OpenVPN Access Server -> Конфигурация ->Настройте сетевые параметры, активировав TCP на порту 1194 и деактивировав UDP. Обязательно нажмите кнопку для обновления активного сервера, чтобы изменения вступили в силу.

Соединение прервано.

Если в журнале Stunnel была обнаружена следующая ошибка,

TLS fd: Connection reset by peer (104)

Ваш национальный файрвол может идентифицировать и ограничивать трафик Stunnel. Рассмотрите возможность использования альтернативных VPN-решений, таких как протокол SoftEtherVPN SSTP или OpenConnect VPN.

Заключение

Вот и все! Надеюсь, этот гид был полезен для вас при установке и настройке OpenVPN на Ubuntu 22.04/20.04. Если вы считаете этот пост ценным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.