Как установить и настроить VPN-сервер OpenConnect на Ubuntu 22.04 с Let's Encrypt
Пошаговое руководство по установке VPN-сервера OpenConnect (ocserv) на Ubuntu 22.04 и получению сертификата Let's Encrypt.

Как установить и настроить сервер OpenConnect (ocserv) на Ubuntu 22.04 с Let's Encrypt

В этой статье мы узнаем, как настроить VPN-сервер OpenConnect (ocserv) на Ubuntu 22.04 с использованием сертификатов Let's Encrypt. Данное руководство охватывает установку, настройку, советы по безопасности и оптимизацию VPN-сервиса.
0 Акции
0
0
0
0

 

Что рассматривается в данном техническом руководстве?

Это пошаговое техническое руководство покажет вам, как настроить сервис. OpenConnect (ocserv) На Убунту 22.04 Помимо получения и управления сертификатами Давайте зашифруемВ данном разделе рассматриваются вопросы безопасной конфигурации, настройки брандмауэра и NAT, аутентификация пользователей, а также советы по подключению клиентов и автоматизации обновления сертификатов.

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

 

Предварительные условия и выбор места проведения

Перед началом убедитесь, что:

  • Сервер Убунту 22.04 У вас есть права root или sudo.
  • Домен (например, vpn.example.com) обозначает IP-адрес сервера.
  • Порты 80 и 443 Они открыты на межсетевом экране для получения сертификата Let's Encrypt.

Почему местоположение важно?

  • Для трейдеров и геймеров выбор местоположения с низким пингом (например, Лондон, Франкфурт или Токио) является приоритетной задачей.
  • Для повышения стабильности организациям может потребоваться несколько локаций с протоколами BGP и CDN.
  • Для обеспечения защиты и стабильности рекомендуется использовать серверы с защитой от DDoS-атак.

 

Установка ocserv и необходимых пакетов.

Сначала обновите систему и установите базовые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install ocserv certbot libnss3-tools -y

Рекомендуемые пакеты для операционной среды:

  • ufw или nftables для управления брандмауэром
  • fail2ban для защиты от атак методом перебора паролей.
  • openssl или gnutls‑bin, если вам нужно протестировать TLS.

 

Получение сертификата Let's Encrypt (способы)

Существует два распространенных способа получения сертификата:

Метод А — Использование nginx (если у вас есть веб-сервер)

Если у вас установлен nginx, вы можете включить виртуальный хост и использовать certbot с плагином nginx:

sudo apt install nginx
sudo certbot --nginx -d vpn.example.com

Затем в конфигурационном файле ocserv укажите путь к сертификату следующим образом:

server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem

Метод B — автономный (если у вас нет nginx)

Поскольку ocserv по умолчанию прослушивает порт 443, перед запуском certbot в автономном режиме необходимо временно остановить ocserv или использовать DNS-проверку:

sudo systemctl stop ocserv
sudo certbot certonly --standalone -d vpn.example.com
sudo systemctl start ocserv

 

Конфигурация ocserv — пример файла ocserv.conf

Основной конфигурационный файл: /etc/ocserv/ocserv.conf. Пример ключевых разделов:

# ports
tcp-port = 443
udp-port = 443

# certificates
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem

# network
default-domain = vpn.example.com
dns = 1.1.1.1
dns = 1.0.0.1
route = 0.0.0.0/0
no-route = 192.168.0.0/16

# limits
max-clients = 250
max-same-clients = 2

# security and performance
keepalive = 60
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
compression = false
tls-priorities = "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
allow-roaming = true

Важные примечания: маршрут = 0.0.0.0/0 Для полного туннелирования. Для разделенного туннелирования добавьте только необходимые сети. Из соображений безопасности. сжатие = false Рекомендовано.

 

Настройки брандмауэра и NAT (переадресации IP-пакетов)

Включение пересылки IP-пакетов:

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

Пример правил iptables для NAT (при условии, что исходящий интерфейс eth0, а внутренняя сеть 10.10.10.0/24):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT

Для сохранения правил после перезагрузки используйте iptables-persistent или сохраните конфигурацию в nftables.

Примеры команд UFW:

sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw allow 80/tcp
sudo ufw enable

 

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

Простой метод, основанный на локальном файле passwd:

sudo ocpasswd -c /etc/ocserv/ocpasswd alice

Вы можете из ПАМ Используется для интеграции с LDAP/AD (настройка). auth = "pam"" (в файле ocserv.conf).

Для аутентификации на основе сертификатов (x.509) сгенерируйте ключ/сертификат клиента:

sudo certtool --generate-privkey --outfile client-key.pem
sudo certtool --generate-certificate --load-privkey client-key.pem --outfile client-cert.pem --template client.tmpl

Для добавления двухфакторной аутентификации можно использовать libpam-google-authenticator и установка ПАМ в /etc/pam.d/ocserv Использовать.

 

Безопасность, усиление защиты и оптимизация

  • Ограничение версий TLS С использованием tls-priorities.
  • Отключение сжатия В целях безопасности (например, в связи с ПРЕСТУПЛЕНИЕМ).
  • Ограничьте количество одновременных подключений (max-same-clients).
  • Включите ведение журналов и мониторинг ресурсов.
  • Установите и настройте fail2ban для предотвращения повторных попыток входа в систему.

Простой пример настройки fail2ban:

[ocserv]
enabled = true
port = 443
filter = ocserv
logpath = /var/log/syslog
maxretry = 5

Необходимо создать соответствующий фильтр (регулярное выражение) на основе логов ocserv.

 

Тестирование и подключение клиентов

Клиент командной строки Linux с открытый коннектор:

sudo apt install openconnect
sudo openconnect vpn.example.com

На рабочем столе Linux из network-manager-openconnect А в операционных системах Windows/macOS используйте графический интерфейс OpenConnect или клиенты, совместимые с Cisco AnyConnect.

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

sudo systemctl status ocserv
sudo journalctl -u ocserv -f

 

Автоматизация обновления и обслуживания сертификатов

Если вы используете nginx или apache в качестве обратного прокси, certbot обычно может обновить сертификат без остановки службы и перезагрузить ocserv после обновления:

sudo certbot renew --deploy-hook "systemctl reload ocserv"

Если вы используете автономную версию и ocserv включен на порту 443, доступны следующие варианты: проверка DNS или использование пре/пост-хуков:

sudo certbot renew --pre-hook "systemctl stop ocserv" --post-hook "systemctl start ocserv"

 

Практические советы и примеры из практики применения.

  • Торговля: Для обеспечения минимальной задержки выбирайте сервер в ближайшем к вам месте; могут быть полезны VPS-серверы, специально предназначенные для торговли, с портом 443 и протоколами UDP/DTLS.
  • Игры: Используйте раздельное туннелирование, чтобы направлять через VPN только необходимый трафик и снизить пинг в играх.
  • Искусственный интеллект и рендеринг: Использование серверов с графическими процессорами в одном регионе может снизить нагрузку на сеть и уменьшить задержку.
  • Организационная безопасность: Рекомендуется использовать комбинацию LDAP/AD, двухфакторной аутентификации, мониторинга и серверов защиты от DDoS-атак.

Наша компания предоставляет высокопроизводительные облачные сервисы, графические серверы (GPU), VPS для торговли/игр, регистрацию доменов, CDN и сети BGP. Более 85 представительств по всему миру Предоставляет возможность разместить VPN-сервер рядом с пользователями и воспользоваться преимуществами защиты от DDoS-атак.

 

Заключение

В этом руководстве практически подробно описаны шаги по настройке OpenConnect (ocserv) на Ubuntu 22.04, от установки до получения сертификата Let's Encrypt, безопасной настройки, брандмауэра и NAT, аутентификации, оптимизации и автоматизации продления сертификатов.

Соблюдая меры предосторожности, такие как: Современный TLS, Отключение сжатияОграничения на количество подключений, активация двухфакторной аутентификации и fail2ban могут обеспечить безопасный и надежный VPN-сервис для команд, геймеров и трейдеров.

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