The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Порядок прохождения пакетов в пакетных фильтрах FreeBSD"
Отправлено www2, 08-Июн-08 21:43 
>Вы делаете некорректное сравнение. Во первых, схема прохождения пакетов через ipfw сразу
>же ясна еще из мана - там куда меньше мест, для
>вызова.

Но при этом вся таблица правил свалена в кучу и будет просматриваться для проходящих через маршрутизатор пакетов ДВА раза. Один раз когда пакет войдёт на интерфейс, один раз когда пакет выйдет из интерфейса.

Сравним три отдельные цепочки iptables: 10 правил на вход, 10 правил на выход, 10 правил для проходящих через маршрутизатор пакетов. Сравним общий список из 30 правил ipfw. В случае iptables для каждого проходящего через маршрутизатор пакета в среднем будет просмотрено 10/2=5 правил, в случае ipfw (30 + 30)/2=30 правил. Добавьте сюда ещё правила, связанные с трансляцией адресов и портов, полиси рутинг, QoS.

Но это не важно, главное, что отдельные цепочки легче анализировать не только машине, но и человеку! У каждой цепочки может быть своя политика по умолчанию: разрешающая или запрещающая. Для редактирования фаерволла чаще всего вообще не приходится пользоваться редактором!

>Во вторых, на схеме на рисунке совершенно не показаны собственные
>цепочки, которые могут быть подключены в любую из других - если
>нарисовать все возможные пути, схема станет весьма запутанной. В третьих, сравнение
>качества и полноты документации некорректно - посмотрите в man iptabes, где
>там ваша схема? А в man ipfw есть и схема, и
>отсылки на другие маны, прочитав это всё вместе и подумав, вполне
>можно понять, как оно работает. Я в своей заметке просто описал
>всё это по-русски еще и вместе с деталями реализации, которые в
>маны пихать просто неположено.

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

>Вы снова передергиваете на случай "плохого админа". То же самое бывает и
>с iptables, комментирование скриптов - зависит только от админа, не от
>системы и файрвола.

Здесь я ничего не передёргиваю, я просто говорю что скрипт не обязательно хорошо прокомментирован. Мне до сих пор ещё ни разу не попадался хорошо прокомментированный фаерволл. Поэтому я сам пользуюсь iptables-save и iptables-restore и хотел-бы, чтобы все пользовались именно таким способом хранения правил фаерволла.

Но даже если мне попадётся исходник для iptables, я просто его выполню и сохраню результат с помощью iptables-save. Затем у меня появляется прекрасная возможность анализировать каждую цепочку отдельно, а не кашу из перемешанных между собой правил.

>Ага, заставляет в отдельных случаях так, что лучше бы этого не было.
>Вот к примеру скрипт на http://freebsd.pastebin.com/d2cac785 - создается 8 пользовательских цепочек.
>На ipfw этот большой скрипт переписывается в несколько правил.

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

>>В отличие от исходника, листинг работающего фаервола можно вывести со счётчиками попаданий в правило.
>
>В ipfw тоже можно.

Контекст: я имел ввиду, что листинг со счётчиками легко сравнивать с сохранённым с помощью iptables-save фаерволлом. Листинг и в сохранка будут повторять друг друга до безобразия. Листинг же со скриптом сравнивать не удобно.

>>Тут сразу будет видно: uptime сервера 3 месяца, 32
>>правила за это время не использовались ни разу, может удалить?
>
>Очень странный подход, я бы сказал. Из того, что 3 месяца не
>было атак, никак не следует, что они не появятся на следующий
>день.

Вот, сразу видно что фаерволл у вас по-умолчанию открыт и вы затыкаете в нём дырки. У меня все атаки будут блокироваться правилом по-умолчанию. Таким методом в своём закрытом по-умолчнию фаерволле я легко поудаляю лишние дыры.

>>Если же предпочесть скрипт, по которому был сгенерирован листинг, то там нужно
>>будет ещё и искать соответствие правил.
>
>В скрипте, генерирующем правила iptables, тоже нужно будет. И?

Ещё раз говорю о том, что я предпочитаю не пользоваться скриптами, так как толку от скриптов, написанных криворукими одминами - ноль. Я предпочитаю анализировать листинг, и иметь возможность сохранить и загрузить его. При этом предпочитаю анализировать каждую цепочку отдельно, а не весь фаерволл разом.

>Это вам попадались плохие, неорганизованные скрипты, значит.

Да, только такие и попадались.

>И не попадались файрволы на
>тысячи и десятки тысяч правил, значит, если вы предпочитаете писать их
>вручную без генерации.

Не могу себе представить случай, когда нужно генерировать скриптами полный листинг фаерволла. Если нужно генерировать огромный листинг скриптом, то это говорит об одной из нескольких вещей: непродумана структура сети, непродумана структура ограничения прав доступа, непродумана структура фаерволла, фаервол не имеет некоторых очень нужных возможностей.

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

>>Пусть нет ната, а нужно сделать закрытый по-умолчанию фаервол. Как быть в
>>ipfw? Искусственно вводить сюда нат?
>
>Снова передергиваете? В исходном вопросе вам хотелось для случая с натом -
>решение есть. Да, были оговорены проблемы для другого частного случая (про
>который вы даже не спрашивали) - теперь вы заостряете на нем
>внимание. Это некорректно.

Это корректно. Мне не хотелось случая с натом, я привёл его для живописности: указать что в ipfw с натом много гемора. Но это не значит, что на практике мне не встретится случай без ната, и он встречался. В случае с ipfw приходилось FTP-сервер запускать в пассивном режиме, когда он ожидал соединений для данных на свой 20 порт. В случае с iptables достаточно было загрузить модуль ядра ip_conntrack_ftp и на этом моя головная боль оканчивалась.

>>Проверять всё кроме IP-адресов. В случае совпадения прыгать на отдельную специально созданную
>>цепочку, где проверять только IP-адреса. При совпадении адреса - применять правило.
>>
>>В iptables можно создавать СВОИ цепочки правил. Если взять критерий отбора не
>>по списку IP, а по списку номеров портов - есть модуль
>>multiport.
>
>В результате получаются такие запутанные скрипты, как я привел по ссылке выше.
>Нет уж, спасибо.

Уже ответил. Запутанные скрипты получаются когда есть один большой листинг, в котором всё свалено в кучу.

>Постепеннно разбираться и унифицировать, разумеется.

С христианским смирением принять испытания, посланные мне господом? :)

>Как все это и делают, собственно.

Я привык отвечать только за себя, а не за всех. Я вижу, что обычно людям не нравится разбираться в говне, даже в собственном. Они либо делают его, а потом сваливают, либо забивают и оставляют всё как есть, до тех пор пока 1) не грохнется, 2) не хакнут, 3) не станет нужно.

>Странно предъявлять претензии к временному решению.

Я против временных решений. Временные решения ВСЕГДА отзываются ОГРОМНЫМИ граблями в будущем, причём иногда не тем людям, которые их принимали.

Если у меня есть выбор: сделать временное решение и потом его расхлёбывать или сделать всё сразу как надо, то я выберу второе. Я за то чтобы изначально делать всё правильно.

>>Спасибо, пусть сборочный тазик будет у разработчиков дистрибутива, а не у меня.
>>Я желаю ставить готовые заранее скомпилированные пакеты всегда одной и той
>>же версии, но со всеми последними security-патчами. Хочу чтобы установка обновлений
>>происходила без моего участия и по cron-у. И раз разработчик предоставляет
>>мне такую возможность, зачем мне танцы с бубном, то есть с
>>отдельным сборочным тазиком?
>
>Такой подход годится, когда серверов несколько штук.

Такой подход годится именно тогда, когда их много и они все разные. Каждый сервер будет минимальное время работать с уязвимыми пакетами. У каждого будет минимум непроизводительного простоя, минимум неудобств пользователям.

>А когда их сотни, опции
>по умолчанию из дистрибутива для всех случаев подходить не надо, и
>все равно придется собирать.

Я не буду пересобирать дистрибутивы ни в коем случае. Это вызовет проблемы при обновлении. Я за то, чтобы работала техника, а не человек.

>За то админам больших ферм серверов и
>платят, собственно.

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

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру