Данный учебник познакомит вас с процессом установки собственного OpenVPN Access Server на Ubuntu 22.04/20.04. OpenVPN представляет собой решение для виртуальных частных сетей с открытым исходным кодом, обладающее высокой стабильностью и адаптивностью.
Содержание статьи
- 1 Почему стоит создать собственный VPN-сервер?
- 2 Характеристики OpenVPN Access Server
- 3 Требования
- 4 Инсталлируйте OpenVPN Access Server на Ubuntu 22.04 или 20.04.
- 5 Администрирование OpenVPN Access Server с помощью панели управления.
- 6 Настройте DNS-сервер для клиентов VPN.
- 7 Установка и использование клиента OpenVPN на компьютере с Ubuntu 22.04/20.04
- 8 Клиент OpenVPN с графическим интерфейсом для Windows и macOS.
- 9 Скорость
- 10 Как настроить TLS-сертификат Let’s Encrypt для OpenVPN Access Server
- 11 Настройка Stunnel (по желанию).
- 12 Поиск и решение проблем.
- 13 Заключение
Почему стоит создать собственный VPN-сервер?
- Вы можете быть поставщиком VPN-услуг или системным администратором, что подразумевает необходимость настройки собственного VPN-сервера.
- Вы не ощущаете уверенности в политике VPN-провайдеров, которые не ведут журналы, и поэтому предпочитаете организовать собственное хостинг-решение.
- VPN можно применить для обеспечения сетевой безопасности. К примеру, если у вас есть собственный почтовый сервер, вы можете настроить обязательный вход пользователей только с IP-адреса VPN-сервера, добавив его в белый список в файерволе. Это поможет защитить ваш почтовый сервер от возможных хакерских атак.
- Возможно, вам интересно узнать, как функционирует VPN-сервер.

Характеристики 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.
sudo apt install apt-transport-https ca-certificates
В завершение, обновите список пакетов в вашей системе Ubuntu и установите сервер OpenVPN Access.
sudo apt update sudo apt install - y openvpn-as
После завершения установки вам станут доступны ссылки на панель администратора и клиентский интерфейс, а также имя пользователя и случайно сгенерированный пароль для входа.

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

Проверьте, какие порты находятся в режиме прослушивания.
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 Access Server предлагает адекватные предустановленные параметры.
- Весь клиентский трафик будет направляться через сервер OpenVPN.
- Клиент планирует применять сервер OpenVPN в роли DNS-сервера.
- Сервер OpenVPN обрабатывает клиентские запросы через TCP-порт 443 и UDP-порт 1194.
- Минимально допустимая версия TLS — 1.2.
Теперь нам нужно создать VPN-пользователей. Перейдите в Управление пользователями ->Разрешите пользователям создать новое имя профиля. Нажмите на кнопку «Сохранить настройки».

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

Кликните по кнопке «Сохранить настройки». После этого нажмите на кнопку «Обновить сервер», чтобы внести изменения в действие.
Настройте 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).

Скопируйте файл с расширением. 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 на отдельных строках, как указано ниже. Пожалуйста, замените их на свои реальные имя пользователя и пароль.

Сохраните изменения и закройте документ. После этого измените расширение файла. 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 успешно настроено.
Откройте сайт 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 Мбит/с.

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

Как настроить 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


