Инкапсуляция сессии в SSH канал

23 Dec 2012 | Автор: dd |

Не даром говорят о том, что лень является двигателем прогресса. В прекрасный субботний день мне надо было ехать к клиенту, у которого на площадке я установил новый NAS сервер от Synology, для того чтобы настроить его.

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

Тут то мне в голову и пришла админская палочка-выручалочка, в качестве все того же SSH сервера, установленного в офисе клиента. Надо заметить, что SSH сервер, при некоторой сноровке становится весьма удобным инструментарием для работы. Выгрузку/загрузку файлов через канал SSH я уже описывал, но тут я вспомнил о том, что фактически любое соединение можно инкапсулировать в канал шифрованный SSH, используя технологию туннелирования. Для чего на стороне сервера достаточно иметь работающий SSH сервер, а на нашей стороне любой софт, способный этот туннель поддерживать, то есть сгодится как puTTY, так и SecureCRT которым я обычно и пользуюсь.

Настройка соединения элементарная:

для puTTY прописываем соединение, после чего идем в настройку Connection ->  SSH, где отмечаем галку Enable Compression и переходим к настройке форварда портов, в разделе Connection ->  SSH -> Tunnels где уже прописываем локальные порты и соответствующие им удаленные, в моем случае это были 80 и 5000 порты, так как веб-морда NAS перебрасывала обращение с 80 на 5000.

Настройка туннеля SSH в PuTTY

Для SecureCRT настройка тоже не сложная- идем в настройку соединения из основного меню, где в разделе Connection -> Port Forwarding добавляем маршруты и прописываем порты форвардинга. Теоретически в SecureCRT для локальной точки входа можно указать любой IP адрес, при обращении к которому будет происходить проброс соединения через SSH туннель, но я предпочел использовать для простоты также localhost.

Настройка SSH туннеля в SecureCRT

После этого устанавливаем соединение через обращение к localhost по заданным портам, то есть в моем случае открываем в бродилке _http://127.0.0.1:80
Не скажу, что соединение работает вызывающе быстро, но однозначно это лучше чем по морозу пилить в удаленный офис, к тому же при включении компрессии, соединение значительно ускорилось, хотя конечно иногда недоумеваешь, ожидая отклика меню по 3-5 секунд. Также может подвисать и сама SSH сессия в терминальном клиенте, но мы всегда может открыть еще одно окно терминала, так как это не помешает нашей работе. Но, по-видимому, дело в нагрузке канала, так как проработав несколько часов обнаружил тот момент, что порою сессия по-скорости работает просто на 5+, то начинает тормозить, причем сам интернет, на моей стороне, работает исправно.

Организация SSH туннеля

Для понимания портов, которые вам нужно прокинуть через SSH туннель, следует курить /etc/services и собственно те сервисы, к которым мы хотим получить доступ из вне.

В принципе это весьма удобный механизм, так как получить доступ можно практически ко всем сервисам внутри удаленной сети, главное иметь ssh доступ к серверу, подключенному внутрь локалки, напрямую или же через NAT- это не принципиально.  И самое главное что такой вариант не требует никакой перенастройки на стороне SSH сервера.

Кстати, одно из удобств для меня, явилось то, что используя web доступ к NAS под Synology и встроенный в него браузер файлов File Station я получил удаленный доступ и к файлам на диске хранилища, которые смог скачивать через бродилку, а также и закачивать на NAS из дома.

VN:F [1.9.21_1169]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.21_1169]
Rating: +3 (from 3 votes)
Инкапсуляция сессии в SSH канал, 10.0 out of 10 based on 3 ratings

Теги: , ,

Ваш отзыв