12.03.2019

Обратный SSH


Появилась задача добираться  к машине во внутренней сети за NAT (админу лень было пробрасывать порт).
Можно было бы поставить клиента OPENVPN но ключи итд.. да и скорость...

Решил попробывать иcпользовать ssh и пакет autossh.



схема такая -

1.2.2.1  - (внешний сервер со статическим адресом,куда будет коннектиться клиент за натом) порт ssh 1052

172.16.6.202 (внутренний сервер за натом с linux)
172.16.6.113 (внутренний сервер за натом c виндовз) порт 3389

0. устанавливаем autossh
apt-get install autossh

1. Создаем пользователя из под которого будет запускаться коннект (на 172.16.6.202)
useradd autouser

2. Создаем пару ключей
autouser@172.16.6.202 ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/autouser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/autouser/.ssh/id_rsa.
Your public key has been saved in /home/autouser/.ssh/id_rsa.pub.


3. копируем открытый ключ на внешний сервер
 ssh-copy-id -i /home/autouser/.ssh/id_rsa.pub "-p 1052 users@1.2.2.1"


users@1.2.2.1's password:

 Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '1052' 'users@1.2.2.1'"
and check to make sure that only the key(s) you wanted were added.
Проверяем:
sh -p '1052' 'users@1.2.2.1

если входит без пароля все норм:

пробуем запустить autossh
autossh -M 10942 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/autouser/.ssh/id_rsa -R 6666:172.16.6.113:3389 users@1.2.2.1 -p 1052

порт 10942 управляющий
порт 6666 любой не занятый порт на сервере 1.2.2.1

Проверили заходит ? делаем автозапуск
touch /etc/systemd/system/autossh-tunnel.service

Вставляем следующее:
[Unit]
Description=AutoSSH tunnel service
After=network.target

[Service]
User=autouser
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -q -N  -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/autouser/.ssh/id_rsa -R 6666:172.16.6.113:3389 users@1.2.2.1 -p 1052

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl start autossh-tunnel.service

проверяем:
systemctl status autossh-tunnel.service
● autossh-tunnel.service - AutoSSH tunnel service
   Loaded: loaded (/etc/systemd/system/autossh-tunnel.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-03-12 13:48:05 EET; 2min 48s ago
 Main PID: 30531 (autossh)
   CGroup: /system.slice/autossh-tunnel.service

Добавляем в автозагрузку:
systemctl enable autossh-tunnel.service




Комментариев нет :

Отправить комментарий