The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Раздел полезных советов: Пример использования таблиц блокировки в ipfw, auto_tips (??), 17-Окт-07, (0) [смотреть все]

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


20. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от AVK (?), 01-Ноя-07, 17:26 
>iptables/recent как раз это и есть, самое простое, без спец интерфейса ;)

Спец-интерфейс всё таки есть. Скрырый. Для сравнения, что помещаем в bad_guys? IP only. Что имеем по cat /proc/net/ipt_recent/bad_guys? Совсем не IP...

Ой, блин, держите меня...
cat /dev/random > /proc/net/ipt_recent/bad_guys
И где будет тормозить? В ядре :)
Класс.

Время собирать камни?

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

21. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 02-Ноя-07, 15:44 
>>iptables/recent как раз это и есть, самое простое, без спец интерфейса ;)
>
>Спец-интерфейс всё таки есть. Скрырый. Для сравнения, что помещаем в bad_guys? IP
>only. Что имеем по cat /proc/net/ipt_recent/bad_guys? Совсем не IP...

деревня...

при помещении ИП в список, мы помещаем не тока сам ИП, но и ВРЕМЯ помещения.
Так вот списки этих добавлений для каждого ИП мы и храним

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

23. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от AVK (?), 10-Ноя-07, 15:41 
>деревня...

Ну-ну.

>при помещении ИП в список, мы помещаем не тока сам ИП, но и ВРЕМЯ помещения.
>Так вот списки этих добавлений для каждого ИП мы и храним

Ещё раз и медленно. Попробуйте подумать над этим.

cat somefile > /proc/net/ipt_recent/bad_guys отправляет в /proc/net/ipt_recent/bad_guys именно IP и ничего более. Все остальные данные рядом с IP во внутреннюю таблицу помещаются кодом, ответственным именно за ИНТЕРФЕЙС. Интерфейс между внешним миром и внутренними структурами.

В случае же отсутствия интерфейса, в случае с cat, никаких других данных в таблицу, кроме IP помещаться не должно. Или мы будем должны помещать IP, ВРЕМЯ, etc. Что и будет называться "прямой доступ к внутренним структурам", без интерфейса.

В связи с этим, выглядит как минимум странно фраза "iptables/recent как раз это и есть, самое простое, без спец интерфейса ;) "

ИМХО бардак в голове. Вместо "простой интерфейс" говорят "без спец интерфейса". Отсюда и спор раздули.

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

24. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 12-Ноя-07, 04:13 
>Ещё раз и медленно. Попробуйте подумать над этим.
>
>cat somefile > /proc/net/ipt_recent/bad_guys отправляет в /proc/net/ipt_recent/bad_guys именно IP и ничего более. Все остальные данные рядом с IP во внутреннюю таблицу помещаются кодом, ответственным именно за ИНТЕРФЕЙС.
>Интерфейс между внешним миром и внутренними структурами.

неа. За интерфейс тут отвечает VFS :)
open(2)
read(2)
write(2)
close(2)

Вот ЭТОТ интерфейс тут использован. Т.е. обычный, файловый.

>В случае же отсутствия интерфейса, в случае с cat,

не обижайся, плз, но я ж говорил: "деревня"...
ЛЮБОЕ взаимодействие происходит через какой-нибудь интерфейс :)

>никаких других данных
>в таблицу, кроме IP помещаться не должно.

Если модуль преследует собой цель хранить лишь ИП адреса - то да, не должно.
Но у нас модуль, который хранит их и предоставляет еще некий функционал.
(если не нравяться timestamps - их количество можно свести к минимуму - 1)


>Или мы будем должны помещать IP, ВРЕМЯ, etc. Что и будет называться "прямой доступ к
>внутренним структурам", без интерфейса.

без каментов про "без интерфейса"...
Также не понял связи между интерфейсом и набором помещаемых данных в список.


>В связи с этим, выглядит как минимум странно фраза "iptables/recent как раз
>это и есть, самое простое, без спец интерфейса ;) "

VFS - более чем _не_ специальный интерфейс. Без него не бывает линуха (говорим о современных версиях). За сим и вещаю, что взаимодействие источника списка ИПшников
(прога cat) и ядра происходит без специального интерфейса (но, безусловно, _с_ интерфейсом!!!), а через VFSные вызовы open()/RW()/close()

ipfw же работает с ядром при помощи своего _СПЕЦИАЛЬНОГО_ набора ioctl() запросов.

Выходит, что с ipt_recent таблицами может работать практически любой процесс, способный
открывать/писать/читать файл, а с ipfw таблицами лишь специально "обученные" проги
(ну, вроде этого же ipfw. немного тавталогии...)

Доступно?

>ИМХО бардак в голове.

Ну, бардак вытряхивай и читай маны. Они рулят.


>Вместо "простой интерфейс" говорят "без спец интерфейса".

Ну, не сказал бы, что ioctl(IP_FW_<GET/ADD>,... ) - это "сложный" интерфейс :)
он то простой. Тока вот и VFS интерфейс тоже весьма прост.
Но. Суть _именно_ в том, что один из них _специальный_ (т.е. только для каких-то вещей),
а другой - нет, т.е. справедливо сипользовать выражение "без специального интерфейса",
говоря о работе с ipt_recent.
А это доступно?

>Отсюда и спор раздули.

Как видишь, не совсем...

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

33. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от nuclightemail (?), 09-Янв-08, 22:10 
>неа. За интерфейс тут отвечает VFS :)
>open(2)
>read(2)
>write(2)
>close(2)
>
>Вот ЭТОТ интерфейс тут использован. Т.е. обычный, файловый.

Ага, со здоровенным промежуточным слоем в виде VFS. Нихрена не оптимально.

>>В связи с этим, выглядит как минимум странно фраза "iptables/recent как раз
>>это и есть, самое простое, без спец интерфейса ;) "
>
>VFS - более чем _не_ специальный интерфейс. Без него не бывает линуха
>(говорим о современных версиях). За сим и вещаю, что взаимодействие источника
>списка ИПшников
>(прога cat) и ядра происходит без специального интерфейса (но, безусловно, _с_ интерфейсом!!!),
>а через VFSные вызовы open()/RW()/close()
>
>ipfw же работает с ядром при помощи своего _СПЕЦИАЛЬНОГО_ набора ioctl() запросов.

То же, абсолютно то же делает сам iptables со своими правилами - он, как и ipfw, текстовый вид преобразует к getsockopt()/setsockopt(). Да, кстати, кое-кому не мешало бы подучить матчасть - ioctl() не используется ни в ipfw, ни в iptables.

>[оверквотинг удален]
>
>Доступно?
>
>>ИМХО бардак в голове.
>
>Ну, бардак вытряхивай и читай маны. Они рулят.
>
>а другой - нет, т.е. справедливо сипользовать выражение "без специального интерфейса",
>говоря о работе с ipt_recent.
>А это доступно?

См. выше. Имеем, что в случае iptables появляется уже как минимум ДВА интерфейса - один опциями сокета у iptables, другой через текстовый файл. Который ведет к ДУБЛИРУЮЩЕМУСЯ коду в ядре, мало того, что задействует тормозной VFS, и обрабатывает далеко не все ошибки, которые должен был. Это называется стройная архитектура по Торвальдсу, ы? Это как раз бардак в голове, ведущий к бардаку в ядре.

Если бы автор модуля ipt_recent не выпендривался, а встроился в _уже_ _имеющийся_ интерфейс "специально обученного" iptables (заметим, он уже существует, и никуда от него не деться), то кроме сокращения лишнего кода и общего улучшения качества (использования парсера и проверщика ошибок самих таблесов) стало бы возможным использовать дополнительные фичи - например, единовременный штатный таблесовский COMMIT кучи правил разом, то есть оно стало бы работать куда быстрее на больших объемах.

В результате подход ipfw (и основного iptables) весьма вписывается в unix-way - средство, умеющее делать свою работу, и делать ее хорошо, имеет наружу текстовый интерфейс для других программ, в результате работа по теме сконцетрирована где надо, а не повторяется каждым автором много раз, тем более в ядре, где цена ошибок и скорости куда более высока.

Да, и как уже отмечалось, у ipfw есть препроцессоры, так что, быстро загнать файл с айпишником на строку, не форкая на каждый по процессу, весьма просто:

cat file.txt | awk '{print "table 1 add " $0}'  | ipfw -p cat - /dev/null

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

22. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 02-Ноя-07, 15:47 
>Ой, блин, держите меня...
>cat /dev/random > /proc/net/ipt_recent/bad_guys
>И где будет тормозить? В ядре :)
>Класс.
>
>Время собирать камни?

да хоть разбирай, хоть собирай...

cat /dev/urandom > /dev/sda


или с винтом уже не смешно?

Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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