odinezy/ssh-tunnel_mikrotik

By odinezy

Updated 7 months ago

Simple ssh-tunnels for mikrotik based on openssh.

Image
Networking
Security
1

900

odinezy/ssh-tunnel_mikrotik repository overview

Envs:


ADDRESS - Your server address;

PORT - Your ssh port on server;

USER - Your ssh user on server;

OPTIONS - port forwarding ssh options;


Example ADDRESS: "123.45.67.89"

Example PORT: "22"

Example USER: "odinezy"

Example OPTIONS: "-R 2222:192.168.88.1:22 -R 8291:192.168.88.1:8291 -L 0.0.0.0:1080:127.0.0.1:1080 -L 0.0.0.0:443:127.0.0.1:443 -L 0.0.0.0:2202:127.0.0.1:2202"

Инструкция на русском: https://habr.com/ru/sandbox/265850/

Ниже инструкция, как пользоваться: (Всё что не касается микротика я упущу, имея такое оборудование и поднимая туннель вы понимаете для чего это нужно и обладаете базовыми знаниями и способны воспользоваться поиском, поэтому некоторые вещи я просто опишу словами, без команд)

На удалённом серевере для каждого роутера я создавал своего пользователя и переназначал оболочку на rbash. Далее генерируем ключ (БЕЗ ПАРОЛЯ):

ssh-keygen -t rsa -b 8192 -f .ssh/<key_name>

Публичный ключ мы добавляем в authorized_keys, меняем порт ssh, запрещаем доступ к руту, доступ по паролю, закрываем лишние порты, отключаем ответ на пинг и прочие прелести, короче базово защищаемся.

На микроте создаём каталог в котором будем хранить ключ, я использую каталог docker_configs для конфигов всех контейнеров, а для этого контейнера будет каталог ssh-tunnel:

file/add type=directory name=/docker_configs/ssh-tunnel

И копируем в него приватный ключ, сгенеренный ранее.

Создаём интерфейс на котором будет крутиться наш контейнер. Обязательно в LAN сети, иначе микрот будет недоступен изнутри контейнера (без редактирования правил файерволла):

interface/veth/add address=192.168.88.10/24 gateway=192.168.88.1 name=SSH-TUNNEL disabled=no

Подключам интефейс в мост (по то же самой причине):

interface/bridge/port/add bridge=bridge interface=SSH-TUNNEL disabled=no

Примонтируем каталог с ключом в контейнер:

container/mounts/add name=ssh-tunnel_key src=/docker_configs/ssh-tunnel dst=/mnt/keys comment=keys_for_ssh-tunnel read-only=yes

Создаём переменые:

container/envs/add list=ssh-tunnel key=ADDRESS value="АДРЕС СЕРВЕРА"

container/envs/add list=ssh-tunnel key=PORT value="SSH ПОРТ СЕРВЕРА"

container/envs/add list=ssh-tunnel key=USER value="ИМЯ_ПОЛЬЗОВАТЕЛЯ"

container/envs/add list=ssh-tunnel key=OPTIONS value="ЧТО КУДА ПРОБРАСЫВАТЬ"

Пример для ADDRESS: "123.45.67.89"

Пример для PORT: "22"

Пример для USER: "odinezy"

Пример для OPTIONS: "-R 2222:192.168.88.1:22 -R 0.0.0.0:8291:192.168.88.1:8291 -L 192.168.88.10:1080:127.0.0.1:1080 -L 192.168.88.10:2202:127.0.0.1:2202"

И устанавливаем контейнер:

container/add interface=SSH-TUNNEL name=ssh-tunnel root-dir=/docker/ssh-tunnel envlists=ssh-tunnel mounts=ssh-tunnel_key start-on-boot=yes remote-image=registry-1.docker.io/odinezy/ssh-tunnel_mikrotik:latest

Не забудьте в самом микротике сгенерить ключи и сохранить себе приватный, для доступа по ключу в RouterOS.

После установки запускаем контейнер и кайфуем.

Tag summary

Content type

Image

Digest

sha256:bbb9c2411

Size

7.5 MB

Last updated

7 months ago

docker pull odinezy/ssh-tunnel_mikrotik:1.01