Доступ к ЛВС через OpenVPN на Ubuntu 22.04 за Mikrotik

Posted by

У меня остался один сервис который развернут на CloudLite – это OpenVPN сервис служащий для доступа из вне к домашним ресурсам и сервису персонального хранения наработок, а именно на базе OwnCloud. Ранее он был описан в заметке "Доступ к ЛВС через OpenVPN на Ubuntu 20.04 за Mikrotik". В четверг 07.12.2023 я получил на почту "Уведомление о завершении работы сервиса", до этого я уже с 25.11.2023 по сей день перенес свои блоги, сервис удаленной помощи Aspia и т.д. на ресурсы AdminVPS, т.к. практика взаимодействия с поддержкой и требованиями к VPS системами меня устраивают полностью. Не то что было с CloudLite.

Увы CloudLITE закрывается, переносим сервис на AdminVPS

И вот ниже заметка по тому, как с нуля развернуть сервис OpenVPN на Ubuntu 22.04 Server с характеристиками: CPU = 1, RAM = 2Gb, NVMe 30Gb + статический WAN IP + бесплатный бекап раз в неделю для виртуальных машин у которых размер диска меньше 200Gb. После того я как его развернул, создал конфигурационный файл ovpn проверил что подключаюсь, подключаюсь из вне к домашним ресурсам изменил DNS запись на новый сервер дабы при обращении по DNS имени получать доступ через новое подключение.

План:

  • Обновляем систему до самого актуального состояния в рамках текущего релиза
  • Вношу изменения в SSH сервис (Доступ по порту отличному от стандартного и доступ на основе ключей)
  • Устанавливаем Firewalld
  • Устанавливаем nginx (для Proxy pass к сервису за Mikrotik)
  • Устанавливаем OpenVPN через скрипт (openvpn-ubuntu-install.sh)
  • Копирую ключи на домашний Mikrotik RB2011UiAS-2HnD or CHR
  • Создаю интерфейс OpenVPN Client на Mikrotik RB2011UiAS-2HnD or CHR

Приступаю к реализации…

Шаг №1: Применена заметка: "Шаблон базовой защиты для Mikrotik"

Шаг №2: Обновляю систему до самого актуального состояния в рамках текущего LTS релиза:

Шаг №3: Настраиваем SSH сервис on VPS системе:

После нажимаем Ctrl + O, Enter – Ctrl + X (для выхода из редактора)

На заметку: ключи для SSH создаю опираясь на заметку "Подключение к серверу Ubuntu 20.04 Server через Putty + Public Key"

если буду через ключ, созданный посредством PuttyGen подключаться к Ubuntu системы, то смотреть в заметку: "Ключ PPK и на Windows и на Ubuntu системах"

Шаг №4: Устанавливаем Firewalld: (в системе Firewalld версии 1.1.1)

Шаг №5: Скачиваю скрипт через который буду поднимать OpenVPN сервер на системе Ubuntu 22.04 Server:

закинул себе скрипт на ekzorchik.ru

Шаг №6: Изменяю в установочном скрипте сеть OpenVPN с дефолтной 10.8.0.0/24 на 10.9.0.0/24:

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №7: Разворачиваю через скрипт сервис OpenVPN:

На заметку: Т.к. у меня текущий VPN на базе OpenVPN будет работать с домашним Mikrotik, а у него клиент умеет работать только по tcp.

Шаг №8: Отправляю систему Ubuntu 22.04 Server в перезагрузку:

Шаг №9: В Firewalld добавляю порт 1194/tcp, но порт уже добавлен, значит добавлен скриптом, не мною:

Шаг №10: Подключаюсь по SSH к VPS системе Ubuntu 22.04 Server:

Шаг №11: Произвожу настройку конфигурационного файла server.conf на VPS системе Ubuntu 22.04 Server:

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора)

Шаг №12: Файлы для клиента Mikrotik

Выношу crt & key сертификаты клиента как отдельные файлы:

На заметку:

  • В файле mikrotik.crt должно содержимое в тегах BEGIN CERTIFICATE & END CERTIFICATE включая эти теги.
  • В файле mikrotik.key должно содержимое в тегах BEGIN CERTIFICATE & END CERTIFICATE включая эти теги

Копирую файлы mikrotik.crt & mikrotik.key На Mikrotik самым безопасным способом, который у Вас есть

Шаг №13: Подключаюсь к Mikrotik (MikroTik RouterOS 7.11.2) по SSH (из доверенной системы) и выполняю команды импортирования клиентских ключей:

Шаг №14: Настраиваю подключение Mikrotik к OpenVPN сервису системы Ubuntu 22.04 Server:

winbox - IP:8291 - user&pass - Interface - Add - OpenVPN Client

вкладка General

  • Name: openvpn

вкладка Dial Out

  • Connect To: 172.33.33.130
  • Port: 1194
  • Model: ip
  • Protocol: tcp
  • User: mikrotik
  • Profile: default
  • Certificate: mikrotik.crt_0
  • TLS Version: any
  • Auth: sha1
  • Cipher: aes 128 cbc
  • Use Peer DNS: yes
  • Add Default Route: Галочку не ставлю
  • Don't Add Pushed Routes (route-nopull): галочку не ставлю

и нажимаю Apply, OK

Шаг №15: на Микротике нужно создать правило masquerade

winbox - IP:8291 - user&pass - IP - Firewall – вкладка NAT - Add -

вкладка General

  • Chain: srcnat
  • Out. Interface: openvpn

вкладка Action

  • Action: masquerade

и нажимаю Apply, OK.

Шаг №16: Проверяю, а поднялось ли соединение:

Проверяю на Mikrotik, а поднялось ли соединение

OpenVPN Client на Mikrotik успешно подключился к Ubuntu 22.04 Server (OpenVPN Server)

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

Шаг №17: Проверяю, что с Mikrotik(а) вижу OpenVPN-сервер:

Шаг №18: Проверяю, как идет подключение из сети 10.90.90.0/24 до узла к примеру, ya.ru

пакеты ходят

Шаг №19: Проверяю, что с srv-vpn вижу адреса 10.90.90.0/24

Шаг №20: Создаю на srv-vpn правило проброс порта дабы через Openvpn туннель подключаться к примеру, к Windows системе:

Итого текущие правила:

Шаг №21: Включаем Forwarding трафика на VPS системе:

Шаг №22: Проверяю, что при обращении на WAN-IP OpenVPN сервера по RDP получаю доступ к проброшенной Windows системе:

mstsc /v:172.33.33.130:3389

Проверяю, что при обращении на WAN-IP OpenVPN сервера по RDP получаю доступ к проброшенной Windows системе:

  • Login: .\ekzorchik
  • Password: 712mbddr@

авторизовался

Подключение через OpenVPN к Windows 10 Pro осуществлено

Шаг №23: У меня был выявлен такой нюанс, да OpenVPN сеть работает, если делать проброс порта, тоже работает. Но мне еще нужно чтобы, подключившись по SSH к OpenVPN–серверу я могу из консоли взаимодействовать с сетью за Mikrotik, т.е. мог использовать OpenVPN как перевалочный пункт: ping устройства, подключаться по SSH. Чтобы это стало возможным, нужно удалить direct.xml файл:

На заметку: Последний шаг был вспомнен благодаря заметке: "Доступ к ЛВС через OpenVPN на Ubuntu 20.04 за Mikrotik"

Итого: я успешно настроил OpenVPN сервер на Ubuntu 22.04 Server, т.е. я могу успешно перенести VPS систему с CloudLite на VPS систему в AdminVPS. Перенес все в пятницу 08.12.2023, вот что, значит оттестировав в тестовых условиях на боевом уже все идет как само собой разумеющееся, но с учетом не теста, а боевого использования.

Пока на это заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.