...

Инструментарий и ловушки

Ограничения, накладываемые на динамическую переадресацию и протокол SOCKS4

На сервер с уже работающим демоном SSH не требуется устанавливать специальное программное обеспечение для его использования в качестве «виртуальной частной сети VPN для бедных», но новейшие версии SSHD обеспечивают более стабильную работу линии с переадресованным портом. Демоны старших версий могут временно блокировать соединение при попытке установить соединение с несуществующим или недостижимым хостом. Можно наткнуться на ошибки в том случае, когда в результате статической переадресации локального порта устанавливается указатель на взломанный хост. Они вызваны тем, что статическая переадресация обычно указывает лишь на устойчиво работающие хосты. Разрешить эту проблему можно путем инсталляции на удаленную машину усовершенствованной версии OpenSSH. (Для более подробных сведений пусть читатель ознакомится со специальным разделом, в котором описано, как это сделать. Заметим, что для инсталляции OpenSSH совcем необязательно обладать правами суперпользователя.)

Большую обеспокоенность вызывает тот факт, что переадресация по протоколу SOCKS4 оказывает воздействие только на сам трафик. Она не переадресовывает запросы DNS, которые используются для управления трафиком. Поэтому администратор на локальной линии может контролировать подключение к ней и даже изменять адресата, хотя соединение читателя само по себе может быть безопасным. Это может создавать серьезный риск безопасности. Есть надежда, что в ближайшем будущем названная проблема будет благополучно решена при помощи реализации в семействе клиентов OpenSSH возможности динамической переадресации по протоколу SOCKS5.

Тем временем обе проблемы древних серверов и протоколов могут быть частично разрешены путем инсталляции на сервере небольшой порции программного кода, позволяющего работать по протоколу SOCKS4/5. Автор отдает предпочтение программе usocksd, доступной по адресу http://sites.inkade/sites/bigred/sw/usocksd-0.9.3.tar.gz. Хотя программа usocksd поддерживает только протокол SOCKS5, она удаленно разрешает имена и остается стабильной при неблагоприятных для нее сетевых условиях. Запуск ее не слишком сложен:

Dan@EFFUGAS ~

$ ssh -L2080:127.0.0.1:2080 effugas@10.0.1.11 “./usocksd -p

2080”

effugas@10.0.1.11’s password:

usocksd version 0.9.3 (c) Olaf Titz 1997-1999

Accepting connnections from (anywhere) ident (anyone)

Relaying UDP from (anywhere)

Listening on port 2080.

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

Говорите свободно: мгновенная передача сообщений по SSH

Вероятно, осталось всего лишь несколько хакеров старой закалки, кто, возможно, скорбит об этом. Мгновенный обмен сообщениями является одной из революционных новинок для сети. Существуют две главные причины, по которым приблизительно в начале 2002 года мгновенная передача сообщений на общедоступном уровне сильно всех раздражала (в противоположность корпоративному / внутреннему уровню). Во-первых, будучи грубоватой, она не могла обеспечить достаточной безопасности. Обычно сообщения посылаются от компьютера к центральному серверу и обратно в открытом виде, поэтому любой, находясь в школе или на работе, может перехватить их во время передачи.

Другой причиной, вызывающей раздражение, является отсутствие приличных стандартов мгновенной передачи сообщений. Хотя IETF (Internet Engineering Task Force – проблемная группа проектирования Интернет, отвечающая за решение инженерных задач Интернет. Она выпускает большинство RFC, используемых производителями для внедрения стандартов в архитектуру TCP/IP) работает на чем-то, что известно как SIMPLE (расширение сокращения SIP), но у каждого производителя свой протокол, по которому никто другой не может взаимодействовать. Для установки голосовой связи с любой точкой мира нет необходимости использовать набор из четырех телефонов, но до сих пор сохраняется необходимость в четырех клиентах для словесного обмена через Интернет.

Однако такова плата за централизацию мгновенной передачи сообщений, которая по сравнению с одноранговой сетью (соединение равноправных узлов сети, отличающееся отсутствием выделенного файл-сервера), как, например, ICQ (произносится как «I seek you» – система интерактивного общения в Интернете. Позволяет находить в сети партнеров по интересам и обмениваться с ними сообщениями в реальном масштабе времени. Продукт компании Mirabilis, в настоящее время принадлежащей корпорации America Online; которая в конечном итоге частично использует идею централизации), значительно надежнее и лучше защищена межсетевым экраном. Все было бы еще ничего, если существовал бы какой-нибудь способ смягчить последствия темных сторон чата (обмена текстовыми сообщениями между абонентами сети Интернет в реальном масштабе времени).

Связь всех сообщений в один узелок: работа программы Trillian по протоколу SSH. ПрограммаTrillian является свободно распространяемым и, безусловно, блестящим программным кодом для платформы Win32. Она является необыкновенно элегантным и функционально полным клиентом чата. Программа Trillian в рекламе не нуждается. Программа Trillian поддерживает Yahoo, MSN, ICQ, AOL и даже IRC. Она предоставляет унифицированный интерфейс ко всем пяти сервисам точно так же, как и многопользовательские профайлы операционных систем.

Программа непосредственно поддерживает модули доступа проксипротокола SOCKS4. Это означает, что нет легкого способа избежать поступления на сервер необработанных данных незашифрованного текста. (Хотя в программе предусмотрен режим SecureIM, позволяющий двум пользователям программы Trillian установить соединение более безопасным способом.) Но, по крайней мере, с помощью программы можно экспортировать незашифрованный текст за пределы своей локальной сети, где уйма любопытных глаз следит за проходящим трафиком, если он может там пройти. Установка поддержки протокола SOCKS4 в программе Trillian очень проста.

1. Щелкните на большом изображении земного шара в нижнем левом углу и выберите пункт меню Preferences.

2. Выберите пункт меню Proxy из списка выражений c левой стороны. Приблизительно это девятый пункт меню при просмотре списка сверху вниз.

3. Отключите опции Use Proxy и SOCKS4.

4. Введите в поле, описывающее адрес хоста, значение 127.0.0.1 и укажите в поле, задающем номер порта, величину 1080 (или любой другой используемый пользователем номер порта).

5. Щелкните на кнопке OK и начните регистрацию внутри своего сервиса. Теперь вся работа будет осуществляться через протокол SSH.

Вы кто? Yahoo IM 5.0 по протоколу SSH. При настройке браузера Internet Explorer для работы по протоколу SOCKS с модулем доступа проксилокального хоста Yahoo заработает автоматически, но при этом он попытается использовать пятую версию протокола SOCKS вместо четвертой, которую браузер пока еще не поддерживает. Но в любом случае установка Yahoo для работы с SOCKS4/SSH довольна проста:

1. Перед подключением выберите пункты меню Login I Preferences.

2. Выберите вкладку Use Proxy.

3. Включите опцию Enable SOCKS Proxy.

4. Используйте в поле Server Name значение 127.0.0.1 и в поле Port величину 1080 (или другие значения по усмотрению читателя).

5. Выберите Ver 4.

6. Щелкните на кнопке OK.

Пользователю следует только удостовериться, что его динамическая переадресация куда-то отскакивает рикошетом от SSH-сервера. Этого будет достаточно для переключения в онлайновый режим работы. При потере динамической переадресации помните о необходимости впоследствии отключить конфигурацию модуля доступа прокси.

Криптография в коротких штанишках: работа AOL Instant Messenger 5.0 по протоколу SSH. Установка этой программы также очевидна. Помните, что если динамическая переадресация не отскакивает рикошетом куда-либо, будь то школьный или домашний сервер читателя, то ничего передать не получится.

1. Выберите пункты меню My AIM I Edit Options I Edit Preferences.

2. Щелкните на Sign On/Off в домашней строке состояний слева.

3. Щелкните на вкладке Connection для настройки AIM (AOL Instant Messenger 5.0) для своего проксисервера.

4. Проверьте поле Connect Using Proxy и выберите своим протоколом SOCKS4.

5. Используйте значение 127.0.0.1 в качестве IP-адреса своего хоста и величину 1080 в качестве значения номера порта (или другие значения, которые использует читатель).

6. На обоих раскрытых окнах щелкните на кнопке OK. После перечисленных действий у читателя появится возможность подключиться. Только пусть читатель помнит о необходимости блокировки конфигурации модуля доступа прокси, если он еще раз захочет напрямую подключиться через Интернет.

BorgChat: Microsoft Windows Messenger по протоколу SSH. Требуется выполнить чуть больше тех же самых действий.

1. Выберите пункты меню Tools I Options.

2. Щелкните по вкладке Connections.

3. Включите опцию поля I Use A Proxy Server и убедитесь, что выбрано значение SOCKS4.

4. Введите в поле Server Name значение 127.0.0.1 и задайте номер порта величиной 1080 (или как-то иначе).

5. Щелкните на кнопке OK.

Оболочка: инкапсуляция произвольных приложений Win32 внутри механизма динамического продвижения данных

Как правило, любое приложение, которое обрабатывает выходящие TCP-соединения, может быть достаточно легко выполнено при помощи динамической переадресации. Стандартным инструментальным средством для инкапсуляции протокола SOCKS на платформе Win32 (также немного обсудим и UNIX) является инструментарий SocksCap компании NEC. Это неудивительно, потому что именно она изобрела протокол SOCKS. Кроме того, NEC известна тем, что подарила миру TurboGrafx-16. Инструментарий SocksCap можно найти по адресу www.socks.nec.com/reference/sockscap.html. SocksCap предоставляет дополнительный модуль запуска для приложений, у которых иногда возникает необходимость пройти модуль доступа проксипротокола SOCKS без обязательного написания 10 строчек программного кода, обязательного для поддержки работы протокола SOCKS4 (вздох).

Использовать SocksCap тривиально. Первое, что следует сделать после его запуска, – это перейти в меню, выбрав пункты File I Settings, ввести в поле Server его IP-адрес 127.0.0.1 и указать значение 1080 для номера порта. После щелчка на кнопке OK останется просто перетащить в окно SocksCap ярлык приложения, которое было только что запущено для передачи или приема данных через туннель, созданный при помощи протокола SSH. На самом деле читатель может просто перетащить из меню Start нужные пункты в окно Control инструментария SocksCap (см. рис. 13.3). Приложения, на которые указывают выбранные пользователем пункты меню, могут быть выполнены непосредственно или добавлены в «профайл» для выполнения их позднее.

Рис. 13.3. Настройки протокола SOCKS в Windows с помощью инструментария SocksCap

Большинство вещей «просто работают». Но одно из них – FTP – работает особенно хорошо, быстро передавая данные при помощи протокола SSH.

Запомните: FTP поверх SSH при помощи LeechFTP. Долгое время слабым местом протокола FTP была неудовлетворительная поддержка передачи файлов по протоколу SSH. Потребность в передаче данными по протоколу FTP поверх SSH очень велика. Мысль об исправлении этого недостатка долгое время не давала покоя разработчикам, но для этого основательно топорному протоколу был необходим специальный пакет. Отражая указанные потребности, SSH.com и MindTerm в своих более поздних версиях программного обеспечения реализовали специальный уровень FTP трансляции. С другой стороны, OpenSSH обрабатывает протокол FTP точно так же, как и любой другой нетривиальный протокол, причем делает это достаточно хорошо.

Нет никаких сомнений в том, что программа LeechFTP является выдающимся клиентом FTP для Windows. Написанная Яном Дебисом (Jan Debis) программа LeechFTP доступна по адресу http://stud.fh-heilbronn.de/~jdebis/leechftp/files/lftp13.zip. Она относится к классу свободно распространяемых, многопоточных и простых в использовании программ. Кроме того, LeechFTP прекрасно инкапсулируется в SocksCap и OpenSSH. Одним из наиболее важных режимов настройки работы протокола FTP является переключение с активного режима работы (Active FTP) к пассивному (Passive FTP). В активном режиме сервер инициализирует дополнительные TCP-соединения к клиенту, внутри которых будут переданы отдельные файлы, а в пассивном – сервер именует TCP-порты таким образом, чтобы клиент подключался к ним и переданное по ним содержимое было отдельным файлом. Переключение режимов осуществляется следующим образом.

1. Выберите пункты меню File I Options.

2. Щелкните на вкладке Firewall.

3. Включите опцию PASV Mode.

4. Щелкните на кнопке OK и подключитесь к какому-либо серверу. Сверкающая стрелка в левом верхнем углу (см. рис. 13.4) является признаком успешного начала работы.

Рис. 13.4. Обработка данных программой LeechFTP

Насколько хорошо это работает? Посмотрите на рис. 13.4. Семь потоков с высокой скоростью обрабатывают данные, используя динамически определяемые порты. Они делают это специально для автора. На суд к Виргилию: команда socksify клиента Dante для инкапсуляции приложений UNIX

Для передачи данных через межсетевые экраны в некоторые инструментальные средства UNIX встроена поддержка протокола SOCKS, но таких средств немного. Большинство инструментальных средств в этом направлении вообще ничего не делает. К счастью, с помощью клиента Dante можно добавить поддержку протокола SOCKS во все динамически подключенные приложения. Разработанная компанией Inferno Nettverks программа Dante является промышленной улучшенной реализацией протоколов SOCKS4/SOCKS5. Хотя и с трудом, но ее можно откомпилировать на большинстве платформ. Программа Dante находится по адресу ftp://ftp.inet.no/pub/socks/dante-1.1.11.tar.gz.

Первое, что нужно сделать после ее инсталляции, – это на системном уровне настроить протокол SOCKS. Конечно, это сильно раздражает, но выбора нет (по крайней мере, сейчас). Для настройки протокола создайте файл под именем /etc/socks.conf и запишите в него следующее:

route {

from: 0.0.0.0/0 to: 0.0.0.0/0 via: 127.0.0.1 port = 1080

proxyprotocol: socks_v4

}

После этого нужно адаптировать приложения для работы с протоколом SOCKS, выполнив перед их запуском команду socksify. Это заставит приложения устанавливать соединения при помощи механизма динамического продвижения данных, который установлен таким образом, что к нему можно обратиться через порт 1080. Из-за централизованного размещения настроек протокола SOCKS необходимо одновременное выполнение двух условий. Во-первых, к системе, на которой работает пользователь, нужен доступ суперпользователя. И во-вторых, следует ограничиться одновременной работой только с одним динамическим механизмом продвижения данных. Для ознакомления с последними сведениями об этих раздражающих ограничениях зайдите на сайт www.doxpara.com/tradecraft или Web-сайт книги www.syngress.com/solutions. В некоторых приложениях, прежде всего это относится к таким известным программам, как Mozilla и Netscape, очень удачно реализована поддержка протокола SOCKS. В большинстве случаев подобные приложения могут быть настроены точно так же, как и браузер Internet Explorer. К сожалению, приложения класса setuid в общем случае не могут воспользоваться таким способом переадресации. К ним часто относят ssh, хотя для него устанавливать идентификатор пользователя setuid уже не требуется. Если говорить в целом, то большинство вещей, реализованных на основе сказанного, работают вполне успешно. Ниже показан работающий пример работы одной из таких реализаций, основанный на запуске SSH с опцией – D1080:

bash-2.05a$ socksify ncftp

NcFTP 1.9.5 (October 29, 1995) by Mike Gleason, NCEMRSoft.

ncftp>set passive

ncftp>open mirrors.rcn.net

ProFTPD 1.2.0 Server (RCN Mirrors) [mirrors.rcn.net]

Anonymous login ok, send your complete e-mail address as

password.

Anonymous access granted, restrictions apply.

Logged into mirrors.rcn.net.

mirrors.rcn.net:/

ncftp>ls

debian@ mirrors/ pub/

mirrors.rcn.net:/

ncftp>

Конечно, подключение проверяется на прохождение через механизм переадресации SSH пользователя так, как это показано ниже:

libertiee:~> ~#

The following connections are open:

#2 client-session (t4 r0 i1/0 o16/0 fd 6/7)

#3 direct-tcpip: listening port 1080 for 207.172.2.141

port 21, connect from 127.0.0.1 port 1666 (t4 r1 i1/0

o16/0 fd 9/9)

Загрузка...