Задача

Настроить VPN-маршрутизацию на выделенном сервере под управлением Ubuntu (не хостинг reg.ru, а VPS или физический сервер). Трафик всех сервисов должен идти через внешний IP-адрес сервера, обеспечивая безопасное подключение к удаленной сети.

Архитектура

  • VPN-контейнер - отдельный Docker-контейнер, в котором запущен OpenVPN-клиент.
  • Рабочие контейнеры - один или несколько Docker-контейнеров, которым необходимо выходить в интернет через VPN.
  • Сетевое взаимодействие - все рабочие контейнеры «делят» сеть с VPN-контейнером, чтобы их трафик проходил через VPN-туннель.

Требования к реализации

  • OpenVPN-клиент должен запускаться в контейнере как foreground-процесс (через systemd или напрямую).
  • Настроить сетевую изоляцию: в интернет ходят только контейнеры из VPN-сети, а через основную сеть хоста - только для управления.
  • Обеспечить перезапуск контейнеров при сбоях (Docker restart policy).
  • Конфигурационные файлы OpenVPN должны храниться вне контейнера (volume mount).
  • Желательно добавить форвардинг портов для доступа к сервисам из интернета через внешний IP.

Документация и проверка

  • После настройки предоставить описание схемы сети (IP-адреса, маршруты).
  • Продемонстрировать, что внешний трафик (например, curl ifconfig.me) показывает внешний IP сервера.