Форум русскоязычного сообщества Ubuntu


Автор Тема: fragment_packet. как вырубить?  (Прочитано 779 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
fragment_packet. как вырубить?
« : 16 Июнь 2011, 18:24:54 »
Надо вырубить 'поддержку' приёма/отправки фрагментированных пакетов
всё что я нашел...
Цитировать
/proc/sys/net/ipv4/ipfrag_high_thresh
Переменная задает максимальный объем памяти, выделяемый под очередь фрагментированных пакетов. Когда длина очереди достигает этого порога, то обработчик фрагментов будет отвергать все фрагментированные пакеты до тех пор, пока длина очереди не уменьшится до значения переменной ipfrag_low_thresh. Это означает, что все отвергнутые фрагментированные пакеты должны быть повторно переданы узлом-отправителем.
Пакеты фрагментируются в том случае, если их размер слишком велик, чтобы быть переданными по данному каналу. Узел-отправитель, в этом случае, "режет" пакеты на более мелкие части и затем передает их одну за другой. На узле-получателе эти фрагменты опять собираются в полноценный пакет. Примечательно, что идея фрагментации пакетов, сама по себе, вещь замечательная, но, к сожалению, может быть использована в весьма неблаговидных целях.
Переменная содержит целое число в диапазоне 0 .. 2147483647 и означает верхний порог длины очереди фрагментов в байтах. Значение по-умолчанию -- 262144 байт, или 256 Кб. Этого количества, как правило, вполне достаточно даже для самых крайних случаев.


/proc/sys/net/ipv4/ipfrag_low_thresh
Эта переменная очень тесно связана с переменной ipfrag_high_thresh. Она устанавливает нижний порог, при достижении которого опять разрешается прием фрагментов в очередь. Обработчик фрагментов имеет свою очередь, в которой находятся фрагментированные пакеты, ожидающие сборки. Когда длина очереди достигает верхнего порога (ipfrag_high_thresh), то прием фрагментов в очередь приостанавливается до тех пор, пока длина очереди не уменьшится до величины ipfrag_low_thresh. Это предохраняет систему от "затопления" фрагментированными пакетами и, тем самым, является, в своем роде, защитой от некоторых видов DoS-атак.
Переменная содержит целое число в диапазоне 0 .. 2147483647 и означает нижний порог длины очереди фрагментов в байтах, по достижении которого, фрагментированные пакеты снова будут приниматься в очередь. Значение по-умолчанию -- 196608 байт, или 192 Кб. Это число обязательно должно быть меньше, чем ipfrag_high_thresh.


/proc/sys/net/ipv4/ipfrag_time
Эта переменная определяет максимальное время "хранения" фрагментов в секундах. Это относится только к тем фрагментам, которые пока невозможно собрать, поскольку собранные пакеты к этому сроку скорее всего уже будут переданы дальше (на следующий уровень или в сеть).

выставление этим трём переменным нулевых значений наверно не то что нужно...

модули ядра вижу тока эти:
Цитировать
cat /boot/config-2.6.32-32-generic | grep FRAG
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
netfiltre'ом франментррованные зарезал, потомучто подругому незнаю как
как вырубить 'поддержку' приёма/отправки фрагментированных пакетов?

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #1 : 16 Июнь 2011, 19:22:01 »
Цель манипуляций какая?
Шаг за шагом можно достичь цели.

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #2 : 16 Июнь 2011, 19:24:42 »
цель манипуляций =--выключение обработки фрагментов, ядром, тупо дропать фрагменты на самом нижнем уровне
система "целее будет"

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #3 : 16 Июнь 2011, 20:14:18 »
От тогда на нетфильтре и успокойтесь.
Шаг за шагом можно достичь цели.

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #4 : 16 Июнь 2011, 20:18:15 »
на нэтфильтре?!
а не подскажешь строку как мне в нетфильтре писать? правило покажи... мож твоё правило мне больше понравится

Гарри Кашпировский

  • Гость
Re: fragment_packet. как вырубить?
« Ответ #5 : 16 Июнь 2011, 20:23:02 »
iptables -A INPUT -f -j DROPк примеру.

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #6 : 16 Июнь 2011, 20:23:55 »
iptables -I INPUT -f -j DROP

И, собственно все.

Еще один момент, если есть нат, на выходе, то фрагментированных пакетов в самой системе уже не будет.
Шаг за шагом можно достичь цели.

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #7 : 16 Июнь 2011, 20:28:08 »
правило такое же
-A fragment_pkt -p ALL --fragment -j DROP
тока вот хотелось бы решить поставленную задачу(1 сообщение)

Гарри Кашпировский

  • Гость
Re: fragment_packet. как вырубить?
« Ответ #8 : 16 Июнь 2011, 20:39:38 »
Цитировать
-A fragment_pkt
А что попадает в эту цепочку?

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #9 : 16 Июнь 2011, 20:46:33 »
Первое: чем не устраивает решение дропа пакетов на файрволле? Это тот же уровень ядра.
Второе: чем не устраивает возможность загнать все в conntrack (NAT например) и убрать этим дефрагментацию
Третье: если уж так надо, то есть опция ядра ip always defrag
Шаг за шагом можно достичь цели.

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #10 : 16 Июнь 2011, 20:50:24 »
Цитировать
-A fragment_pkt
А что попадает в эту цепочку?
-A INPUT -p ALL -j fragment_pkt
-A fragment_pkt -p ALL --fragment -j DROP

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26251
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #11 : 16 Июнь 2011, 20:51:51 »
-p ALL
зачем? Не несёт никакого смысла - лишняя проверка.
Вся цепочка из одного правила - да ещё и безусловный переход в цепочку - смысл?
Тебе процессорное время не на что тратить?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #12 : 16 Июнь 2011, 20:55:38 »
Первое: чем не устраивает решение дропа пакетов на файрволле? Это тот же уровень ядра.
Второе: чем не устраивает возможность загнать все в conntrack (NAT например) и убрать этим дефрагментацию
Третье: если уж так надо, то есть опция ядра ip always defrag
ip always defrag не могу найти, подскажи путь

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26251
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #13 : 16 Июнь 2011, 20:57:52 »
sysctl, не?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн nixovich

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: fragment_packet. как вырубить?
« Ответ #14 : 16 Июнь 2011, 21:02:48 »
sysctl, не?
proc вроде прошарил, чет не нашел...
кстати вопрос про -j RETURN
допустим есть 2 правила
-A INPUT -p ALL -j fragment_pkt
-A fragment_pkt -p ALL --fragment -j DROP
и есть 2 правила
-A INPUT -p ALL -j fragment_pkt
-A fragment_pkt -p ALL --fragment -j DROP
-A fragment_pkt -p ALL -j RETURN

в чем здесь будет разница?

Пользователь решил продолжить мысль 16 Июнь 2011, 21:04:46:
ip_no_pmtu_disc
какаянить связь с ip_always_defrag есть?
« Последнее редактирование: 16 Июнь 2011, 21:04:46 от nixovich »

 

Страница сгенерирована за 0.058 секунд. Запросов: 25.