gelraen 08.01.2012 22:40 imax

Если вдруг ещё кто не видел, сорсы userfw лежат тут: http://git.imax.in.ua/cgit.cgi/userfw/
Ядерная часть (которая в core) практически готова, не хватает разве что типа данных для IPv6-адресов (и, возможно, мелких багфиксов, хехе). Осталось ещё сделать либу для инкапсуляции интерфейса в удобоваримый API и command-line приблуду, но модули уже писать можно.
Если кратко, суть такова:
Центральная часть файрвола (она же core) обеспечивает регистрацию модулей, взаимодействие с pfil, прогон пакета по списку правил и прочую хрень, которая является слишком общей чтобы её велосипедить в каждом модуле отдельно. Модули при регистрации отдают описания 3 типов сущностей: action, match и cmd.
action — это действие которое выполняется над пакетом (как allow, deny, nat, ...); return value отдаётся pfil как есть. match — это критерий под который пакет может попадать, а может и не попадать. Возвращаемое значение используется как логический результат, но может также использоваться как числовой аргумент для других match или action. cmd представляют команды которые могут быть выполнены из userspace, например, добавление адресов в таблицу, изменение списка правил, ...
У каждого правила есть номер, action и match. Аргументами для action и match могут быть как примитивные типы данных (адрес, число, строка), так и другие action или match. Соответственно, конструирование сложных условий осуществляется с использованием M_OR и M_AND, которые принимают два аргумента (и сами знаете что с ними делают).

Recommended by: @King-Artur-VII, @rapture
1. 0xd34df00d 08.01.2012 22:40 Azoth_primary

Мне кажется, у тебя проблемы с тян. ТАК-ТО СУБЛИМИРОВАТЬ.

2. gelraen0xd34df00d /1 08.01.2012 22:41 imax

кто про что, а дедфуд про тян, да

3. 0xd34df00dgelraen /2 08.01.2012 22:42 Azoth_primary

ОЛоло.

Do you really want to delete ?