Как стать автором
Обновить

Zebedee — защищенный TCP и UDP тоннель

Время на прочтение2 мин
Количество просмотров4.4K
Название тоннеля Zebedee происходит из трех его составляющих:
— Zlib compression
— Blowfish encryption
— Diffie-Hellman key agreement.

Что это и для чего


Zebedee создает зашифрованный тоннель со сжатием, для передачи данных по TCP и/или UDP протоколам. Из преимуществ хотелось бы отметить простоту установки и настройки клиентской и серверной части под MS Windows, Linux, FreeBSD и т.д.

Ниже показан основной принцип работы:

 [source] <===> [client] <=====> [server] <===> [target]
            |               |               |
            +- insecure     |               + insecure
               connection   |                 connection
                            +- secure tunnel


IRL


В одно чудесное утро, внезапно, мне понадобилось лицезреть десктоп сервера (Win 2k3), который находился очень далеко от меня, во внутренней подсети, за шлюзом (FreeBSD). Сразу оговорюсь: я знаю о существовании VPN, SSH тоннелей, VNC, etc, но по некоторым причинам использовал именно то, о чем пойдет речь ниже. Посему данная выше схема приобрела вид:

 [мой ноутбук] <===> [zebedee client@WinXP] <=====> [zebedee server@FreeBSD] <===> [Win 2k3]
                 |                            |                                |
                 +- insecure                  |                                + insecure
                     connection               |                                   connection
                                              +- secure tunnel


Серверная часть


В моем случае для FreeBSD — source:
zebedee-2.4.1A
blowfish-0.9.5a
zlib-1.2.3
bzip2-1.0.3


собираем библиотеки:
$cd ./blowfish-0.9.5a/
$make optimize
$cd ..
$cd ./zlib-1.2.3/
$./configure; make
$cd ..
$cd ./bzip2-1.0.3/
$make
$cd ..

и собственно zebedee:
$cd ./zebedee-2.4.1A/
$make OS=freebsd
$make install

Все вышеназванное, так же можно установить из портов:
$cd /usr/ports/security/zebedee
$make install

создаем конфигурацию сервера /usr/local/etc/zebedee.conf:
server true # работаем в режиме сервера
serverport 10488 #здесь ожидаем подключения
ipmode both # работаем как с TCP так и с UDP
logfile ’var/log/zebedee.log’ # пишем лог
compression zlib:9 # сжатие zlib максимальное
detached true # в бекграунд, в виде демона
verbosity 2
target 192.168.1.5:3389 # это сервер с RDP

запускаем:
zebedee -f /usr/local/etc/zebedee.conf
и получаем работающий сервер, ожидающий входящих подключений от клиента

Клиент


Забираем zebedee для Windows и устанавливаем: C:\Program Files\Zebedee.
Для создания подключения к серверу делаем файл 2k3_rdp с таким содержимым:
verbosity 1
detached false #наблюдаем все в консоли
server false # здесь мы как клиент
compression zlib:9 # используем сжатие zlib
serverhost ip.address.server.zebedee # адрес сервера, в данном случае шлюз с FreeBSD
serverport 10488
tunnel 3389:192.168.1.5:3389 # создаем тоннель для подключения по протоколу RDP к серверу 2k3 (192.168.1.5)

Для удобства создаем ярлык, указав в его свойствах:
"C:\program files\Zebedee\zebedee.exe" -f 2k3_rdp
и запускаем его.
Так же можно настроить запуск в виде службы, подробнее здесь

Остается запустить Remote Desktop Connection Client, указав при этом адрес сервера 127.0.0.2(в XP SP2 не получается на 127.0.0.1):
mstsc /v 127.0.0.2
и увидеть долгожданный результат — десктоп того самого сервера.

Not The End


Конечно же, не следует забывать о безопасности, например о ключах для идентификации клиентов, или проверки адреса.
Использовать zebedee можно не только для таких задач, как показано выше. С помощью тоннеля можно легко организовать доступ к БД, Х-серверу, практически к любым ресурсам, которые используют TCP/IP.
Теги:
Хабы:
Всего голосов 6: ↑4 и ↓2+2
Комментарии6

Публикации