Simple ssh-tunnels for mikrotik based on openssh.
900
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.
После установки запускаем контейнер и кайфуем.
Content type
Image
Digest
sha256:bbb9c2411…
Size
7.5 MB
Last updated
7 months ago
docker pull odinezy/ssh-tunnel_mikrotik:1.01