Пошаговое руководство по настройке и конфигурации OpenVPN в Ubuntu 22.04
Полное руководство по настройке и конфигурированию сервера OpenVPN на Ubuntu 22.04 с соблюдением надлежащих мер безопасности и оптимизации.

Пошаговое руководство по настройке и конфигурации OpenVPN в Ubuntu 22.04

В этой статье вы узнаете, как установить и настроить сервер OpenVPN на Ubuntu 22.04. Руководство охватывает различные этапы, включая установку пакетов, настройку брандмауэра и советы по безопасности.
0 Акции
0
0
0
0
  1. Зачем нам устанавливать OpenVPN на Ubuntu 22.04?
  2. Предпосылки
  3. Часть первая — Установка OpenVPN и EasyRSA
  4. Часть 2 — Создание центров сертификации, ключей и сертификатов
  5. Часть 3 — Настройка сервера OpenVPN
  6. Часть 4 — Включение маршрутизации и NAT
  7. Настройки UFW (если включены)
  8. Часть 5 — Настройка службы OpenVPN
  9. Часть 6 — Создание клиентского файла (.ovpn) со встроенным сертификатом
  10. Раздел 7 — Управление пользователями, аннулирование сертификатов и безопасность
  11. Раздел 8 — Технические рекомендации и оптимизация приложений
    1. Для торговли/форекс и криптовалют
    2. Для игр
    3. Для искусственного интеллекта и рендеринга
  12. Раздел 9 — Сравнение местоположений и инфраструктуры
  13. Раздел 10 — Мониторинг и техническое обслуживание
  14. Быстрое устранение неполадок
  15. Краткое изложение и рекомендации по безопасности
  16. Преимущества предоставляемой инфраструктуры и местоположения.
  17. Часто задаваемые вопросы

Зачем нам устанавливать OpenVPN на Ubuntu 22.04?

Данное руководство представляет собой практическое и исчерпывающее пособие по настройке и конфигурации. OpenVPN На Убунту 22.04 Он предназначен для системных администраторов, специалистов по DevOps, трейдеров и геймеров. Пошаговый процесс включает установку пакетов, создание PKI с помощью EasyRSA, настройку сервера и клиента, настройку брандмауэра (ufw/iptables), включение маршрутизации и решений безопасности, таких как tls-cryptУправление и использование списков отзыва сертификатов (CRL). фейл2бан Это будет.

Предпосылки

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

  • Сервер Убунту 22.04 При наличии у пользователя доступа судо
  • Публичный IP-адрес или выделенный диапазон IP-адресов (при необходимости IPv4/IPv6)
  • Свободный порт (рекомендуется): UDP 1194 или использовать пользовательский порт, чтобы уменьшить вероятность сканирования.
  • Для базовой нагрузки требуется не менее 1 ГБ оперативной памяти; для корпоративного использования или сотен подключений необходимо увеличить ресурсы.

Часть первая — Установка OpenVPN и EasyRSA

Сначала обновите пакеты, а затем установите OpenVPN и EasyRSA.

sudo apt update && sudo apt upgrade -y
sudo apt install -y openvpn easy-rsa

Скопируйте шаблон EasyRSA и подготовьте PKI:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki

Часть 2 — Создание центров сертификации, ключей и сертификатов

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

./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
./easyrsa gen-dh
openvpn --genkey --secret /etc/openvpn/ta.key
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/crl.pem
chmod 644 /etc/openvpn/crl.pem

Файлы, необходимые для работы сервера:

  • /etc/openvpn/server.crt
  • /etc/openvpn/server.key
  • /etc/openvpn/ca.crt
  • /etc/openvpn/dh.pem
  • /etc/openvpn/ta.key
  • /etc/openvpn/crl.pem

Часть 3 — Настройка сервера OpenVPN

Пример конфигурационного файла в /etc/openvpn/server/server.conf Создать. Следующий пример представляет собой базовую и безопасную конфигурацию с использованием AES-256-GCM и tls-crypt.

port 1194
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-crypt /etc/openvpn/ta.key

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-GCM
auth SHA256
ncp-ciphers AES-256-GCM
persist-key
persist-tun

user nobody
group nogroup

status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
verb 3

crl-verify /etc/openvpn/crl.pem

Советы:

  • Использование AES-256-GCM и аутентификация SHA256 Рекомендовано.
  • Для минимизации задержек в сетях, чувствительных к условиям торговли или игр, УДП Это более подходящий вариант; он возможен в сетях с ограниченными ресурсами. TCP Это может оказаться необходимым.
  • Ты можешь tls-version-min 1.2 Или tls-version-min 1.3 И добавьте список более строгих шифров.

Часть 4 — Включение маршрутизации и NAT

Необходимо включить переадресацию и настроить NAT для передачи клиентского трафика в Интернет.

Временно включите переадресацию IPv4:

sudo sysctl -w net.ipv4.ip_forward=1

Чтобы это стало постоянным:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl --system

Добавление правила NAT с помощью iptables (при условии, что выходной интерфейс — eth0):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Для обеспечения постоянного действия правил используйте iptables-persistent или netfilter-persistent:

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

Если из nftables Вы используете определение эквивалента NAT в nft.

Настройки UFW (если включены)

Если из УФВ Перед включением NAT необходимо использовать файл. /etc/ufw/before.rules Отредактируйте и добавьте раздел NAT. Краткий пример:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Затем в /etc/default/ufw Количество IPV4_FORWARDING к "“да”Или воспользуйтесь sysctl. Затем откройте порт OpenVPN и включите ufw:

sudo ufw allow 1194/udp
sudo ufw enable

Часть 5 — Настройка службы OpenVPN

Запустите и включите службу (имя службы может отличаться в зависимости от дистрибутива):

sudo systemctl start [email protected]
sudo systemctl enable [email protected]

Чтобы проверить состояние и просмотреть журнал:

sudo systemctl status openvpn-server@server
journalctl -u openvpn-server@server -f

Часть 6 — Создание клиентского файла (.ovpn) со встроенным сертификатом

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

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3

<ca>
-----BEGIN CERTIFICATE-----
(محتوای ca.crt)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
(محتوای client1.crt)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
(محتوای client1.key)
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
(محتوای ta.key)
-----END OpenVPN Static key V1-----
</tls-crypt>

Передайте этот файл на ваши клиенты под управлением Windows, Mac или Linux. В Linux вы можете использовать NetworkManager или команду. openvpn --config client.ovpn Использовать.

Раздел 7 — Управление пользователями, аннулирование сертификатов и безопасность

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

  • Добавить нового пользователя: Сгенерируйте ключ и подпишите так же, как и клиент 1.
  • Отзыв сертификата (аннулирование): ./easyrsa revoke client1 && ./easyrsa gen-crl Затем скопируйте crl.pem в /etc/openvpn/crl.pem и перезагрузите сервер.
  • Совместное использование сертификатов и аутентификации пользователя по паролю: Для повышения уровня безопасности можно использовать PAM или RADIUS и добавить OTP/2FA.
  • Фэйл2бан: Установка и настройка для мониторинга журналов и блокировки попыток вторжения.
  • Управление журналами: Снизьте уровень детализации логов в производственной среде и используйте logrotate для обслуживания файлов журналов.
sudo apt install -y fail2ban
# create a custom jail for openvpn as needed

Раздел 8 — Технические рекомендации и оптимизация приложений

Несколько практических советов для различных сценариев:

Для торговли/форекс и криптовалют

  • Чтобы сократить время отклика (RTT), выбирайте местоположение, расположенное близко к биржам или торговым серверам (например, Лондон, Франкфурт, Нью-Йорк, Токио).
  • Используйте выделенный VPS для торговли с низким пингом, выделенными ресурсами и сервером, защищающим от DDoS-атак.
  • Используйте протокол UDP и установите соответствующий MTU (например, tun-mtu 1500 или меньше), чтобы предотвратить фрагментацию.

Для игр

  • Выберите местоположение с наименьшим пингом и используйте VPS или высокоскоростные серверы с быстрой сетью.
  • A/B-тестирование для проверки того, действительно ли VPN улучшает маршрутизацию и снижает пинг.

Для искусственного интеллекта и рендеринга

  • Для передачи больших объемов данных лучше использовать облачные частные сети (VPC) или VPN-сети на уровне сети с протоколом BGP.
  • Для подключения к серверу с графическим процессором используйте серверы с сетью 10 Гбит/с.

Раздел 9 — Сравнение местоположений и инфраструктуры

Пример преимуществ по регионам:

  • Европа (Франкфурт, Лондон, Амстердам): Подходит для европейских трейдеров и обеспечивает низкую задержку при взаимодействии с биржами.
  • Америка (Нью-Йорк, Нью-Джерси, Майами): Подходит для североамериканского рынка и грузов, чувствительных к задержкам.
  • Азия (Токио, Сингапур, Сеул): Подходит для рынков Азиатско-Тихоокеанского региона, а также для игровых и ИИ-сервисов в этом регионе.

Наша компания имеет более чем 85 представительств по всему мируОна предлагает сетевые протоколы BGP и CDN, которые могут эффективно снижать задержку, повышать стабильность и предотвращать DDoS-атаки.

Раздел 10 — Мониторинг и техническое обслуживание

Советы по обслуживанию и масштабируемости:

  • Мониторинг OpenVPN с помощью Prometheus/Grafana или Zabbix (используя экспортеры или анализ логов).
  • Регулярное техническое обслуживание списка отозванных абонентов (CRL) и проверка журналов подключений.
  • Для большого количества клиентов используйте балансировщик нагрузки и несколько серверов OpenVPN с высокой доступностью и общим центром сертификации.

Быстрое устранение неполадок

  • Проверьте журнал: sudo journalctl -u openvpn-server@server -e
  • Инспекция туннеля: ip a show tun0
  • Проверка порта: sudo ss -ulpn | grep 1194
  • Проверка NAT: с VPN-клиента выполните команду ping 8.8.8.8 и проверьте публичный IP-адрес сервера.

Краткое изложение и рекомендации по безопасности

Основные рекомендации:

  • Всегда используйте TLS (tls-crypt) и надежный центр сертификации.
  • Используйте надежное шифрование (AES-256-GCM) и как минимум протокол TLS 1.2.
  • Внедрить процедуру отзыва и списка отзыва сертификатов (CRL) для ограничения доступа в случае утечки ключей.
  • Используйте fail2ban и правила ограничения скорости запросов в вашем брандмауэре.
  • Не забывайте отслеживать и периодически просматривать журналы.

Преимущества предоставляемой инфраструктуры и местоположения.

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

Часто задаваемые вопросы

Вам также может понравиться