Установка Zorp GPL

Версии Zorp

В настоящее время доступны три версии Zorp: Zorp Pro, Zorp GPL и Zorp Unofficial.

Zorp Unofficial ранее играл роль тестовой бета-версии, но последние два года фактически не развивается, его можно свободно получить на сайте [3].

Самой продвинутой является коммерческий Zorp Pro, представляющий собой доработанный Debian, который можно установить за 10 минут (без настройки). В его составе имеются:

ü 16 модулей, контролирующих свои протоколы;

ü сервер управления (Zorp Management Server – ZMS), с помощью которого удобно создавать и настраивать правила работы системы фильтрации, клиенты, при помощи которых и производится удаленная настройка, доступны для нескольких систем;

ü возможно подключение модуля антивирусной проверки;

ü строгая аутентификация по любому протоколу, генерирование ключей на лету на основании информации клиента;

ü возможность горячей перезагрузки без разрыва существующих связей;

ü техническая поддержка.

GPL-версия, распространяемая свободно, не имеет таких богатых возможностей, в ней есть модули, позволяющие контролировать только 6 типов протоколов (HTTP, FTP, PSSL, TELNET, WHOIS, FINGER) и Plug. Последний работает без проверки протокола и поддерживает протоколы, использующие только один порт (SSH, MySQL, VNC, Microsoft Terminal Service, GOPHER, SMB/CIFS, TALK, SYSLOG, RSYNC). Также в GPL-версии для SSL возможна работа только с заранее сгенерированными ключевыми парами. И готовьтесь к тому, что собирать и настраивать все это придется самостоятельно и вручную. Используя версию Pro, относительно просто организовать однократную аутентификацию (SSO – Single-sign-on authentication), с Zorp GPL сделать это невозможно. Осталось добавить, что использование Netfilter налагает ограничение по операционной системе, здесь только GNU/Linux. Cам прокси в Zorp написан на языке С, а модули контроля – с применением языка высокого уровня Python.

Балазс Шайдлер по совместительству является одним из майтайнеров Debian, поэтому самым простым способом установки является использование этого дистрибутива, который затем обновляется его до ZorpOS. Для этого достаточно установить базовые пакеты Debian, затем в файл /etc/apt/sources.list занести (для версии 3.0 woody) следующие строки:

deb https://apt.balabit.hu/zorp-gpl-os/ ↵

zorp-os-3.0/3.0 security zorp-os common-gpl zorp-gpl

deb https://apt.balabit.hu/zorp-gpl-os/ ↵

zorp-os-3.0/3.0 zorp-os common-gpl zorp-gpl

И дать команду на обновление и установку:

# apt-get -u upgrade

В случае использования других дистрибутивов придется немного потрудиться, пересобрав все компоненты с исходных текстов, найти готовые прекомпилированные пакеты, отличные от deb, мне не удалось. Так как межсетевой экран должен иметь минимум компонентов и тем более не иметь компилятора, то устанавливаем базовую систему, а собираем все остальное на отдельном компьютере. В первую очередь необходимо пересобрать ядро, оставив только необходимые опции, а также утилиты iptables.

Версии ядра 2.2 уже имеют встроенный прозрачный прокси, и для его активации требуется только включить в меню «Networking options → IP: firewalling», и активируем «Transparent proxy support». В следующих версиях 2.4/2.6, когда был введен iptables, такая возможность была убрана, поэтому перед компиляцией необходимо будет наложить патч

tproxy [4]. Имя патча имеет вид cttproxy-2.6.15-2.0.4.tar.gz,

где 2.6.15 означает версию ядра, для которого он предназначен, а 2.0.4 – версию tproxy. Также следует помнить о двух совместимостях. Версии TProxy 1.2.x совместимы со всеми версиями Zorp, но не подходят к ядрам серии 2.6, а версия TProxy 2.0 будет работать с ядрами 2.4 и 2.6, но совместима только с Zorp, начиная с 2.1.9.

Для примера используем ядро 2.6.15:

# tar xzvf cttproxy-2.6.15-2.0.4.tar.gz

# tar xjvf linux-2.6.15.tar.bz2

# cd linux-2.6.15

Патчи для ядра находятся в каталоге patch_tree, не все являются обязательными, достаточно установить только 03-tproxy.diff.

# for i in../cttproxy-2.6.15-2.0.4/patch_tree/ ↵

0{1,2,3}*.diff; do cat $i | patch -p1; done

При конфигурировании в «Networking options → IP: Netfilter Configuration →...» включаем «Connection tracking», «IP tables support», «Full NAT» и «Transparent proxying» (см. рис. 2) с дополнительными опциями. В.config-файле это выглядит так:

CONFIG_NETFILTER=m

CONFIG_IP_NF_TPROXY=m

CONFIG_IP_NF_MATCH_TPROXY=m

CONFIG_IP_NF_TARGET_TPROXY=m

CONFIG_IP_NF_IPTABLES=m

CONFIG_IP_NF_NAT=m

Кроме того, для прозрачного прокси необходим виртуальный dummy-интерфейс. Проследите, чтобы во вкладке «Network device support» был активирован пункт «Dummy net driver support». Если в процессе работы Zorp возникнут проблемы, то следует добавить отладочной информации. Заглянув в net/ipv4/netfilter/iptable_tproxy.c, найдете строку:

#ifdef CONFIG_NETFILTER_DEBUG

#define DEBUGP printk

То есть отладочный режим можно активировать глобально, поставив «CONFIG_ NETFILTER_DEBUG=y» либо заменив первую строку на:

#if 1

В последних версиях модуль iptable_tproxy.o загружается автоматически при запуске по мере необходимости, если используете ядро версии 2.4 или более ранние 2.6, то загрузите его вручную при помощи modprobe.

# modprobe iptable_tproxy.o

# lsmod | grep -i tproxy

iptable_tproxy 14340 0

ip_nat 17600 1 iptable_tproxy

ip_conntrack 45516 2 iptable_tproxy,ip_nat

ip_tables 9624 1 iptable_tproxy

Если с ядром все в порядке, то следующим шагом модифицируем и пересобираем утилиты iptables, чтобы они могли работать с новой таблицей tproxy и новой целью TPROXY.

В подкаталоге iptables лежат два патча. Один – для версии iptables 1.2.7a, второй – для 1.3

# tar xzvf iptables-1.3.3.tar.gz

# cd iptables-1.3.X

# cat../cttproxy-2.6.15-2.0.4/iptables/ ↵

iptables-1.3-cttproxy.diff | patch -p1

# chmod +x extensions/.tproxy-test

# make KERNELDIR=/usr/src/linux-2.6.15

Zorp состоит из библиотеки libzorpll и собственно zorp. Последними версиями на момент написания статьи были libzorpll_3.1.2.2 и zorp_3.0.9.tar.gz. Каких-либо особенностей по их установке нет, делаем это обычным образом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: