Вопрос или проблема
У меня есть выделенный сервер. На нём запущен VNC сервер, и я могу подключиться к VNC серверу с помощью VNC клиента по порту 5901, так что при подключении VNC клиентом я попадаю на дисплей :1.
Я прочитал довольно много документов о командах ssh -L и ssh -R, но это довольно странно, потому что у них есть серверы и прочее на их собственных машинах и на удалённых, так что я запутываюсь, к чему они вообще пытаются подключиться и что и т.д.
- У меня есть выделенный сервер с VNC сервером, веб-сервером, игровым сервером и брандмауэром.
- VNC сервер запущен, и TCP/UDP соединение было включено только для портов веб-сервера, SSH, игрового сервера.
- Я хочу подключиться к своему VNC серверу с помощью VNC клиента (с моего собственного ПК), но используя туннелированное соединение, потому что люди слишком много раз пытаются ввести мой пароль или что-то в этом роде, потому что иногда появляется сообщение “Слишком много неудачных попыток аутентификации”, какие они отсталые, потому что они никогда не угадают пароль. В любом случае, я пробовал следующее:
ssh root@DEDICATEDIP -L 5901:DEDICATEDIP:5901
ssh root@DEDICATEDIP -R 5901:DEDICATEDIP:5901
Я также пробовал этот вариант (нашел на этом сайте): ssh -L 5901:localhost:5901 -p 22 root@DEDICATEDIP
Если я пишу “su” в SSH и ввожу свой root пароль, я могу войти с учетной записью root, но когда он запрашивает мой root пароль по SSH после попытки заполнить любую из этих команд туннелирования, он говорит, что пароль неверен и доступ запрещен?
Редактировать:
- Мой ПК: PuTTy (SSH клиент), VNC Viewer (VNC клиент)
- Dedibox: VNC сервер, игровой сервер, веб-сервер, SSH сервер
ufw status
- 22 – ALLOW – Везде
- 22 – ALLOW OUT – Везде
VNC сервер запущен, и я могу это подтвердить. Если я добавлю 5901 в ALLOW и ALLOW OUT, я могу просто подключиться туда без туннелирования.
- (Мой ПК) Открываю PuTTY
-
(Мой ПК) Настройки PuTTY -> Соединение -> SSH -> Туннели
- Исходный порт [5902]
- Назначение [163.xxx.xxx.xxx:5901]
- [ДОБАВИТЬ]
-
Теперь PuTTY показывает “Перенаправленные порты: ” -> “L5902 163.xxx.xxx.xxx:5901”
- Я подключаюсь к серверу по SSH, включая настройки туннеля, которые я сейчас настроил.
- Я пишу “su” и ввожу свой root пароль.
- root@MyBox: /home/sysadmin# (sysadmin – это обычный пользователь для моего сервера)
- Я пишу: “ssh root@IP_OF_DEDI -L 127.0.0.1:5902:127.0.0.1:5901”
- VNC клиент продолжает подключаться некоторое время. Как (15 секунд) и выдает: “Подключение было отказано компьютером”
Попробуйте следующее:
запустите vnc сервер на ip 127.0.0.1, порт 5901
используйте команду ssh user@vncserver -L127.0.0.1:5902:127.0.0.1:5901
для запуска туннеля
затем подключитесь к 127.0.0.1:5902 с вашим локальным vnc клиентом.
Это дает вам преимущество в том, что vnc сервер работает только на интерфейсе обратной связи на удалённой стороне.
Если вы используете Putty, то вы можете настроить туннель для сеанса во вкладке Соединение > SSH > Туннели. Установите исходный порт L5902 и назначение 127.0.0.1:5901.
Вам нужно будет настроить сеанс для сохранения этих данных. Это приведёт к подключению к vnc окну 1.
Из командной строки вы можете использовать ssh -L5902:127.0.0.1:5901 user@target, это делает то же самое, что и делает putty, я верю.
Я не знаю достаточно, чтобы дать больше объяснений по этому вопросу.
Ответ или решение
SSH Туннелирование для VNC-сервера: Полное руководство
SSH-тоннелирование предоставляет безопасный способ доступа к службам вашего сервера, таким как VNC, особенно когда вам необходимо защитить ваши соединения от нежелательных попыток входа. В данном руководстве мы детально разберем, как настроить SSH-тоннелирование для подключения к VNC-серверу.
1. Описание конфигурации
Ваша конфигурация включает:
- Выделенный сервер с установленными VNC-сервером, веб-сервером, игровым сервером и файрволом.
- Доступ к VNC-серверу осуществляется через порт 5901.
- SSH-доступ к серверу работает через стандартный порт 22.
- Настроенная система защиты, ограничивающая доступ к определенным портам (лишь SSH, веб-сервер и игровой сервер открыты).
2. Проблема с аутентификацией
Вы упомянули, что возникают проблемы с аутентификацией при попытке подключения через SSH, и вы сталкиваетесь с сообщением "Слишком много неудачных попыток аутентификации". Это может быть связано с неправильными настройками или попытками доступа к вашему серверу злоумышленников.
3. Решение с помощью SSH-тоннелирования
Для успешного подключения к VNC-серверу через SSH-туннель, выполните следующие шаги:
3.1 Настройка SSH-туннеля с помощью PuTTY
- Запустите PuTTY.
- В поле Host Name (or IP address) введите IP-адрес вашего выделенного сервера (например,
163.xxx.xxx.xxx
). - Перейдите к разделу Connection > SSH > Tunnels.
- В поле Source port введите
5902
(это будет локальный порт на вашем ПК). - В поле Destination введите
127.0.0.1:5901
(это означает, что VNC-сервер слушает на локальном IP вашего выделенного сервера). - Нажмите кнопку Add. В PuTTY должно появиться сообщение о перенацеливании, например, "L5902 127.0.0.1:5901".
- Вернитесь на вкладку Session, введите имя для этой сессии и сохраните настройки.
- Нажмите Open, чтобы подключиться к серверу. Убедитесь, что вы используете свой правильный логин (root или другой пользователь) и пароль.
3.2 Подключение к VNC-клиенту
После успешного SSH-подключения вам необходимо открыть VNC-клиент:
- В вашем VNC-клиенте (например, VNC Viewer) укажите адрес для подключения:
127.0.0.1:5902
. - Нажмите кнопку Connect и введите ваши учетные данные для VNC (если требуется).
4. Работа в командной строке
Если вы предпочитаете использовать командную строку для SSH:
-
В окне терминала выполните следующую команду:
ssh -L 5902:127.0.0.1:5901 root@DEDICATEDIP
-
Снова подключитесь через VNC-клиент к
127.0.0.1:5902
.
5. Что делать, если возникли ошибки?
Если вы по-прежнему сталкиваетесь с ошибками соединения:
- Убедитесь, что VNC-сервер запущен и слушает на
127.0.0.1:5901
. Возможно, без аргумента-localhost
он принимает запросы только извне. - Проверьте, что ваш фаервол (например, UFW) правильно настроен для разрешения соединений.
- Проверьте логи SSH и VNC для выявления возможных причин проблем с подключением.
Заключение
Использование SSH-тоннелирования для соединения с вашим VNC-сервером — это эффективный способ повысить безопасность вашего удаленного доступа. С помощью этой инструкции вы сможете успешно настроить и использовать туннелирование для защиты своего компьютера от несанкционированного доступа.