The OpenNET Project / Index page

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



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

Оглавление

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

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


17. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Av (??), 21-Окт-07, 12:24 
Оригинала от создателей найти не удалось, но вот почитайте:

UNIX history embeds the UNIX way with the notion of software tools, also the title of a work by UNIX gurus Brian Kernighan and P.J.Plauger, as a key concept - small, well designed text-based tools operating from the command line which do one job very well and can readily be connected to satisfy more complex tasks.

с http://tuxdeluxe.org/node/147

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

18. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 21-Окт-07, 12:31 
>Оригинала от создателей найти не удалось, но вот почитайте:
>
>UNIX history embeds the UNIX way with the notion of software tools,
>also the title of a work by UNIX gurus Brian Kernighan
>and P.J.Plauger, as a key concept - small, well designed text-based
>tools operating from the command line which do one job very
>well and can readily be connected to satisfy more complex tasks.

Да, я это читал

ну, по этому критерию команде echo 5 с плюсом,
ну а ядру чуть меньше ;))

зато все равно, ИМХО, подход у iptables лучше

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

27. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от XoReemail (ok), 15-Ноя-07, 04:11 
>зато все равно, ИМХО, подход у iptables лучше

Я бы не стал дальше спорить после такого утверждения.
Когда человек в споре хочет прийти не к истине ("истина рождается в споре", а просто к удовлетворению своих желаний ("iptables/linux все равно лучше/круче"), то адекватности тут можно не ждать.

По теме:
Всунуть все ip адреса в таблицу за один проход  можно командой:
ipfw [-cfnNqS] [-p preproc [preproc-flags]] pathname

Как я понял из мана, в файл "pathname" запихиваются команды ipfw.

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

28. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 15-Ноя-07, 04:18 
>Я бы не стал дальше спорить после такого утверждения.
>Когда человек в споре хочет прийти не к истине ("истина рождается в
>споре", а просто к удовлетворению своих желаний ("iptables/linux все равно лучше/круче"),
>то адекватности тут можно не ждать.

я уже пришел к истине - и утверждал это.
Если вы ставите истинность моей истины (;) под сомнение - давайте контраргументы моим доводам, которые ПРИСУТСТВУЮТ наряду с утверждением "iptables лучше". Ничего противоестественного не вижу.
Я хочу истину и вижу ее в netfilter'е. Свои взгляды я изложил.
Извольте оспорить, а не просто сказать "он сказал 'iptables лучше' - значит он неправ!"


>По теме:
>Всунуть все ip адреса в таблицу за один проход  можно командой:
>
>ipfw [-cfnNqS] [-p preproc [preproc-flags]] pathname
>
>Как я понял из мана, в файл "pathname" запихиваются команды ipfw.

а вот тоже по теме: сделать это можно лишь командой ipfw, в чем собственно и наблюдаеться
минус спец-интерфейса.

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

19. "Пример использования таблиц блокировки в ipfw"  +/
Сообщение от Nickemail (??), 21-Окт-07, 12:55 
Ну и не удержусь от ответного камуЖка в ваш огород.

"Just for fun" by Торвальдс:

"Уродство, когда для любого действия у системы есть специальный интерфейс. В Unix - все наоборот. Она предоставляет строительные блоки, из которых можно создать что угодно. Вот что такое стройная архитектура."

Извлечь/Добавить IP адреса в ipfw table можно лишь через спец-интерфейс... ;)))


А если следовать UNIX-way здесь - то самое простое действие для того чтобы увидеть список адресов - это сделать cat из файла, а вот файлом может быть уже что и посложнее чем plain файл. Или есть что-то более простое в UNIX определениях?

iptables/recent как раз это и есть, самое простое, без спец интерфейса ;)

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

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
Добавить, Поддержать, Вебмастеру