The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"check-state не работает в ipfw :("
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [ Отслеживать ]

"check-state не работает в ipfw :("  
Сообщение от greenwar (ok) on 17-Июн-08, 10:01 
такая странность наблюдается, а точнее непонятность:
правила делятся на входящий и исходящий
исходящий tcp уходит наружу исключительно с keep-state
а входящий первым делом втыкается в check-state
никаких других check/keep-state и limit в правилах нет
есть tcp allow established во входящих, оно идёт после check-state
вопрос всплывает, когда команда ipfw show показывает действующие правила и кол-во их
срабатываний. так вот check-state сработало 0 раз везде, на всех серверах

т.е. получается, что пакеты работают только по established, но задумка то была, чтобы при
уходе им присваивался некий идентификатор, который потом проверяется на входе через
check-state
а он не проверяется

в чём тут кроется проблема, можете сказать?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "check-state не работает в ipfw :("  
Сообщение от vagif on 17-Июн-08, 12:29 

>в чём тут кроется проблема, можете сказать?

может покажешь: ipfw show ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 17-Июн-08, 12:43 
>[оверквотинг удален]
>
>срабатываний. так вот check-state сработало 0 раз везде, на всех серверах
>
>т.е. получается, что пакеты работают только по established, но задумка то была,
>чтобы при
>уходе им присваивался некий идентификатор, который потом проверяется на входе через
>check-state
>а он не проверяется
>
>в чём тут кроется проблема, можете сказать?

Правило с check-state всегда будет содержать ноль. Для просмотра динамических правил существует опция -d в ipfw. Там и счётчик увидите. :)

Короче, man ipfw.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "check-state не работает в ipfw :("  
Сообщение от greenwar (??) on 17-Июн-08, 15:10 
>Правило с check-state всегда будет содержать ноль. Для просмотра динамических правил существует
>опция -d в ipfw. Там и счётчик увидите. :)
>
>Короче, man ipfw.

ну оно показывает набор соединений в состоянии STATE..
а проходят ли они проверку через check-state всё-равно не ясно
check-state всё-равно 0
так что вопрос остаётся открытым - как это дело проверить?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 17-Июн-08, 18:37 
>>Правило с check-state всегда будет содержать ноль. Для просмотра динамических правил существует
>>опция -d в ipfw. Там и счётчик увидите. :)
>>
>>Короче, man ipfw.
>
>ну оно показывает набор соединений в состоянии STATE..
>а проходят ли они проверку через check-state всё-равно не ясно
>check-state всё-равно 0
>так что вопрос остаётся открытым - как это дело проверить?

Вы блондинко?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "check-state не работает в ipfw :("  
Сообщение от greenwar (ok) on 18-Июн-08, 11:33 
>[оверквотинг удален]
>>>опция -d в ipfw. Там и счётчик увидите. :)
>>>
>>>Короче, man ipfw.
>>
>>ну оно показывает набор соединений в состоянии STATE..
>>а проходят ли они проверку через check-state всё-равно не ясно
>>check-state всё-равно 0
>>так что вопрос остаётся открытым - как это дело проверить?
>
>Вы блондинко?

нет, пытаюсь до конца понять, как оно работает

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 18-Июн-08, 14:08 
>[оверквотинг удален]
>>>>Короче, man ipfw.
>>>
>>>ну оно показывает набор соединений в состоянии STATE..
>>>а проходят ли они проверку через check-state всё-равно не ясно
>>>check-state всё-равно 0
>>>так что вопрос остаётся открытым - как это дело проверить?
>>
>>Вы блондинко?
>
>нет, пытаюсь до конца понять, как оно работает

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "check-state не работает в ipfw :("  
Сообщение от greenwar (ok) on 18-Июн-08, 15:40 
да я это всё проходил уже
когда я начинал только работать с фрёй, первым делом я упёрся в файрволл
и, поскольку файрволл это начало всей сетевой системы, я ему посвятил солидный отрезок своего образования
недели 3 я сидел безвылазно и тестил правила, курил интернет, статьи, форумы и прочие маны. создавая свои куски и проверяя их работоспособность на живой офисной сетке.
создавал целые файлы, громоздкие, невъебенно защищённые, однако же перелопаченные впоследствии и оптимизированные несколько раз
в выходные на работе тусовался, в конце рабочего дня оставался до 9-10, потому что мне нужно было вкурить ipfw
и я таки выкурил это ipfw основательно, так, что могу теперь вслепую создать свод правил фактически любой сложности и элегантные. с полным пониманием куда и чего пойдёт и не пойдёт, который будет выпускать своих куда надо, и не впускать чужих куда не надо.
однако ж, ввиду моего немноголетнего отнюдь опыта и ограниченного кол-ва настроенных серверов, остаются ещё некоторые пробелы, которые я желаю закрыть.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 18-Июн-08, 16:25 
>[оверквотинг удален]
>создавал целые файлы, громоздкие, невъебенно защищённые, однако же перелопаченные впоследствии и оптимизированные
>несколько раз
>в выходные на работе тусовался, в конце рабочего дня оставался до 9-10,
>потому что мне нужно было вкурить ipfw
>и я таки выкурил это ipfw основательно, так, что могу теперь вслепую
>создать свод правил фактически любой сложности и элегантные. с полным пониманием
>куда и чего пойдёт и не пойдёт, который будет выпускать своих
>куда надо, и не впускать чужих куда не надо.
>однако ж, ввиду моего немноголетнего отнюдь опыта и ограниченного кол-ва настроенных серверов,
>остаются ещё некоторые пробелы, которые я желаю закрыть.

Итак, вкратце и на пальцах:

ipfw использует два вида набора правил: статические и динамические. Статические являются постоянными и имеют вид (простейший случай):

ipfw add 100 allow tcp from any to me 25
ipfw add 200 allow tcp from me 25 to any

Эти два правила позволяют проходить трафику к нашему серверу по 25 порту и от нашего сервера с 25-го порта к кому угодно.

Если посмотреть вывод ipfw show, то в правилах можно увидеть количество "попаданий" в это правило и количество байт:

00100  32  63478  allow tcp from any to me 25
00200  32  42448  allow tcp from me 25 to any

Динамические правила создаются условиями keep-state и limit в правилах, причём динамические правила имеют двухстороннюю направленность. Т.е. если мы перепишем предыдущие два правила в "динамическом ключе", то получим одно правило:

ipfw add 100 allow tcp from any to me 25 keep-state

Т.о. пакет, приходящий на наш сервер на 25 порт создаёт динамическое правило, которое мы увидим при выводе ipfw -d show:

00100    605    26957 (145s) STATE tcp x.x.x.x 59165 <-> y.y.y.y 25

Здесь, 00100 - номер правила, 605 - количество пакетов, прошедших через это правило, 26957 - количество байт, 145s - оставшееся время, после которого (при отсутствии трафика) правило будет удалено, остальное понятно из контекста.

Соответственно, если имеется правило

00050  0  0  check-state

то оно и будет проверять, существует ли правило в динамической таблице, после чего пакет будет обработан динамическим правилом с обновлением счетчиков в нём.

Вкратце как-то так. И для того, чтобы это понять, не нужно 3 недели тупо курить ipfw, достаточно просто немного подумать. Что именно Вам непонятно - остаётся загадкой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "check-state не работает в ipfw :("  
Сообщение от greenwar (ok) on 19-Июн-08, 10:56 
Что именно Вам непонятно - остаётся загадкой.


ну например вот что: если он так волшебно организовывает динамические правила, почему остаются попытки отдельным совершенно образом пройти через established
если эти пакеты заблокировать (как в манах советуют упорно), то: 1 - при перечитывании правил рубятся все коннекты. включая ssh и все остальные. т.е. отдельные правила надо создавать с established для ssh, тогда не придётся снова коннектится
ну это вообщем-то вытекает из слова established, хотя и не приятно
2 - не работает клиент-банк например. видимо он криво организован и зависит от established соединений явно, либо я криво сделан
3 - логи начинают пухнуть от кучи непропущенных established соединений
непонятно, почему эти чудные динамические правила просто не делают чего от них ожидают, а именно - пропускать пакеты по свежесозданным правилам. фактически мы имеем правило на 5 минут (которое обновляется каждый раз, когда им пользуются) - пропускать все пакеты из A в B и обратно. однако ж он почему то зависит ещё и от уже установленных соединений, причём сильно зависит и страдает

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 19-Июн-08, 11:35 
>[оверквотинг удален]
>ну это вообщем-то вытекает из слова established, хотя и не приятно
>2 - не работает клиент-банк например. видимо он криво организован и зависит
>от established соединений явно, либо я криво сделан
>3 - логи начинают пухнуть от кучи непропущенных established соединений
>непонятно, почему эти чудные динамические правила просто не делают чего от них
>ожидают, а именно - пропускать пакеты по свежесозданным правилам. фактически мы
>имеем правило на 5 минут (которое обновляется каждый раз, когда им
>пользуются) - пропускать все пакеты из A в B и обратно.
>однако ж он почему то зависит ещё и от уже установленных
>соединений, причём сильно зависит и страдает

Без Вашего набора правил (ipfw show) разговор беспредметный. Да и всё, что Вы только что написали, вполне очевидно, если хоть ненадолго включить голову. Приведите список правил, распишу Вам что и как, если сами понять не можете.

Вкратце, добавлю вот что: набор правил можно сделать полностью динамическим, тогда established правило Вам не понадобится в принципе. Однако, здесь есть "подвох": при перегрузке фаервола, все динамические правила сбрасываются по вполне понятной причине. Именно поэтому у Вас отваливается ssh. И именно поэтому лучше всего ssh прописывать статическими правилами + пользоваться скриптом для перезагрузки правил (в /usr/share/examples есть пример такого скрипта), если перегружаете правила удалённо.

Второй момент связан с divert'ом. Если check-state стоит до правил с divert'ом, то пакеты, естественно, в этот divert не попадают. Как следствие, динамические правила просто "устаревают", не дождавшись обновления и "не пропускают" пакеты потому, что через divert они не прошли, а следовательно имеют "неверные" адреса в заголовке пакета.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "check-state не работает в ipfw :("  
Сообщение от greenwar (??) on 30-Июн-08, 10:29 
вообщем, одна из главных непоняток "почему не работает" была связана с дивертом + динамические правила
насколько я смог разобраться, эти 2 вещи не совместимы никак
только прописав статически оно работает так, как ожидается

есть такой вопрос - а насколько чреваты запреты на established пакеты, например для mail?
если у меня MTA принимает из инета почту, в логах иногда проскакивает облом с моего 25 порта (established)
пока что разрешил, хотя разрешение на просто отсылку пакетов с 25 в инет есть с setup keep-state

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "check-state не работает в ipfw :("  
Сообщение от newser (ok) on 30-Июн-08, 22:07 
>[оверквотинг удален]
>+ динамические правила
>насколько я смог разобраться, эти 2 вещи не совместимы никак
>только прописав статически оно работает так, как ожидается
>
>есть такой вопрос - а насколько чреваты запреты на established пакеты, например
>для mail?
>если у меня MTA принимает из инета почту, в логах иногда проскакивает
>облом с моего 25 порта (established)
>пока что разрешил, хотя разрешение на просто отсылку пакетов с 25 в
>инет есть с setup keep-state

Чреваты только тем, что при окончании срока действия динамического правила по каким-либо причинам (например, нет активности трафика), дальнейшие пакеты будут отбрасываться правилом, запрещающим established пакеты, что равнозначно разрыву соединения.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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