The OpenNET Project / Index page

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



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

Оглавление

Выполнено портирование ipfw и dummynet для Linux, opennews (??), 22-Июн-09, (0) [смотреть все] +1

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


7. "> а зачем ? им делать нечего ?"  +2 +/
Сообщение от Ilya Evseevemail (?), 22-Июн-09, 23:49 
> а зачем ? им делать нечего ?

ipfw проще в настройке, например, минимальный файрволл настраивается в четыре наглядных строки:
ipfw flush
ipfw add check-state
ipfw add allow all from me to any out keep-state
ipfw add deny all from any to any

В ipfw умеет работать с таблицами IP-адресов. Для iptables есть ipset,
но большинство дистрибутивных ядер пока собираются без него.

Но основное преимущество - это (IMHO!) простота настройки dummynet'a
по сравнению с LARTC для массового шейпирования.

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

8. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от Ivan (??), 23-Июн-09, 00:07 
> В ipfw умеет работать с таблицами IP-адресов.

Забавно. А если iptables этого не умеет, то почему жк он так называется? :-)

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

10. "> а зачем ? им делать нечего ?"  +2 +/
Сообщение от FrBrGeorge (ok), 23-Июн-09, 00:29 
>> В ipfw умеет работать с таблицами IP-адресов.
>
>Забавно. А если iptables этого не умеет, то почему жк он так
>называется? :-)

Потому что он умеет работать с таблицами правил

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

12. "> а зачем ? им делать нечего ?"  +2 +/
Сообщение от vitek (??), 23-Июн-09, 00:49 
да куча уже упрощающих "настройщиков" для iptables. в бубунте вот ufw. типа:
ufw deny proto tcp from 2001:db8::/32 to any port 25
ufw allow proto tcp from any to any port 80,443,8080:8090
ufw limit ssh/tcp
ufw allow from 192.168.0.0/16 to any app Samba
и т.д., которые разворачиваются в несколько сот строчек.
и это фронтэнды. они делают своё дело, а iptables - своё.
Ответить | Правка | Наверх | Cообщить модератору

57. "> а зачем ? им делать нечего ?"  +1 +/
Сообщение от nuclight (??), 23-Июн-09, 09:09 
>> В ipfw умеет работать с таблицами IP-адресов.
>
>Забавно. А если iptables этого не умеет, то почему жк он так
>называется? :-)

По недоразумению. В линуксе вообще многое называется не так, как в точности следовало бы. Это таблицы правил, но на самом деле они представляют собой списки правил, а не таблицы. В ipfw список правил никаким специальным словом не называется, а таблицы - это набор IP-адресов/масок, организованных в radix-дерево для быстрого поиска, т.е. O(log N) вместо O(N) для линейного списка правил в цепочке iptables и ipfw.

Таблицей же это называется потому, что в ней действительно более одного столбца - кроме адреса еще сопоставлено числовое значение, по которому можно дополнительно проверять совпадение либо использовать для сокращения списка правил:

ipfw table 1 add 1.2.3.4
ipfw table 1 add 1.2.3.7 0
ipfw table 1 add 1.2.4.0/24 1
ipfw table 1 add 1.2.5.0/27 1
ipfw table 1 add 1.2.6.0/24 2
...
ipfw add deny all from table(1,2) to www.example.org // 1.2.6.0/24 etc.
ipfw add pipe tablearg all from table(1) to any

иначе была бы портянка вида
ipfw add pipe 1 all from 1.2.4.0/24 to any
ipfw add pipe 2 all from 1.2.6.0/24 to any
...

В линуксе для этого есть ipset, но он, во-первых, действительно set (множество), а не таблица, ничего не сопоставлено с адресом, во-вторых, не входит в стандартную поставку, из-за чего админам иногда приходится эмулировать его руками (вспоминается DoS башорга).

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

71. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от KO (?), 23-Июн-09, 09:43 

>в стандартную поставку, из-за чего админам иногда приходится эмулировать его руками
>(вспоминается DoS башорга).

Вообще-то проще его поставить руками.

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

74. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от KO (?), 23-Июн-09, 09:46 
>
>>в стандартную поставку, из-за чего админам иногда приходится эмулировать его руками
>>(вспоминается DoS башорга).
>
>Вообще-то проще его поставить руками.

Более того:
http://packages.ubuntu.com/search?keywords=ipset
ставится apt-get-ом.

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

77. "> а зачем ? им делать нечего ?"  +1 +/
Сообщение от nuclight (??), 23-Июн-09, 09:55 
>>в стандартную поставку, из-за чего админам иногда приходится эмулировать его руками
>>(вспоминается DoS башорга).
>
>Вообще-то проще его поставить руками.

Ну вот поинтересуйтесь у них, почему у них такой возможности не было, хотя они о нём знали. Пришлось им руками дерево эмулировать, 256 цепочек по октету IP-адреса.

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

109. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от www2email (??), 23-Июн-09, 12:56 
>Ну вот поинтересуйтесь у них, почему у них такой возможности не было,
>хотя они о нём знали. Пришлось им руками дерево эмулировать, 256
>цепочек по октету IP-адреса.

Радиус кривизны рук наверное большой был, вот и решили не искать лёгких путей.

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

86. "> Вообще-то проще его поставить руками."  +1 +/
Сообщение от eyeemail (?), 23-Июн-09, 11:02 
ага, тут выше приводят ссылку:

>Добавляем правила огранечения по меткам. Далее средствами iptables ставим эти метки.
>А теперь покажите мне в ipfw организовать хеш-фильтры http://www.opennet.ru/docs/RUS/LARTC/x1661.html

по ссылке эмулируют хеш лол. вот у них спросите почему они так делают. наверное по-другому не получается.

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

108. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от www2email (??), 23-Июн-09, 12:55 
>[оверквотинг удален]
>ipfw table 1 add 1.2.5.0/27 1
>ipfw table 1 add 1.2.6.0/24 2
>...
>ipfw add deny all from table(1,2) to www.example.org // 1.2.6.0/24 etc.
>ipfw add pipe tablearg all from table(1) to any
>
>иначе была бы портянка вида
>ipfw add pipe 1 all from 1.2.4.0/24 to any
>ipfw add pipe 2 all from 1.2.6.0/24 to any
>...

Это уже отдаёт самоцелью. Даже теоретически не могу представить зачем это нужно. А даже если это и нужно, то это как разгребать спагетти бейсика с его goto.

>В линуксе для этого есть ipset, но он, во-первых, действительно set (множество),
>а не таблица, ничего не сопоставлено с адресом, во-вторых, не входит
>в стандартную поставку

Специально для вас мини-хау-ту для Debian Lenny:

1. устанавливаем пакеты:

# apt-get install ipset
# apt-get build-dep netfilter-extensions-source
# apg-get install netfilter-extensions-source
# cd /usr/src
# tar xjf netfilter-extensions.tar.bz2

2. собираем и устанавливаем:

# m-a a-i netfilter-extension

3. пользуемся!

>из-за чего админам иногда приходится эмулировать его руками
>(вспоминается DoS башорга).

Кстати, даже для эмуляции у iptables средства не так уж и плохи. Цепочки по сути являются подпрограммами обработки трафика и позволяют писать довольно сложные, но ТЕМ НЕ МЕНЕЕ гораздо более понятные правила, чем конструкции вида
>ipfw add pipe tablearg all from table(1) to any

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

206. "> а зачем ? им делать нечего ?"  +1 +/
Сообщение от nuclight (??), 24-Июн-09, 13:47 
>[оверквотинг удален]
>>ipfw add pipe tablearg all from table(1) to any
>>
>>иначе была бы портянка вида
>>ipfw add pipe 1 all from 1.2.4.0/24 to any
>>ipfw add pipe 2 all from 1.2.6.0/24 to any
>>...
>
>Это уже отдаёт самоцелью. Даже теоретически не могу представить зачем это нужно.
>А даже если это и нужно, то это как разгребать спагетти
>бейсика с его goto.

Как раз-таки наоборот. Линейная последовательность правил - это пачка if'ов и goto. А tablearg - это диспетчеризация вызова функции по указателю. ОДНО правило вместо пачки - это гораздо понятнее и эффективнее.

Что же касается того, зачем это нужно - тренируйте воображение, что ли. Одно из применений этой штуки (люди реально пользуются) - есть семейство тарифов (полос), клиентов много, каждый купил один из тарифов, нужно шейпить соответственно. Чтобы не писать по правилу на каждого клиента - мы вгоняем их адреса в таблицу с указанием номера. И всё!

>>из-за чего админам иногда приходится эмулировать его руками
>>(вспоминается DoS башорга).
>
>Кстати, даже для эмуляции у iptables средства не так уж и плохи.
>Цепочки по сути являются подпрограммами обработки трафика и позволяют писать довольно
>сложные, но ТЕМ НЕ МЕНЕЕ гораздо более понятные правила, чем конструкции
>вида
>>ipfw add pipe tablearg all from table(1) to any

Как средство эмуляции оно хуже - внутри подпрограммы поиск всё равно линейный. Очень странно, если вы приводите аналогии из програмирования, и не понимаете, чем одна строка с индексацией по таблице (массиву) лучше и _понятнее_, чем пачка if-else if для каждого варианта значения индекса.

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

209. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от www2email (??), 24-Июн-09, 14:14 
>>Это уже отдаёт самоцелью. Даже теоретически не могу представить зачем это нужно.
>>А даже если это и нужно, то это как разгребать спагетти
>>бейсика с его goto.
>
>Как раз-таки наоборот. Линейная последовательность правил - это пачка if'ов и goto.

Не согласен. В iptables не бывает переходов на правило с произвольным номером, только цепочки - аналог подпрограмм. А вот в ipfw есть skipto - элемент, образующий спагетти.

>А tablearg - это диспетчеризация вызова функции по указателю. ОДНО правило
>вместо пачки - это гораздо понятнее и эффективнее.

А, понятно, теперь до меня дошла семантика правила:
>ipfw add pipe tablearg all from table(1) to any

Мне показалось это будет просто правило для одного (первого) элемента таблицы, а это оказывается номер столбца. Да, интересная возможность.

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

212. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от vitek (??), 24-Июн-09, 14:49 
>Не согласен. В iptables не бывает переходов на правило с произвольным номером, только цепочки - аналог подпрограмм. А вот в ipfw есть skipto - элемент, образующий спагетти.

ну вообще-то ещё есть:
$ man iptables
.................
-g, --goto chain
              This  specifies that the processing should continue in a user specified chain. Unlike the --jump option return will not continue processing in this chain but instead in the chain that called us via --jump.

но это так, к слову.

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

33. "> минимальный файрволл настраивается в четыре наглядных строки:"  –1 +/
Сообщение от poige (ok), 23-Июн-09, 07:20 
1) iptables -P INPUT DROP
2) iptables -A INPUT -i lo -j ACCEPT
3) iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
4) echo bingo-bingo
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

35. "> минимальный файрволл настраивается в четыре наглядных стро..."  –1 +/
Сообщение от www2email (??), 23-Июн-09, 07:23 
>1) iptables -P INPUT DROP
>2) iptables -A INPUT -i lo -j ACCEPT
>3) iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
>4) echo bingo-bingo

Хотел запостить то же самое.

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

47. ">Хотел запостить то же самое. "  –1 +/
Сообщение от poige (ok), 23-Июн-09, 08:29 
И echo bingo-bingo тоже? :-D
Ответить | Правка | Наверх | Cообщить модератору

106. ">Хотел запостить то же самое. "  –1 +/
Сообщение от www2email (??), 23-Июн-09, 12:47 
>И echo bingo-bingo тоже? :-D

Нет, тут я признаю ваше авторство!

echo bingo-bingo (с) poige

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

107. ">>И echo bingo-bingo тоже? :-D "  –1 +/
Сообщение от poige (ok), 23-Июн-09, 12:52 
>Нет, тут я признаю ваше авторство!
>
>echo bingo-bingo (с) poige

Поржал, спасибо. :-)

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

91. "> минимальный файрволл настраивается в четыре наглядных стро..."  +1 +/
Сообщение от none (??), 23-Июн-09, 11:28 
Вы считаете, что это более читаемо, чем приведённый выше пример??
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

100. ">Вы считаете, что это более читаемо, чем приведённый выше приме"  –1 +/
Сообщение от poige (ok), 23-Июн-09, 12:14 
Вы правда хотите услышать поговорку про то, что мешает плохому танцору, ещё раз? :-)

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

219. "> а зачем ? им делать нечего ?"  –1 +/
Сообщение от Дмитрий Ю. Карпов (?), 24-Июн-09, 16:33 
> ipfw проще в настройке, например, минимальный файрволл настраивается в четыре наглядных строки:
>
> ipfw flush
> ipfw add check-state
> ipfw add allow all from me to any out keep-state
> ipfw add deny all from any to any

А в чём сакральный смысл этого набора правил? Разве не достаточно просто не запускать ненужных сервисов? Или дело в атаках типа "from me to me in"?

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

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

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




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

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