Защита от хакеров корпоративных сетей
Шрифт:
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.
Использовать 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 доступна по адресуОна относится к классу свободно распространяемых, многопоточных и простых в использовании программ. Кроме того, 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. Семь потоков с высокой скоростью обрабатывают данные, используя динамически определяемые порты. Они делают это специально для автора. На суд к Виргилию: команда 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.
Первое, что нужно сделать после ее инсталляции, –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)Переадресация удаленного порта
Последний предусмотренный в протоколе SSH тип переадресации порта известен как переадресация (перенаправление) удаленного порта (remote port forward). Переадресация удаленного порта, так же как и переадресация динамического порта, позволяет эффективно импортировать сетевые ресурсы. Тем не менее внешний сервер системы групповых дискуссий в Интернете IRC (Internet Relay Chat – Интернетовские посиделки. Глобальная система, посредством которой пользователи могут общаться друг с другом в реальном масштабе времени) ставится в соответствие локальному хосту, а каждое приложение, обеспечивающее проведение переговоров, запускается по IP-адресу 127.0.0.1:1080. Фактически переадресация удаленного порта экспортирует клиентам доступную им возможность сетевого взаимодействия. Экспорт осуществляет через сервер, к которому этот клиент подключен. Сказанное поясняет приведенный ниже пример:
ssh -R listening_port:destination_host:destination_port user@forwarding_host
Все точно так же, как и в случае переадресации локального порта, но теперь слушающий порт находится на удаленной машине, а порты назначения являются портами, которые обычно видны клиенту.
Программа WinVNC является одним из наиболее полезных сервисов переадресации, особенно на платформе Windows (позднее будут обсуждены вопросы переадресации на платформе UNIX). Она доступна по адресу www.tightvnc.com. Программа предоставляет простой для удаленной настройки интерфейс управления. Другими словами, с ее помощью можно увидеть работающий удаленный компьютер и исправить на нем ошибки. Переадресация удаленного порта позволяет экспортировать адресату интерфейс компьютера за пределы защищаемой межсетевым экраном зоны.
Есть ли у читателя запущенный сервер виртуальной сетевой обработки данных VNC? Да, есть:Dan@EFFUGAS ~
$ telnet 127.0.0.1 5900
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is “^]”.
RFB 003.003
telnet> quit
Connection closed.Соединитесь с другой машиной, переадресуя ее порт 5900 к собственному порту 5900.
Dan@EFFUGAS ~
$ ssh -R5900:127.0.0.1:5900 effugas@10.0.1.11
effugas@10.0.1.11’s password:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001Проверьте, будет ли удаленный компьютер видеть свой порт 5900. Проверку выполните точно так же, как и в случае тестирования собственного порта 5900 на локальном компьютере: