У меня есть такая структура

vpn.ekzorchik.ru (OpenVPN Server) <= Mikrotik (OpenVPN Client)

И я могу с любого своего устройства подключить к OpenVPN и получить доступ к ресурсам за Mikrotik

Ну так вот, если ранее я на vpn системе настраивал проброс порта до конечной системы в своей локальной сети за Mikrotik, то сейчас я пришел к способу, которым безопаснее, а именно использованием SSH туннеля на доступ к сервисам.

Задача: На своей рабочей системе (т.е. на работе у меня Windows 10 Pro) я буду запускать клиент Putty (или связку Putty + mRemoteNG), а после уже взаимодействовать с сервисами, которые работают внутри моего тестового полигона, базирующегося на Debian 10 + Proxmox 6

Шаг №1: У меня внутри гипервизора Debian 10 + Proxmox 6 есть VM на которой я тестирую работу мониторинга и завожу в него различные сервисы дабы разобрать как они заводятся, какие нюансы возникают. И чтобы не настраивать на vpn проброс порта из вне до VM, получается я как бы выставляю наружу сервис еще без защиты, а так наружу открыт только SSH. Где защитой SSH занимается связка firewall-cmd + fail2ban (Настройка связки Fail2ban + firewalld на Ubuntu 18.04)

Шаг №2: Чтобы заработало туннелирование через ssh нужно на сервисе vpn.ekzorchik.ru активировать настройку:

root@vpn:~# sudo nano /etc/ssh/sshd_config

AllowTcpForwarding yes

root@vpn:~# systemctl restart sshd

Шаг №3: Запускаю клиент putty на Windows 10 Pro

Category (Session)

  • Host Name (or IP Address): vpn.ekzorchik.ru
  • Port: XXXXX
  • Connection type: SSH

Category (Connection) SSH – Tunnels

  • Source port: 8080
  • Destination: 172.33.33.120:80

И нажимаю Add

На заметку: Можно в рамках одного туннеля указать несколько подключений и после каждого добавлять Add

Настройки принимаю вид:

Доступ к VM (и сервису на нем) через SSH туннель

Category (Connection) Data

  • Auto-login username: root

Category (Session)

  • Saved Sessions: указываем, к примеру sshtunnel

И нажимаю "Save"

После нажимаю Open

Авторизуюсь на своем vpn.ekzorchik.ru путем указания логина и пароля

Using username “root”.

root@vpn.ekzorchik.ru’s password:

Подключаюсь через ssh к OpenVPN серверу

Я успешно подключен и сворачиваю окно подключения к своему vpn.ekzorchik.ru

root@vpn:~#

Подключение к OpenVPN сервису через SSH успешно

Шаг №4: Покуда, окно с подключением к vpn.ekzorchik.ru через клиент Putty открыто и успешно, я теперь могу взаимодействовать с системой 172.33.33.120 через порт 8080. А как взаимодействовать, а все просто, просто запускаем любой браузер на Windows 10 Pro, к примеру Google Chrome и в строке адреса уже указываем http://127.0.0.1:80 и получаем:

Взаимодействие с сервисом локальной сети через SSH туннель

Ну а далее уже опираясь на заметки (https://lin.ekzorchik.ru/?s=zabbix) моей приватной Wiki я делаю задачи и наполняю ее разобранными задачами. Самое главное, из всего этого что я не свечу настроенным пробросом порта и могу ограничить кто может и откуда подключаться к сервису SSH.

Шаг №5: Разбирая и оформляя данную заметку я поставил себе цель прикрутить к своему vpn хосту авторизацию не только по связке login + pass аутентификацию, но и сделать доступ по публичному ключу, а для этого у меня есть заметка:

На заметку: Мой Вам совет, когда создаете через Puttygen ключи обязательно защищайте их парольной фразой дабы их если кто-либо и утащит воспользоваться не сможет, Вы уже в свою очередь сможете подключиться.

Итого я обезопасил свои подключения к сервисам за Mikrotik на котором у меня поднят OpenVPN клиент вот таким вот простым способом. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.