Главная » Статьи » Защита информации


Использование SSH в качестве SOCKS-прокси

Использование SSH в качестве SOCKS-прокси

Защитите web-трафик с помощью VPN-функциональности, встроенной в SSH. В поисках наилучшего и самого совершенного способа защиты беспроводных сетей многие люди упускают самую полезную функцию SSH: ключ -D. Этот простой ключ скрыт в конце документации системы SSH. Вот цитата из этой документации: -D port

Specifies a local "dynamic" application-level port forwarding. This works by allocating a socket to listen to port on the local side, and whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS 4 protocol is supported, and SSH will act as a SOCKS 4 server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.

(«Определяет локальное, «динамическое» перенаправление порта на уровне приложения. Работает путем размещения сокета для «прослушивания» порта на локальной стороне. При подключении к этому порту соединение пересылается по защищенному каналу, и для определения места подключения с удаленной машины используется протокол приложения. В настоящее время используется протокол SOCKS 4, a SSH выступает в роли SOCKS 4-сервера. Привилегированный порт может перенаправлять только root-пользователь. Динамическое перенаправление порта также может указываться в файле настройки».)

Программное обеспечение, совместимое с SOCKS 4

Если у вас имеется программное обеспечение, совместимое с SOCKS 4, это обеспечивает крайне полезную возможность: можно получить действительно зашифрованный прокси-сервер на любой машине, на которой имеется SSH. Для этого не надо ничего устанавливать дополнительно ни на вашей машине, ни на удаленном сервере. Так же как и при SSH-перенаправлении порта, ключ -D вызывает привязку к определенному локальному порту и шифрацию любого трафика этого порта, превращая его в канал с выполнением дешифрации на другой стороне. Например, для настройки SOCKS 4-прокси с локального порта 8080 на удаленную систему введите rob@caligula:~$ ssh -D 8080 remZote.

Вот и все, что для этого надо. Теперь просто укажите local host: 8080 в качестве SOCKS 4-прокси в своем приложении, и все соединения приложения будут осуществляться по зашифрованному каналу. Например, для настройки SOCKS-прокси в Mozilla выберите Preferences • Advanced • Proxies (Предпочтения • Дополнительно • Прокси).

Выберите переключатель Manual proxy configuration (Ручная настройка прокси) и в качестве имени SOCKS-узла введите local host. Также введите номер порта, который вы указали в ключе -D, и проверьте установку переключателя SOCKSv4. Щелкните на кнопке ОК. Весь трафик, генерируемый Mozilla, теперь шифруется и выглядит как исходящий от удаленной машины, на которой вы зарегистрировались с помощью SSH. Любой, кто прослушивает беспроводной трафик, теперь видит огромный зашифрованный SSH-поток, но действительные данные хорошо защищены.

SOCKS 4 и поддержка DNS-трафика

Важный момент, который необходимо помнить: SOCKS 4 не имеет «родной» поддержки DNS-трафика. Этим вызваны два побочных эффекта, которые необходимо учитывать при использовании его для защиты беспроводных передач. Прежде всего, DNS-запросы по-прежнему отправляются в открытом виде. Это означает, что любой, кто прослушивает, сможет увидеть наименования просматриваемых вами сайтов, хотя действительные URL и данные остаются спрятанными. Это совсем небольшой риск, но его все равно необходимо учитывать.

Кроме того, по-прежнему используется локальный DNS-сервер, но трафик исходит от удаленного конца прокси. Это может вызвать интересный (и нежелательный) побочный эффект при попытке обратиться к ресурсам частной сети. В качестве иллюстрации выявления трудноуловимых проблем рассмотрим корпоративную сеть с web-сервером intranet.example.com. Он использует частный адрес 192.168.1.10, но доступен из Интернета через перенаправляющий межсетевой экран. DNS-сервер для intranet.example.com обычно отправляет ответы с различными IP-адресами в зависимости от того, откуда пришел запрос, используя возможность просмотра в BIND 9. При поступлении запроса из Интернета имеется возможность обратиться к intranet.example.com с помощью IP-адреса 208.201.239.36, который за пределами межсетевого экрана является действительным адресом.

Теперь представим, что вы используете только что рассмотренный пример SOCKS-прокси, а в качестве удаленной системы выступает машина, расположенная за пределами корпоративного межсетевого экрана. В качестве IP-адреса intranet.mybusiness.com DNS-сервер вернет 208.201.239.36 (поскольку вы запрашиваете имя из-за межсетевого экрана). Но HTTP-запрос действительно поступает с удаленной системы и пытается обратиться к адресу 208.201.239.36. Как обойти эту DNS-шизофрению?

Простой способ избавиться от этой проблемы заключается в использовании на вашей машине локального файла узлов. Добавьте в /etc/hosts (или в соответствующий вашей ОС файл) следующий элемент:192.168.1.10 intranet.example.com

Кроме того, вы имеете возможность перечислить любое количество узлов, обращение к которым возможно только с внутренней стороны корпоративного межсетевого экрана. При попытке найти один из этих сайтов до обращения к DNS выполняется обращение к файлу локальных узлов (hosts), что приводит к использованию частного IP-адреса. Поскольку этот запрос действительно был послан с удаленной системы, он без проблем найдет внутренний сервер. Аналогично, отклики, приходящие обратно на SOCKS-прокси удаленной системы, шифруются и перенаправляются по SSH-каналу, после чего появляются в браузере, как будто они пришли из Интернета.

В ближайшей версии SSH планируется ввести поддержку SOCKS 5, что сделает возможным канальное DNS-разрешение. Это особенно понравится пользователям Mac OS X, поскольку в этой ОС уже имеется поддержка SOCKS 5. Когда SSH будет поддерживать SOCKS 5, каждое OS Х-приложение сможет автоматически воспользоваться преимуществами socks-прокси, зашифрованными SSH. Тем временем нам пока приходится обходиться зашифрованными НТТР-прокси.

Роб Фликингер (Rob Flickenger) «Трюки беспроводной среды» («Wireless Hacks»)

источник: Локхарт Э. Антихакинг в сети. Трюки.

Категория: Защита информации | Добавил: george27 (22.09.2014)
Просмотров: 667 | Рейтинг: 4.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:

Последнее в Блоге

Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?
Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14
Обзор игрового ноутбука Acer Predator 17XОбзор игрового ноутбука Acer Predator 17X
Аркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой WantedАркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой Wanted