Доступ к VNC по ssh при помощи putty | VNC
Задача описана в предыдущем посте: получить доступ к машине под виндой с VNC (или любой другой программой удаленного управления) за шлюзом.
Можно сделать простой проброс портов при помощи kernel NAT/natd на шлюзе (см. предыдущую статью). Но метод не совсем секьюрный поскольку мы просто пробрасываем порт который торчит наружу и доступен любому сканеру.
Гораздо проще получить доступ к серверу VNC через туннель ssh при помощи putty под Windows.
Итак имеем:
- машину под виндой с установленным сервером VNC (по дефолту слушает порт 5900)
- шлюз который слушает ssh (у меня он отличается от дефолтного 22-го)
- машину с виндой и putty с которой мы хотим подключиться к винде за шлюзом.
Настраиваем sshd на шлюзе. Правим конфиг /etc/ssh/sshd_config – по желанию меняем порт на котором слушает sshd и раскомментируем строку
#AllowTcpForwarding yes
(Хотя всего этого, по идее, можно и не делать – sshd по дефолту разрешает форвардить трафик. Но если вдруг что-то не заработает – причина может быть в этом).
Перезапускаем sshd
#/etc/rc.d/sshd restart
Далее открываем putty. Создаем сессию – пишем внешний айпи шлюза, порт на котором слушает sshd, даём имя сессии.
После этого идем в настройки SSH – выбираем Tunnels. Вбиваем – локальный порт (Source Port) – 5901, Destination – айпи и порт машины с VNC и виндой к которой хотим подключиться.
Нажимаем Add. Видим – L5901 – это localhost:5901 (куда будет туннелироваться соединение на локальной машине) и айпи и порт места назначения.
Далее идём в Sessions, и сохраняем настройки сессии. Всё, можно подключаться.
Нажимаем Open, подключаемся к шлюзу по ssh как обычно. Обязательно проходим аутентификацию под любым юзером.
Оставляем окно сессии ssh в putty открытым и запускаем VNC клиент. В адресе Server вбиваем: localhost:1
что позводит нам законнектиться к туннелю на localhost:59001
В случае успешного соединения вводим пароль пользователя VNC и получаем доступ к рабочему столу удаленной машины.