nuclight: (Default)
nuclight ([personal profile] nuclight) wrote2012-04-26 03:11 am
Entry tags:

IpfwNg

В честь 26 годовщины 26 апреля уволился с текущей работы и таки наконец начал проект http://wiki.freebsd.org/IpfwNg — хотя на работе FreeBSD и была основной системой, реальную возможность пилить ядро я так и не получил (хотя тот же NAT64 нам бы понадобился не через полгода, так через год). В ближайшие недели посижу дома и надеюсь сделать хотя бы скелет, который можно будет потом уже в свободное время потихоньку пилить — работы по проекту предстоит очень много.

Желающие обсудить по делу — велкам в каменты (хотя я туда еще не все наброски оформил).

[identity profile] kvasdopil.livejournal.com 2012-04-26 06:16 am (UTC)(link)
Нам для нашего проекта в ipfw очень не хватает
а) нормального stateful-фильтра
б) аналога route-to\reply-to из pf
в) ну и вообще гибкости пфа в плане того что может быть произвольная комбинация first-match\last-match, а не всегда first-match как в ipfw, хотя это не настолько принципиально.
В результате приходится использовать связку pf\ipfw и ловить кучу граблей в некоторых случаях.

Кстати, может быть вопрос не совсем по адресу: мы тут запилили ядерный netgraph модуль для layer-7 фильтрации и думаем его предложить для внесения в head. Что для этого надо сделать?

[identity profile] dmarck.livejournal.com 2012-04-26 06:41 am (UTC)(link)
для начала, я так думаю, опубликовать патч в -net@

или подготовить порт

[identity profile] nuclight.livejournal.com 2012-04-26 11:12 pm (UTC)(link)
> а) нормального stateful-фильтра

В таких случаях стоит пояснять, что именно подразумевается под "нормальным". Даже вариант ответа "как в pf" требует некоторых уточнений - скажем, я чехарду вокруг scrub/synproxy/и около - не считаю обязательным атрибутом нормального.

> в) ну и вообще гибкости пфа в плане того что может быть произвольная комбинация first-match\last-match, а не всегда first-match как в ipfw, хотя это не настолько принципиально.

Сколько с файрволами работаю, никогда не понимал этого идиотизма с last-match, который становится особенно контринтуитивен в случае произвольных комбинаций с first-match. Можете показать реально работающую конфигурацию, где использование этой фичи упрощает рулесет и/или его понимание? Всегда было интересно посмотреть на выигрыш.

> Кстати, может быть вопрос не совсем по адресу: мы тут запилили ядерный netgraph модуль для layer-7 фильтрации и думаем его предложить для внесения в head. Что для этого надо сделать?

1) Должна наличествовать документация, то есть хорошо написанная ман-страница, как и у других модулей
2) Убедиться, что код соответствует style(9) и достаточно современен на вкус коммиттеров (в смысле, не используются ныне считающиеся устаревшими идиомы)
3) После этого патч публикуется в net@ и можно пинать знакомых коммиттеров на его включение.

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