Cвободно распространяемый инструмент Zebedee предназначен для защищенного туннелирования протоколов TCP и UDP через Internet. К его основным функциям относятся шифрование, аутентификация и сжатие данных. В качестве специализированной программы туннелирования Zebedee может предложить ряд возможностей, которые нельзя найти в других аналогичных решениях, например в SSH. Программа может работать под управлением как Linux, так и Windows.

Использование туннелей TCP для защищенной коммуникации с другими системами пользователи SSH воспринимают как удобное дополнение к сеансам Secure Shell (см. статью К. Пфайлера «Туннель ТСР как выделенный канал» в февральском номере «Журнала сетевых решений/LAN»). Эта технология может помочь администраторам, когда речь идет о выполнении задач по обслуживанию удаленной сети через Internet посредством telnet, HTTP или, к примеру, удаленной программы управления VNC. Такое туннелирование отдельных протоколов, хотя и не слишком удобно, но предлагает достаточные возможности для доступа. В результате становится ненужной организация более дорогих соединений между локальными сетями или виртуальных частных сетей (Virtual Private Network, VPN).

Тем, кто хотел бы воспользоваться туннелями или уже исчерпал соответствующие возможности SSH, рекомендуется программа с открытыми исходными текстами Zebedee ( http://www.winton.org.uk/zebedee, загрузить ее можно также по адресу: http://sourceforge.net/ prijects/zebedee с сайта Нейла Уинтона). Этот свободно распространяемый инструмент предназначен исключительно для организации туннелей и поэтому не может стать альтернативой таким громоздким программным средствам, как SSH, однако он отличается большой функциональностью и необходимой гибкостью. Наряду с исходными кодами можно загрузить исполняемые программы для Windows (95/98/ME/NT/2000/XP) и для Linux.

ВАЖНЫЕ ОСОБЕННОСТИ

Один из интересных аспектов Zebedee состоит в том, что она может устанавливать туннели не только между портами TCP, но и между портами UDP. Таким образом появляются дополнительные возможности, в том числе создание туннелей SNMP (порт UDP 161). Как и в случае с SSH, все туннели (включая UDP) проходят по одному соединению TCP, которое, в отличие от SSH, по умолчанию использует не порт ТСР 22, а порт ТСР 11965. С его помощью Zebedee может отправить по туннелю и саму себя, благодаря чему пользователи, которые хотели бы сохранить существующее соединение SSH, смогут передать Zebedee по туннелю SSH и в дальнейшем работать с UDP.

Еще один положительный аспект программы Zebedee, которую мы тестировали в среде Windows, не столь очевиден: один файл *.exe служит и сервером, и клиентской программой, а потому выполняется как из командной строки, так и инсталлируется в виде службы NT. Следовательно, у Zebedee не только серверный, но и клиентский компонент может исполняться как служба NT. Этот рабочий режим обеспечивает высокую готовность и стабильность туннелей, особенно когда они используются не индивидуально, а предоставляются другим компьютерам или сетевым устройствам в качестве коммуникационной услуги. Поскольку имя службы NT также назначается произвольно, на одном и том же компьютере параллельно могут работать несколько экземпляров служб Zebedee для различных прикладных целей (например, для серверной и клиентской служб).

При этом построенные с помощью Zebedee туннели обладают большей надежностью, чем, к примеру, туннели SSH, поскольку последние создаются каждый раз в рамках одного фиксированного сеанса. Туннели Zebedee состоят из последовательности отдельных коротких соединений и создаются в зависимости от потребности в них, благодаря чему туннельное соединение выдерживает длительные физические разрывы. Соединение Zebedee «не смутит» даже смена IP-адреса системы-получателя: определение адреса по доменному имени происходит при установлении каждого отдельного соединения. Поэтому Zebedee великолепно подходит для организации длительных по времени туннелей в сети, доступ к которым производится через Internet посредством, к примеру, DSL с фиксированной ставкой и динамической DNS, причем их общедоступный IP-адрес меняется максимум через 24 ч.

ИНСТАЛЛЯЦИЯ

Вариант Zebedee для Windows поставляется в виде удобной программы установки. В соответствующий каталог инсталлируется собственно продукт, файл подсказки в формате HTML длиной почти 50 страниц, а также некоторые демонстрационные конфигурации. Программа адаптируется в соответствии с индивидуальными требованиями путем задания различных параметров в командной строке или простого изменения конфигурационного файла в формате ASCII с расширением *.zbd. Этот тип файлов при инсталляции автоматически ассоциируется с Zebedee, благодаря чему туннельные соединения могут организовываться непосредственно после вызова соответствующего конфигурационного файла. Мобильным пользователям, которым часто приходится работать за чужими компьютерами, интересно будет узнать, что инсталляция программы в описанном виде вовсе не обязательна: в крайнем случае достаточно дискеты с *.ехе и, при необходимости, индивидуальных конфигурационных файлов. Таким образом практически отовсюду можно легко построить надежные туннельные соединения, например, с собственным офисом.

Как и SSH, Zebedee использует по умолчанию шифрование и сжатие данных в туннелях. Название программы — библейское имя Зеведей — образовано, по утверждению производителя, от первых букв трех лежащих в ее основе технологий: сжатие — Zlib, шифрование — Blowfish и соглашение о ключах — Diffie-Hellman. Хотя аутентификация клиентской и серверной сторон в Zebedee необязательна, но она возможна в обоих направлениях с помощью пар открытых/личных ключей и настоятельно рекомендуется. Пары ключей генерируются программой на месте, однако автоматическое распределение соответствующих открытых ключей не реализовано. Для этого пользователю придется воспользоваться другими средствами передачи — дискетой или электронной почтой. Ключи хранятся в отдельных файлах формата ASCII, которые — так же как и пути к ним — могут быть ассоциированы с различными конфигурациями.

ВАРИАНТЫ ЗАПРОСОВ

Основная концепция построения туннелей в случае Zebedee и SSH практически одинакова: клиент и сервер образуют конечные пункты для защищенного туннельного соединения, однако в качестве пунктов назначения при передаче данных могут быть указаны и другие IP-устройства в серверной сети. Другие устройства в сети отправителя также могут использовать установленные клиентом туннельные соединения. В обоих случаях накладываются определенные ограничения. Конечно же, Zebedee поддерживает многократные соединения с различными адресами в серверной сети посредством одного-единственного запроса. Синтаксис позволяет даже снабжать определения туннелей списками портов, разделенных запятыми, например:

8080, 2000-2100:<Целевой хост>:80, 3000-3100

Порты ТСР и UDP можно объединять в смешанные списки при помощи соответствующих ключей. Особенностью Zebedee является возможность освобождения входного порта туннеля и тем самым предоставления его программе. Пользователю нет необходимости самостоятельно проверять, заняты ли локальные порты (например, при помощи команды операционной системы netstat -an). Использовать эту возможность, конечно, можно, но только с такими приложениями, как telnet, которые могут адресовать передачу данных на любые порты. Реальный смысл этот вариант имеет в комбинации с возможностью связать Zebedee с программным вызовом. Синтаксис позволяет передать локальный порт приложению через переменную в качестве параметра. Так, к примеру, вызов

zebedee -f "telnet localhost %d" <Целевой хост>

запускает сначала Zebedee, а потом telnet с выбранным программой локальным портом. После завершения интегрированного приложения останавливается и выполнение Zebedee. При работе на чужих компьютерах такой «туннель по требованию» может оказаться очень полезным, поскольку пользователю не придется заботиться о диспозиции туннельного соединения.

ОБРАТНЫЕ ТУННЕЛИ

Абсолютно иначе, по сравнению с SSH, решается задача обратных туннелей. SSH использует существующие уже сеансы от клиента к серверу, чтобы при необходимости одновременно создать заранее определенные туннели в обратном направлении. В случае Zebedee это невозможно. Для обратных туннелей клиенты и серверы Zebedee придется перезапустить в специальных рабочих режимах, именуемых «клиентский хост» и, соответственно, «режим прослушивания». При этом коммуникационный порт 11965 открывает не сервер, а клиент; сервер же пытается «дозвониться» до клиента. После установления соединения определенные таким образом туннели функционируют в обычном режиме.

Zebedee в последней «стабильной версии» 2.4.1 предоставляет весьма ограниченные возможности работы с обратными туннелями: клиент при запуске сервера должен быть готовым к приему, что в любом случае делает необходимой синхронизацию этих процессов «по внешнему каналу» (например, предварительное согласование момента включения или непосредственная договоренность по телефону). В разрабатываемой версии 2.5.2 обратным туннелям уделено больше внимания, судя по конфигурируемым механизмам повтора и возможности задания тайм-аутов. Однако тем, кому приходится постоянно пользоваться обратными туннелями, нельзя полностью полагаться на данные технологии. Как минимум, на стороне сервера можно посоветовать вместо службы NT работать с бесконечным командным файлом, как это уже предлагалось редакцией LANline в связи с туннелями SSH.

ПРАКТИЧЕСКИЙ ОПЫТ

Реальные возможности Zebedee открываются пользователю не с первого раза. Хотя программа и содержит некоторые демонстрационные примеры для Real VNC, но ее частое использование предполагает подробное изучение весьма запутанной документации, а также проведение одной-другой тестовой инсталляции. Некоторые пользователи наверняка откажутся от Zebedee для Windows уже после первых попыток обращения к программе: она блокирует командную строку и, как кажется, не функционирует — проблема, которую разработчик, по всей видимости, так и не решил в полной мере, предложив вместо этого применить команду start операционной системы.

Такая программа, как Zebedee, обеспечивает хороший базис для построения туннелей, однако каждый пользователь должен решить сам, какие приложения и, в определенных случаях, с помощью каких приемов можно успешно туннелировать. Zebedee предусматривает специальную поддержку для ftp, однако об автономном решении, предлагаемом, например, SSH вместе с ее графическим клиентом Windows, речи не идет. Для создания туннеля NetBIOS/SMB (порт ТСР 139) Zebedee предусматривает элегантную возможность конфигурации, благодаря чему становится возможным беспроблемный удаленный доступ к разделяемым ресурсам Windows (дополнительную информацию по этому вопросу см. в архиве электронной почты сайта Zebedee).

В заключение следует указать на то, что именно свободный программный инструмент, каким является Zebedee, открывает такие возможности его применения в корпоративных сетях, о которых не сразу задумываются в случае дорогих продуктов. Так, Zebedee благодаря механизмам сжатия можно применять для передачи по туннелям приложений с высокими требованиями к пропускной способности. В качестве примера можно привести задания на печать на порт очереди принтеров (часто 9100). Zebedee может оказаться полезным средством для организации защищенных от прослушивания соединений в пределах предприятия или при использовании внутренних брандмауэров. (См. также врезку «Через «черный ход» в корпоративную сеть».)

Курт Пфайлер — редактор LANline. С ним можно связаться по адресу: pf@lanline.awi.de.


? AWi Verlag


Через «черный ход» в корпоративную сеть

С позиции администратора, построение даже обычных туннелей — палка о двух концах. Возможность работы из любого места, конечно, очень полезна, но предоставление ее пользователям — достаточно сомнительный выбор с точки зрения соблюдения мер безопасности. В первую очередь это сомнение обосновано — как и в случае с SSH — при создании обратных туннелей. Пользователи получают «черный ход» в корпоративную сеть в виде удаленного доступа, против которого ни брандмауэр, ни трансляция сетевых адресов (Network Address Translation, NAT), ни proxy-серверы не могут обеспечить достаточных мер защиты. Поэтому разработчик Zebedee предостерегает в сопровождающей документации от неавторизованного использования этих технологий в корпоративных сетях. Однако администраторы должны их знать, чтобы суметь провести текущую или — при необходимости — внеочередную проверку.