LXF98:Сравнение

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Оболочки брандмауэров

Излишне разъяснять важность обороны от интернет-вторжений. Крис Хауэллс подобрал несколько программ, призванных нас защитить.

Про наш тест…

Тест проводился в системе Kubuntu 7.04 Feisty Fawn, установленной на Lenovo ThinkPad X60s с 1,5 ГБ RAM и 1,66-ГГц процессором Intel Core Duo. Программы сравнивались по следующим критериям:

  • Простота Задача такого рода приложения – облегчить настройку брандмауэра. Поэтому программа должна быть

интуитивно-понятной и, желательно,подвластной человеку, плохо представляющему, что такое брандмауэр.

  • Документация Столь критичному участку безопасности сети необходима хорошая документация: пользователь

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

  • Функционал Сети имеют обыкновение разрастаться, а инструмент должен поспевать за их ростом, обладая запасом необходимых функций.

Любая оболочка должна «уметь» не только составлять элементарные правила iptables, но и настраивать трансляцию адресов, поддерживать маршрутизацию, подсчитывать трафик и многое другое.

Введение

Брандмауэр – современный цифровой аналог крепостного рва и подъемного моста: захватчики не пройдут, друзей – милости просим. Это первая линия Интернет-обороны, и очень важно его установить, независимо от масштабов вашей крепости – крупная ли это сеть или одиночная |рабочая станция.

Следует признать, что постройка брандмауэра на Linux – далеко не тривиальная задача. Обычно защиту настраивают при помощи инструмента командной строки iptables, причем требуются немалые познания и понимание различных концепций, связанных с данным вопросом, что достигается лишь чтением изрядного количества документации.

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

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

Подобные программы умеют составлять не только простые правила iptables. Технология трансляции адресов (Network Address Translation, NAT) позволяет скрыть многочисленные частные IP-адреса за одним общим IP-адресом (подробности см. http://www.ietf.org/rfc/rfc1918.txt). Вам может также понадобиться помощь в пробросе портов, шейпинге и учете трафика.

В общем, имеете ли вы дело со скромным настольным ПК, или с обширной сетью – найдутся программы, призванные обеспечить вашу безопасность.

KMyFirewall

Бесхитростное название прозрачно намекает на принадлежность KDE…

Будучи солидным приложением, KMyFirewall предлагает пользователю два вида интерфейсов. Generic Interface предоставляет сравнительно простой, но не особо мощный интерфейс для iptables.

Зато Iptables Interface позволяет добраться почти до любого параметра настройки брандмауэра. Но пользоваться этим интерфейсом ненамного проще, чем писать правила iptables, так как необходимо все-таки иметь представление о сути вопроса.

Запустив KMyFirewall не как суперпользователь, вы тем не менее будете вынуждены назвать его пароль, чтобы сделанные изменения, требующие особых привилегий, вступили в силу. Предоставляется много готовых образцов, среди которых варианты для рабочей станции, NAT-маршрутизатора и web-сервера.Можно начать и с совершенно новой, чистой конфигурации.

Нас с ходу расстроило стартовое заявление KMyFirewall о том, что наборы правил, составленные в предыдущих версиях, работать не будут, «даже не пытайтесь». Это обижает пользователей прежних версий и заставляет заподозрить, что будущие смены версий тоже проигнорируют обратную совместимость, и трудоемкий процесс придется начинать с нуля.

В Generic-режиме интерфейс пользователя состоит из нескольких страниц с параметрами настройки. Первая, Access Control (Управление доступом), позволяет указать протоколы, по которым разрешены входящие и исходящие подключения. Вторая, Special Hosts (Особые хосты), дает возможность указать хосты, отношения с которыми оговариваются особо – например, серверы, контакт с которыми запрещен.

Управление пакетами Internet Control Message Protocol (ICMP) возможно лишь до некоторой степени, поэтому мы удивились, увидев подпись под одним из параметров: «Ограничив число ping-запросов, можно избежать DoS (Denial of Service)-атак». Да, до некоторой степени защититься можно, но «избежать» – явное преувеличение.

Трансляция настраивается на следующей странице. Жалко, что KMyFirewall в режиме Generic, похоже, не поддерживает проброс портов.

Нажав кнопку, можно предварительно просмотреть полученный брандмауэр. Это полезно для изучения механизма работы iptables. В Iptables Interface возможен доступ почти к любому параметру настройки брандмауэра. Интерфейс пользователя по сложности почти идентичен самой iptables. Например, можно получить непосредственный доступ к любой из трех цепочек пакетных фильтров iptables: INPUT, OUTPUT и FORWARD. Можно составить собственные правила, установить политику по умолчанию (например, предписать отклонять все пакеты, кроме точно соответствующих установленным критериям отбора) и многое другое.

К сожалению, мы нашли здесь ошибку: установленные правила не появляются в списке, пока не выбран хотя бы один из пунктов в группе флажков Table. Ошибка простая и легко устраняемая, но пользователей такое поведение не радует.

Сохраняем настройки

Настройку брандмауэра можно сохранить, а затем загрузить в формате KMyFirewall Generic Ruleset (.kmfgrs), а можно и экспортировать как обычный скрипт оболочки, где все правила описаны с помощью команд iptables. Предписать KMyFirewall перенести брандмауэр на другую систему тоже несложно: программа создает tar-архив (содержащий правила в виде скрипта) и инсталляционный скрипт для копирования правил в указанное место целевой системы.

В основе KMyFirewall лежит модульная архитектура, и почти каждое правило для брандмауэра реализуется как отдельный модуль. Поэтому программу нетрудно преобразовать, добавив новые модули. В документации создание модулей описано подробно – по сути, для этого достаточно составить XML -файл описания и немного потрудиться в C++ для привязки к графическому интерфейсу. Документация добротна, хотя и без изысков.

KMyFirewall не очень-то изменилась со времен версии 1.0 2005 года. Обещана поддержка создания брандмауэров для других систем, включая pf в OpenBSD. Интересно было бы посмотреть.


Сайт: http://kmyfirewall.sourceforge.net
Цена: Бесплатно под GPL

  • Отважная попытка, с двумя режимами на выбор при брандмауэре любой сложности.

Рейтинг: 8/10


FireHOL

Очевидно, «брандмауэр для людей»!

Приложение реализовано как bash-скрипт, который сам себя устанавливает на целевую Linux-систему. Брандмауэр формируется введением различных правил в файл конфигурации. Этот файл также является bash-скриптом, что упрощает написание собственных правил.

Как и в Shorewall, прежде всего придется почитать документацию: программа не очень-то понятна интуитивно. Сайт FireHOL полон документов и примеров. Особенно полезно Tutorial (Руководство), в котором дотошно описан каждый шаг процесса.

Правила брандмауэра состоят из спецификаций сетевого интерфейса (например, eth0), сопровождаемых ключевыми словами server или client. Подстановка server относит правило к входящим подключениям, а client – к исходящим. Затем необходимо указать название протокола для брандмауэра. Заканчивается процесс указанием действия (например, accept). Законченное правило может выглядеть так: server http accept (допустить входящие HTTP-запросы). Кроме брандмауэра, FireHOL позволяет контролировать NAT и маршрутизацию.

Брандмауэром управляет служба, размещаемая в большинстве дистрибутивов в каталоге /etc/init.d. Скрипт принимает ряд параметров, таких как start, для загрузки правил. Параметр try загружает правила брандмауэра на 30 секунд, если не последует commit для подтверждения; это удобно, если в процессе постройки брандмауэра для удаленной системы сделана ошибка, способная привести к разрыву связи и невозможности устранения проблемы.

Документация FireHOL написана прекрасно. Сайт программы несколько перегружен сообщениями типа “Added FireHOL_DROP_ORPHAN_TCP_ACK_FIN for busy servers” с минимальными комментариями.


Сайт: http://firehol.sourceforge.net/
Цена: Бесплатно под GPL

  • Легкими движениями руки построить брандмауэр в FireHOL – одно удовольствие.

Рейтинг: 7/10


Guarddog

Четвероногий друг подает лапу помощи…

Интерфейс еще одной программы KDE – окно с четырьмя вкладками.

Правильно она работает только под суперпользователем. Guarddog совместим с функциональностью брандмауэров, заложенную в ядра 2.2, 2.4 и 2.6.

В первой вкладке устанавливаются зоны. Зона – это, по сути, IP-адрес или IP-сеть, поэтому может состоять из одной или нескольких машин. Концепция зоны – ключевая для программы; по умолчанию имеется зона Интернет и Локальная зона. Можно добавлять другие зоны, указывая их названия, IP-адреса и сетевые маски.

Во вкладке Protocol указывается трафик, допустимый в разных зонах, выбором флажков рядом с названиями протоколов в списке. Многие распространенные протоколы (например, HTTP и FTP) «зашиты» в программу, и не надо запоминать детали связанных с ними служб. Определить новые протоколы можно через вкладку Advanced (Дополнительно).

Вкладка Logging (Регистрация) открывает доступ ко всяким полезным функциям, например, ограничению на подключения: можно задать число одновременных подключений за определенный период времени и настроить многие другие параметры для управления количеством регистрируемой информации.

Брандмауэр нетрудно экспортировать через вкладку Advanced: будет составлен bash-скрипт с набором текущих правил. Это означает, что брандмауэр можно передать даже на машину без Guarddog. В принципе, Guarddog предназначен для работы на машине с действующим брандмауэром, поэтому правила можно корректировать прямо на месте.

На последней вкладке, Port Reference (О портах), собраны сведения о портах с различными номерами.


Сайт: www.simonzone.com/software/guarddog/
Цена: Бесплатно под GPL

  • Сравнительно простая и нетребовательная к ресурсам программа. Хороша для домашних пользователей, но для крупной сети слабовата.

Рейтинг: 6/10


Firestarter

Вообще-то мы предпочли бы огнетушитель
[firestarter – поджигатель, – прим. пер.]!

Программа замечательно «легковесная», написана с использованием Gnome-библиотек, а работать с ней дозволено только суперпользователю. В главном окне – три вкладки, панель инструментов и строка меню. Первая вкладка, Status (Состояние), выдает некоторые общие сведения о состоянии сетевого подключения (сколько переслано данных, включен ли брандмауэр и т.п.).

Во второй вкладке, Events (События), собраны сведения о подключениях, блокированных брандмауэром, а именно номер порта, протокол и источник вторжения.

Наконец, во вкладке Policy (Политика) устанавливаются правила управления брандмауэром. По умолчанию входящие подключения блокируются. Входящий и исходящий трафик можно контролировать, указывая номера портов и IP-адреса. Перенаправление портов настраивается здесь же.

Другой способ настройки Firestarter – режим мастера: процесс пошаговых ответов на вопросы (например, о методе подключения вашей локальной сети). Удобно, что здесь же можно настроить разделяемый доступ к Интернету, обычно включив NAT и запустив DHCP-сервер для автоматической настройки других хостов, входящих в состав локальной сети.

Пользоваться Firestarter несложно – панель инструментов содержит контекстно-зависимые значки для управления основными функциями программы. Например, во вкладке Status есть кнопка Lock Firewall (Запереть брандмауэр), останавливающая весь трафик целиком, а другой кнопкой (Start/Stop) можно, соответственно, остановить или запустить защиту.

Документация составлена неплохо, с рисунками и примерами. Небольшая загвоздка: при выборе пункта Help (Справка) программа пытается открыть сайт Firestarter в Mozilla – это никак не спасет, если сеть еще не подключена! Было бы гораздо полезнее предоставлять справочные материалы локально.


Сайт: www.fs-security.com
Цена: Бесплатно под GPL

  • Очень простой и эффективный брандмауэр для домашних, но не для производственных, целей.

Рейтинг: 6/10


Firewall Builder

Кроссплатформенный полиглот.

Графическая, кроссплатформенная, пригодная для Windows, Mac OS X и Linux, Firewall Builder – просто универсальная программа. Она способна составлять правила для многих типов брандмауэров, включая pf для OpenBSD, PIX-устройств Cisco и, конечно, Linux-iptables.

Для управления брандмауэрами Firewall Builder использует концепцию объектов. Например, каждый хост рассматривается как объект, которому можно присвоить сетевой интерфейс и IP-адрес (тоже объекты). Объекты выделяются в «дереве» левой части окна, а обрабатываются в правой части. Добавляются объекты щелчком на подходящем участке дерева и выбором New (Создать) – конкретное название зависит от контекста. Расположение объекта можно изменить копированием/вставкой.

Firewall Builder снабжен значительным количеством объектов, описывающих большинство известных протоколов вроде SMTP и HTTP, хотя эстеты могут определять собственные службы. Есть и пространное 116-страничное руководство в формате PDF, но, к сожалению, устаревшее, и примеры в нем не соответствуют функциональности современной версии программы. На сайте полно «образцовых» брандмауэров, но нет доходчивого разъяснения о том, как же они работают. Позор.

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


Сайт: www.fwbuilder.org
Цена: Бесплатно под GPL

  • Мы искренне пытались полюбить Firewall Builder, но не смогли, из-за путаного дизайна и устаревшей документации.

Рейтинг: 3/10


Shorewall

Судя по аннотации программы, это «iptables, но куда проще».

Консольная программа Shorewall применяется для создания скриптов iptables. Правила брандмауэра записываются на особом языке настройки, что несколько упрощает процесс их создания. Готовые правила Shorewall компилирует в скрипт, а затем загружает его с помощью своей же облегченной версии. Поэтому, устанавливая брандмауэры для нескольких систем, можно скомпилировать правила на одной из них, а затем распространить на другие, при наличии на них инсталлированного Shorewall-light [в системе, где уже установлен «полновесный» Shorewall, облегченная версия не нужна, – прим. ред.].

Если вы читаете этот номер журнала несколько месяцев спустя после публикации, то версия на сопроводительном DVD, вероятно, уже успела устареть: загрузите свежий RPM или tar-архив с сайта программы. Shorewall включается в состав многих дистрибутивов Linux, но и те версии не из последних.

Не прочитав руководства, за Shorewall браться нечего: консольную программу и графических участников теста не сравнить в наглядности и интуитивности. Правда, Shorewall снабжена объемистой документацией, включая FAQ и Quick Start guide (Руководство к быстрому старту). Примеров тоже много, причем широкий их диапазон охватывает и фильтрование пакетов для P2P- клиентов Kazaa, и инструкции по настройке Shorewall для виртуализованных Xen-систем. Высокое качество документации впечатляет.

Shorewall – чрезвычайно гибкая программа, ею можно пользоваться и на одиночном компьютере с единственным сетевым интер фейсом, и на сервере со множеством сетевых карт и с многочисленными и разнообразными подключениями. Shorewall настраивается редактированием различных конфигурационных файлов, хранящихся в директории /etc/shorewall. Важнйшие из них – /etc/shorewall/zones, где настраиваются зоны, /etc/shorewall/policy, где устанавливаются умолчания, и /etc/shorewall/rules, содержащий исключения из политики по умолчанию (например, разрешения на доступ к нужным хостам).

Файлы-примеры входят в состав стандартной инсталляции: можно просто скопировать их в /etc/shorewall, а затем отредактировать с учетом конфигурации конкретной сети. Настроив брандмауэр в /etc/shorewall, вы готовы к его компиляции в скрипт. Осуществляется это командой shorewall compile. По окончании процесса остается лишь загрузить скрипт брандмауэра.

Брандмауэр правил, ОК?

Правила брандмауэра в /etc/shorewall/rules достаточно сложны, но неизменно включают действие, источник, назначение, протокол, порт назначения, порт источника и первоначальное назначение. Вот как может выглядеть простое, но полноценное правило:

ACCEPT dmz net tcp smtp

Это все-таки проще, чем то же правило iptables в «непричесанном» виде:

iptables -A INPUT -p tcp --source 192.168.1.1 --dport 25 -i eth0 -j ACCEPT

Написание правил брандмауэра несколько упрощается применением таких функций Shorewall, как действия (Actions) и макросы (Macro). Это немного разные способы сократить ввод через присвоение символического имени устоявшемуся набору правил (например, комбинации портов и привязанных к ним протоколов).

Shorewall поддерживает учет трафика. Можно следить за числом пакетов, соответствующих правилам отбора, или за количеством данных в байтах. Это бывает полезно: например, можно проследить количество информации, используемой каждым пользователем сети в любой момент времени; или, предоставляя услуги хостинга, на основании этих данных выставлять клиентам счета на оплату.

Мощная поддержка шейпинга трафика – полезное дополнение. Шейпинг позволяет установить приоритеты для различных видов данных, что важно для более медленных интернет-подключений (кабельный Интернет или ADSL). Можно установить приоритет таких данных, как SSH (безопасное подключение) и VoIP (интернет-телефония) перед загрузками по FTP – для файла в 600 МБ увеличение времени загрузки на несколько секунд несущественно, зато очень неприятно, когда беседа «затыкается» из-за задержки с ответами в течение телефонного разговора через Интернет.

Программа может вести журнал для пакетов, у которых в правилах в качестве действия установлен параметр LOG. По умолчанию, пакеты регистрируются с помощью системного журнала, syslog.

Трансляция адресов и перенаправление портов для Shorewall тоже не проблема. NAT настраивается редактированием /etc/shorewall/masq, а проброс портов – добавлением соответствующего правила в /etc/shorewall/rules. Shorewall может работать с несколькими интернет-провайдерами для повышения отказоустойчивости [и не только, – прим. ред.].


Сайт: www.shorewall.net
Цена: Бесплатно под GPL

  • По признанию самих разработчиков, не самый простой в обращении брандмауэр, но для того, кто его освоил, Shorewall

чрезвычайно эффективен. Теряет очки из-за своей сложности.
Рейтинг: 8/10


Вердикт

Shorewall 8/10

Не самая простая в обращении программа, но работать с ней все-таки куда проще, чем с iptables, чей синтаксис запоминается с трудом. Мы нашли, что Shorewall обладает выдающимся набором функций и способен контролировать почти любой параметр брандмауэра из подвластных самой iptables. К тому же документация превосходна и прекрасно написана. Программа теряет очки только из-за своей сложности. Одним из методов устранения этого недостатка может стать режим мастера, когда весь процесс установки правил представляет собой ответы на вопросы о желаемом брандмауэре. Таким образом можно проделать львиную долю работы по настройке, после чего останется лишь подправить полученную конфигурацию с учетом всех тонкостей.

На втором месте у нас KMyFirewall. Здесь есть упрощенный режим. Особенно нам понравилась легкость, с которой KMyFirewall переключается между отображением сгенерированных правил и дружелюбным интерфейсом. Основной недостаток KMyFirewall – слабая документация. В чем-то два интерфейса программы не слишком удобны: например, может понадобиться функциональность, недоступная Generic-интерфейсу, но без сложности Iptables Interface. Надеемся, что со временем разработчики KMyFirewall смогут изобрести единый интерфейс, который вберет в себя лучшие качества обоих прежних.

Одному компьютеру

И Shorewall, и KMyFirewall – превосходный выбор для защиты компьютерной сети. Но их мощь избыточна для единственной машины с одним сетевым интерфейсом (ноутбука или рабочей станции).

Индивидуальным пользователям настоятельно рекомендуем обратиться к Firestarter. Пользователи, знакомые с Windows-приложением ZoneAlarm, почувствуют себя почти как дома. Стандартная конфигурация содержит все необходимые функции, типа блокирования входящих подключений, и при желании функциональность можно расширить, написав собственные правила и даже настроив NAT для совместного использования Интернет-соединения.

Разочаровал Firewall Builder; а какой интерес поначалу вызвала поддержка брандмауэров различных типов! На деле, программа оказалась настолько сложной и интуитивнонепонятной, что даже экспертам оказалось не под силу привести ее в действие, не помогла и откровенно устаревшая документация.

Таблица функций

Приложение Версия Сайт Лицензия NAT Перенаправление
портов
Регистрация Шейпиг
трафика
GUI Поддерживаемы
брандмауэры
Guarddog 2.6.0 www.simonzone.com/
software/guarddog/
GPL x x v v v iptables
KMyFirewall 1.0.1 http://kmyfirewall.
sourceforge.net/
GPL v v v v v iptables
Shorewall 4.0.2 www.shorewall.net GPL x v v v x iptables
FireHOL 1.256 firehol.sourceforge.net GPL v v v x x iptables
Firestarter 1.0.3 www.fs-security.com GPL v v v x v iptables
Firewall Builder 2.1.1.3 www.fwbuilder.org GPL/
проприетарная
v v v v v iptables/pf/ipfw/прочие
Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию