IpfwNg

Apr. 26th, 2012 03:11 am
nuclight: (Default)
[personal profile] nuclight
В честь 26 годовщины 26 апреля уволился с текущей работы и таки наконец начал проект http://wiki.freebsd.org/IpfwNg — хотя на работе FreeBSD и была основной системой, реальную возможность пилить ядро я так и не получил (хотя тот же NAT64 нам бы понадобился не через полгода, так через год). В ближайшие недели посижу дома и надеюсь сделать хотя бы скелет, который можно будет потом уже в свободное время потихоньку пилить — работы по проекту предстоит очень много.

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

Date: 2012-05-18 01:51 pm (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
синтаксис важен.
у функциональных языков обычно синтаксис несколько отличный от процедурных и отражает их идеологию.
т.е. я не говорю, что синтаксис весь нафиг другой должен быть (ну как в примере к nftables -- мне не нравится), но должно быть явное выделение блоков правил, которые проверяются одновременно и как они разделяются всякими divert/netgraph (или вообще просто разделяются, если я хочу вначале влепить permit any any), к примеру.

Date: 2012-05-28 11:05 pm (UTC)
From: [identity profile] nuclight.livejournal.com
Ну понятно, что синтаксис роляет, а для широких масс может оказаться очень весомым аргументом или даже непреодолимым препятствием (см. популярность pf или претензии к птичьему языку таблесов). Но для познавшего дао специалиста типа меня или тебя (какая разница, си или паскаль, ipfw или iptables, одна и та же хрень за ними стоит) это второстепенная вещь, лучше сначала обсудить семантику, чтоб предметнее, на каких угодно примерах псевдокода, конкретный синтаксис можно обсуждать потом. Я, собсно, это хотел сказать прошлым комментом.

> (ну как в примере к nftables -- мне не нравится)

Кстати, расскажи чем. Оно C-style а-ля Juniper-like или nginx-like, что уже есть шаг вперед от традиционных файрволов. Если первый блин комом, ошибки-то можно и учесть.

> или вообще просто разделяются, если я хочу вначале влепить permit any any

Я либо этот синтаксис не понимаю, либо какой смысл лепить в начало разрешение всего всем, оно ж остальные правила отменит.

Собсно, ты, я так понимаю, спец по цискам. Меня интересует, какой там packet flow в плане имениея нескольких аклей сразу, и т.п., ну по типу как я для ipfw в свое время рисовал. Поскольку multiple rulesets в ipfw изначально цискофилы и хотели.

Date: 2012-05-29 05:42 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
лучше сначала обсудить семантику, чтоб предметнее, на каких угодно примерах псевдокода, конкретный синтаксис можно обсуждать потом. Я, собсно, это хотел сказать прошлым комментом

а, ок. я просто хотел сказать что это момент важный и он может иметь не только косметическое значение.

Кстати, расскажи чем. Оно C-style а-ля Juniper-like или nginx-like, что уже есть шаг вперед от традиционных файрволов.

у меня возникает ощущение, что я программирую. а я не хочу программировать файрвол, я его хочу конфигурировать. но это так, скорее вкусовщина, хотя в случае ipfw (номера строк! бэйсик! фу!)/pf именно она и роялит. в nftables злоупотребление фигурными скобками. из скриптов конфиг будет неудобно менять. когда правило бьется на несколько строк -- трудно грепом искать. из командной строки поправить на лету одно правило -- тоже тяжело и неудобно.

в джунипере, кстати, вообще мозг выносят -- конфиг у тебя задается в одном стиле (а-ля cisco+dlink) а выводят -- в другом, со скобочками.

Если первый блин комом, ошибки-то можно и учесть.

это слишком большой прыжок в сторону

Я либо этот синтаксис не понимаю, либо какой смысл лепить в начало разрешение всего всем, оно ж остальные правила отменит.

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

Собсно, ты, я так понимаю, спец по цискам. Меня интересует, какой там packet flow в плане имениея нескольких аклей сразу, и т.п., ну по типу как я для ipfw в свое время рисовал. Поскольку multiple rulesets в ipfw изначально цискофилы и хотели.

либо я твоего вопроса не понял, либо ты плохо сформулировал. но что я помню о хотенияих а-ля циско было стремеление к следующему (освременненая ситиуация с откидыванием исторических, устаревших вариантов):

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

транзитный пакет сначала получает по лбу in acl на входящем интерфейсе, потом out acl на исходящем.

почему хотели: удобно написать acl, например, для входящих пакетов с офиса (много строк), а потом по одной строке указывая просто его имя приенять на интерфейсе. тоже самое для пакетов с интернета. дополнительно указываем ограничивающие правила для dmz.

с нетграфом это у тебя получится само, иначе сделать трудно.

но это ты не видел просьб о несколько более другой технологии, перенесенной на роутеры с pix/asa:
у нас есть несколько зон (inside, dmz, outside). у зон есть уровень безопасности (0 совсем плохо, интернет; 100 -- локалка, 50 -- dmz). есть преконфигуренное поведение[*]: из зоны с большим уровнем безопасности можно без ограничений идти в меньшую. при этом образуется state для получения ответов, разумеется. наоборот -- запрещено. интерфейсу назначается принадлежность к какой-либо зоне. после этого файрвол (как устройство) готово функционировать, конфигурация очень лаконична и покрывает 95% потребностей. оставшиеся 5% исключений описываются дополнительными правилами, типа из outside на dmz host A можно ходить на порт 80. из inside на dmz port 23 ходить нельзя. и т.п. таких правил достаточно мало, поскольку умолчание [*] очень разумно.

ну еще у кошкастых есть несколько особенностей, которые наверное не имеет смысла реализовывать:

пакет, сформированный на роутере под acl не попадает вообще.
пакет, адресованный процессору роутера (не путать просто с фабрикой на каталистах, к примеру) попадает под еще один acl. ну и т.п.

Date: 2012-05-29 06:43 am (UTC)
From: [identity profile] http://users.livejournal.com/_dyr/
C претензией к Juniper-style, кстати, категорически не согласен. Простой хинт - чтобы вывести конфиг в виде набора set'ов (то есть без фигурных скобок) достаточно сказать "show config| display set". Чтобы вставить команду в произвольное место, сказать "insert ... after ...". И так далее. Циска здесь сливает чуть более чем полностью.

Date: 2012-05-29 07:23 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
а еще можэно на голове попрыгать, но нахуя?
ну и это -- такое поведение не интуитивно, надо изучать документацию.
спасибо, что не надо сдавать экзамен на право допуска к консоли.

Чтобы вставить команду в произвольное место, сказать "insert ... after ...". И так далее. Циска здесь сливает чуть более чем полностью.

претензии не понял.

Date: 2012-05-29 08:45 am (UTC)
From: [identity profile] http://users.livejournal.com/_dyr/
Если конкретно вы не знаете базовых операций Juniper это не значит, что Juniper плох, вообще-то. Про неинтуитивность Cisco без знания документации тоже можно оды складывать. ;)

Date: 2012-05-29 11:34 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
я не понимаю зачем в циске insert after.
cisco де-факто стала законодателем моды и стандартов.
следовательно все, кто отличаются -- находятся в несколько более неудобном положении.

Date: 2012-05-29 12:08 pm (UTC)
From: [identity profile] http://users.livejournal.com/_dyr/
>я не понимаю зачем в циске insert after.
Ну вспомните, как вставить правило в середину ACL, угу.

>cisco де-факто стала законодателем моды и стандартов.
Ну да, конечно. А Windows стал законодателем моды и стандартов в компьютерном мире, так давайте сделаем новый файервол с окошечками и менюшечками.

Date: 2012-05-29 12:21 pm (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
Ну вспомните, как вставить правило в середину ACL, угу.

acr-office(config)#do sh ip acce NAT
Extended IP access list NAT
    10 deny ip 10.200.0.0 0.0.255.255 10.0.0.0 0.255.255.255 (380130 matches)
    20 deny ip 10.200.0.0 0.0.255.255 81.211.90.0 0.0.0.255
    30 permit ip 10.200.0.0 0.0.255.255 any (25681993 matches)
    40 permit ip host 192.168.100.1 any
acr-office(config)#25 permit ....


а что?

Ну да, конечно. А Windows стал законодателем моды и стандартов в компьютерном мире, так давайте сделаем новый файервол с окошечками и менюшечками.

не файрвол, а офис. а так все верно. ну и эта, победила не ibm cua, а ms ui (забыл как у них называется)

Date: 2012-05-29 12:43 pm (UTC)
From: [identity profile] http://users.livejournal.com/_dyr/
И давно оно так научилось? А со standard ACL умеет? Anyway, можно ещё тысячу фич Juniper в отношении удобства конфигурирования и администрирования привести, поэтому высказывание "Juniper - отстой" является существенно и категорично неверным.

Date: 2012-05-29 01:18 pm (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
И давно оно так научилось?

больше 10 лет назад

А со standard ACL умеет?

да.

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

не возбуждайся. перечитай еще раз. не путай теплое с мягким.

February 2017

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
262728    

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 8th, 2025 10:58 am
Powered by Dreamwidth Studios