25 мая 2008 г.

zebedee под Ubuntu

Программа Zebedee создана для создания так называемых "туннелей", которые шифруются и сжимаются. Вот из-за последней возможности эта программа мне полезна.

Допустим, а пример буду описывать из жизни, имеется машина (комп, система или другое какое-либо название), которая имеет полный доступ в инет и на ней организован прокси-сервер, в моём случае polipo.

Прокси слушает по 3128 порту. В общем это сервер. Также имеется другая машина, клиент, который по каким-либо причинам имеет ограниченный доступ в интернет из-за того, что может трафик дорогой, или же находится за прокси локальной сети и прямого доступа в инет не имеет, в общем, это тот случай, когда нужно, чтобы трафик до клиента сжимался и походу шифровался.

Пакет под Ubuntu, собранный мной, можете скачать здесь, который вы также можете установить с помощью команды:

sudo dpkg -i путь_и_имя_пакета

Кстати, здесь домашняя страница Zebedee , а здесь созданная мной страница про Zebedee на википедии.

Вернёмся к настройкам сервера, для удобства создадим каталог для хранения настроек Zebedee, а именно:
sudo mkdir /etc/zebedee

далее перейдём в созданный нами каталог и создадим ключи доступа, для возможности ограничения доступа к серверу:
cd /etc/zebedee

создаём ключ доступа клиента и сразу записываем в файл:
sudo zebedee -p > new.key

далее создаём отпечаток ключа, по которому клиент будет распознаваться сервером:
sudo zebedee -P -f new.key > client.id

файл new.key следует каким-либо способом переместить на машину клиента, но к этому позже.

Теперь переходим к настройкам, для этого создадим и настроим файл конфигурации сервера:
sudoedit /etc/zebedee/server.conf

содержимое которого должно быть примерно таким:


server true # это сервер
# target localhost # на локальный комп
# target 192.168.0.0/24 # на компы в сетке
compression zlib:9 # максимум сжатия
checkidfile "/etc/zebedee/client.id" # отпечатки разрешённых клиентов
detached true # режим демона
verbosity 2
keygenlevel 2
keylength 256
minkeylength 128
maxbufsize 2048 # максимум 16383, не рекомендую при интенсивном соединении
idletimeout 300 # время, в течении которого будут отключаться неактивные соединения

Теперь в автозапуск или в /etc/rc.local прописываем строку запуска сервера:
zebedee -f /etc/zebedee/server.conf

Также необходимо будет открыть tcp-порт 11965, для udp-соединений 11230.


На машине клиента также устанавливаем пакет и создаём папку для настроек, куда помещаем полученный от сервера файл ключа: new.key

также создаём файл конфигурации клиента:
sudoedit /etc/zebedee/client.conf

и прописываем следующее:


verbosity 2
server false # указываем, что это не сервер, а клиент
# httpproxy 192.168.0.1:8888 # по необходимости использование сервера
serverhost IP # где IP - нужный адрес сервера или его доменное имя
tunnel 8080:localhost:3128 # настраиваем перенаправление порта 8080 на машине клиента на порт 3128 сервера
compression "zlib:9" # уровень сжатия максимальный
keylength 256
detached true
# logfile SYSLOG # по необходимости, указываем куда писать логи
include "/etc/zebedee/my.key" # ключ клиента


Также в автозапуск или в /etc/rc.local прописываем строку запуска клиента:
zebedee -f /etc/zebedee/client.conf

После чего настраиваем на машине клиента http-прокси как адрес 127.0.0.1:8080 и работаем.

Простейшая настройка прокси в терминале:
export http_proxy=http://127.0.0.1:8080

Таким образом, можно настроить не только http трафик, но и любое tcp/udp соединение, смотря какие цели достичь необходимо.

Замечу, что адрес сервера проще установить с помощью сервиса NO-IP, если у вас нет своего доменного имени или выделяется вам динамический ip.

Не следует забывать, что Zebedee имеется и под оффтопик, что позволяет увеличить область его применения.