Pull to refresh

SSH-туннели: безопасно через сервер

Reading time2 min
Views6.5K
Доброго времени суток. Попробуем дополнить и расширить статью SSH-туннели — пробрасываем порт. Рассмотренными примерами мы убьем сразу 2 задачи:
1. Межсетевая коммуникация через промежуточный сервер, когда между сетями пути нет.
2. Создание безопасного соединения через не доверенную сеть.
Предположим, что у нас есть unix like машина в сети, с запущенным sshd.
Первый вариант создания криптотуннеля это соединение, условно которое можно назвать точка-точка. В частности, при соединении сервером на стороне клиента открывается локальный порт, обращения на который будут передаваться удаленной машине через установленный криптотуннель. Что бы было понятно рассмотрим пример:

Наша машина: IP 10.0.0.2
Сервер: IP 10.0.0.1 (внешняя сеть там же где и мы) и 192.168.0.1 (внутренняя сеть, где находится целевой хост)
Целевой хост: 192.168.0.10

Для того, что бы безопасно пройти внешнюю, не контролируемую нами сеть 10.0.0.0, мы устанавливаем соединение с сервером по следующему шаблону:

ssh -L локальный_порт:удаленный_хост:удаленный_порт сервер
То есть
ssh -L 12345:192.168.0.10:80 192.168.0.1

Если соединение установлено успешно, то на нашей машине открылся локальный порт 12345, при обращении на который мы попадем на веб сервер (80й порт) 192.168.0.10. Попробовать можно введя в браузере
http://localhost:12345
.
Фактически, тем самым мы обезопасили себя от утечки информации через не безопасный канал связи и получили доступ к внутреннему ресурсу сети из вне.

Рассмотрим второй вариант. Находясь в не доверенной сети (например в Интернет кафе или чужих контролируемых сетях) мы хотим воспользоваться сервисом, который принципиально не имеет шифрования. Будь то http (конфиденциальна не только переписка, но и учетная запись), icq, pop3 или любое подобное. Для этого, мы сначала устанавливаем соединение с нашим сервером, открывая тем самым криптотуннель, и работаем уже через него. В данном случае открытый у нас локальный порт будет работать аналогично socks5. Рассмотрим установку соединения:

ssh -D локальный_порт сервер

Как очевидно, все довольно просто. Далее уже легко настроить наши клиенты на работу через открытый socks на localhost.
В GNOME это можно сделать нажав Система-> Праметры -> Параметры прокси-сервера:

Отдельно можно легко в параметрах подключения настроить браузер, icq и многое другое.
Естественно, воспользоваться такой возможностью можно в Windows. Аналогичные соединения можно установить через клиент ssh putty:

Заставить в Windows работать большинство приложений через socks умеет widecap


И несколько советов:
1. Еще немного повысить уровень безопасности в некоторых случаях можно воспользовавшись не чужим ПО (в смысле с чужого компьютера), а используя возможность X forwarding в том же sshd. Но это отдельная тема. Скажу только что в роле X сервера в Windows может выступать Xming

2. Не забывайте про возможность Firefox и Chrome режима приватного просмотра.

Успехов.
Tags:
Hubs:
+11
Comments7

Articles