Pull to refresh

Comments 15

А вот это зачем?
# запрешаем все tcp, не проходящие по динамическим правилам
$cmd 00040 deny tcp from any to any established in via $eif

Ну в основном для того, чтобы продемонстрировать само правило. Но используется в основном для того, чтобы отсеять все ACK, которым не предшествовал SYN с одной из сторон. Просто защита от мусора. Сейчас добавлю в статью разъяснения.

Зачем в конфигурации два правила за номером 100? Почему ssh соединения разрешены на 20 порт вместо 22, как указано в тексте?

Спасибо, поправил. Обычные опечатки.

ipfw мощная штука, на фряхе многие до сих пор строят програмные маршрутизаторы, включая интернет провайдеров.

Пример в статье очень банально простой, для совсем новичков. Но я с ним не согласен, я бы сразу всем объяснял что нужно правила оптимизаировать, заставлять пакеты проходить минимальный набор правил, только те правила котоые ему нужны, а не все скопом - афектит перформанс на сильно нагруженных системах. Для этого есть такие вещи как tablearg skipto, на основе которого разделяешь пакеты по in/out на каждом интерфейсе отдельно. Получаешь отдельные наборы правил на вход/выход пакетов каждого интерфейса отдельно, как на вендоровских железках. Если интересно, приведу пример с одного из своих маршрутизаторов :)

Ну и нужно не забывать о netgraph в freebsd, который, похоже, все так же остается самой сильной сетевой подсистемой которую люди изобрели. На нем можно сделать что угодно ;)

Приветствую! Эта статья - вводная, посмотрите на цикл по PF, там такая же структура. Дальше будем постепенно погружаться, усложнять конфигурации и до skipto дойдём :) Конфигурация тоже демонстрационная. Основная цель - показать, как вообще сторится конфигурация, что именно нужно в какой последовательности писать.

Конфигурация тоже демонстрационная. Основная цель - показать, как вообще сторится конфигурация, что именно нужно в какой последовательности писать.

Читатели хабра не умеют читать маны? Статей по ipfw нет на опеннет и лиссяре? Что нового здесь? Какие bestpractice описаны?

Ну дали б просто ссылку на статью Кеды 15-и летней давности и сразу под ней свою рекламу...

ipfw мощная штука, на фряхе многие до сих пор строят програмные маршрутизаторы, включая интернет провайдеров.

Ну это только динозавры, которых не смущают десятки копирований пакета. Для остальных Луиджи (собственно автор ipfw) десять лет назад сделал netmap.

Как вы работаете с доменными именами? Как известно pf, ipfw работают только с ip-адресами.

С PF всё не так просто, есть возможность заполнить таблицу доменными именами и она будет разрешаться в IP при загрузке. Инфа есть в предыдущем цикле статей.
С IPFW - так и есть, в ИКС имеется отдельная внутренняя служба, отвечающая за разрешение доменных имён в IP адреса.

Так это и есть фильтры трафика на 2-4 уровнях osi, а значит доменных имен нет. Это не L7 фильтры. Если сильно хочется, можно например закостылить что-то в стиле сценария который резолвит ip'ы по доменным именам, и динамически добавляет в нужные таблицы

Три правила

$cmd 000100 allow tcp from any to me 80 in via $eif $ks
$cmd 000110 allow tcp from any to me 443 in via $eif $ks
$cmd 000120 allow tcp from any to me 22 in via $eif $ks

По хорошему заменяется одним

$cmd 000100 allow tcp from any to me 22, 80, 443 in via $eif $ks

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

Имхо. Я бы даже в вводной статье делал минимизации конструкций, чтоб новички изначально учились делать правильно. Так сказать воспитание с детства :)

Насчет сложности редактирования не согласен. Да, не так просто просто как сделать один delete, например, но все же считаю правильным стараться минимизировать количество правил.

Для удаления, например, 80-го придется сделать две команды:

ipfw delete 100
ipfw add 100 allow tcp from any to me 22, 443 in via em0 keep-state

Лучший файр в мире. Простой и мощный.

Sign up to leave a comment.