<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Создание модуля для iptables, измен...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html</link>
    <description>Данная статья основывается на материале &quot;Разработка Match-модуля для iptables своими руками&quot; (http://www.linuxjournal.com/article/7184), но код работает на ядрах 2.6.20+.&lt;br&gt;&lt;br&gt;Мне потребовалось изменить ID IP пакетов, в интернете подходящей инструкции как это сделать на ядре 2.6.24 я не нашел, из-за этого решил написать, как удалось решить задачу.&lt;br&gt;&lt;br&gt;Для реализации задуманного нам понадобится написать модуль ядра, который будет выполнять проверку и модуль расширения для iptables, который будет работать с модулем ядра - создавать новые цепочки,&lt;br&gt;использующие наш модуль, выводить информацию о критерии при выводе списка правил на экран, а также проверять корректность передаваемых модулю параметров.&lt;br&gt;&lt;br&gt;Сначала создадим общий заголовочный файл ipt_ID.h:&lt;br&gt;&lt;br&gt;   #ifndef _IPT_ID_H&lt;br&gt;   #define _IPT_ID_H&lt;br&gt;&lt;br&gt;   enum &#123;&lt;br&gt;       IPT_ID_RAND = 0,&lt;br&gt;       IPT_ID_INC&lt;br&gt;   &#125;;&lt;br&gt;&lt;br&gt;   #define IPT_ID_MAXMODE  IPT_ID_INC&lt;br&gt;&lt;br&gt;   struct ipt_ID_info &#123;&lt;br&gt;       u_int8_t        mode;&lt;br&gt;       u_int16_t       id;&lt;br&gt;   &#125;;&lt;br&gt;&lt;br&gt;   #endif&lt;br&gt;&lt;br&gt;Теперь с</description>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#9</link>
    <pubDate>Thu, 05 May 2011 19:17:17 GMT</pubDate>
    <description>&amp;gt; ну так как-бы согласен с тем, что соединение подвиснет ?&lt;br&gt;&lt;br&gt;Если честно, лень смотреть, пущай будет сбрасываться :)&lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#8</link>
    <pubDate>Thu, 05 May 2011 15:10:05 GMT</pubDate>
    <description>ну так как-бы согласен с тем, что соединение подвиснет ?&lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#7</link>
    <pubDate>Wed, 04 May 2011 10:07:22 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Ну и будет там запрос  &quot;GET / HTTP/1.1&quot; и чё дальше?&lt;br&gt;&amp;gt;&amp;gt; Как это спасёт от DoS/DDoS ?&lt;br&gt;&amp;gt; Допустим что там будет нечто специфичное и мы сможем выделить &quot;нужные&quot; :-)&lt;br&gt;&lt;br&gt;На месте DDoSеров я бы не повторялся,   &lt;br&gt;&lt;br&gt;&quot;GET /1 HTTP/1.1&quot;&lt;br&gt;&quot;GET /11 HTTP/1.1&quot;&lt;br&gt;&quot;GET /111 HTTP/1.1&quot;&lt;br&gt;&quot;GET /1111 HTTP/1.1&quot;&lt;br&gt;...&lt;br&gt;&quot;GET /FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF HTTP/1.1&quot;&lt;br&gt;&lt;br&gt;:)&lt;br&gt;&lt;br&gt;--- &lt;br&gt;Можно с другой стороны конечно...&lt;br&gt;&lt;br&gt;Через парсер от апача создавать проверку на запрос к реальным ресурсам&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;-m string ! -string &quot;GET /           HTTP/1.1&quot; -j REJECT --reject-with tcp-reset&lt;br&gt;-m string ! -string &quot;GET /index.html HTTP/1.1&quot; -j REJECT --reject-with tcp-reset&lt;br&gt;-m string ! -string &quot;GET /index.php  HTTP/1.1&quot; -j REJECT --reject-with tcp-reset&lt;br&gt;-m string ! -string &quot;GET /main.php   HTTP/1.1&quot; -j REJECT --reject-with tcp-reset&lt;br&gt;-m string ! -string &quot;GET /about.php  HTTP/1.1&quot; -j REJECT --reject-with tcp-reset&lt;br&gt;...&lt;br&gt;...&lt;br&gt;...&lt;br&gt;-m string ! -string &quot;GET http://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?quote=not_empty&amp;az=po</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#6</link>
    <pubDate>Wed, 04 May 2011 06:19:35 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Итак, ситуация - вебсервер, (д)дос.&lt;br&gt;&amp;gt;&amp;gt; Прилетает запрос к веб-серверу. Хотим делать фильтрацию iptables-ом по содержимому запроса.&lt;br&gt;&amp;gt;&amp;gt; Чтобы получить запрос, соединение должно быть установлено.&lt;br&gt;&amp;gt;&amp;gt; В тот момент, когда срабатывает правило &lt;br&gt;&amp;gt;&amp;gt; -A INPUT -p tcp --dport 80 -m string -string .... -j REJECT &lt;br&gt;&amp;gt;&amp;gt; --reject-with tcp-reset &lt;br&gt;&amp;gt; Ну и будет там запрос  &quot;GET / HTTP/1.1&quot; и чё дальше? &lt;br&gt;&amp;gt; Как это спасёт от DoS/DDoS ?&lt;br&gt;&lt;br&gt;Допустим что там будет нечто специфичное и мы сможем выделить &quot;нужные&quot; :-)&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;  tcp-reset отправляется только в сторону, откуда пришел запрос, в итоге имеем &lt;br&gt;&amp;gt;&amp;gt; подвешенное соединение с нашей стороны.&lt;br&gt;&amp;gt; -j REJECT --reject-with tcp-reset  сбрасывает соединение, а не вешает.&lt;br&gt;&lt;br&gt;:-) Ты уже посмотрел в код? Типовой use-case это посылка сброса на еще не установленном соединении (флаг определяет что полетит _не_ icmp пакет).&lt;br&gt;В рассматриваемом случае использование несколько иное -  соединение будет уже установлено. И далее:&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;  tcp-reset отправляется только в сторону, откуда пришел запро</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#5</link>
    <pubDate>Tue, 03 May 2011 18:47:48 GMT</pubDate>
    <description>&amp;gt; Итак, ситуация - вебсервер, (д)дос.&lt;br&gt;&amp;gt; Прилетает запрос к веб-серверу. Хотим делать фильтрацию iptables-ом по содержимому запроса. &lt;br&gt;&amp;gt; Чтобы получить запрос, соединение должно быть установлено.&lt;br&gt;&amp;gt; В тот момент, когда срабатывает правило &lt;br&gt;&amp;gt; -A INPUT -p tcp --dport 80 -m string -string .... -j REJECT &lt;br&gt;&amp;gt; --reject-with tcp-reset &lt;br&gt;&lt;br&gt;Ну и будет там запрос  &quot;GET / HTTP/1.1&quot; и чё дальше? &lt;br&gt;Как это спасёт от DoS/DDoS ?&lt;br&gt;&lt;br&gt;&amp;gt;  tcp-reset отправляется только в сторону, откуда пришел запрос, в итоге имеем &lt;br&gt;&amp;gt; подвешенное соединение с нашей стороны.&lt;br&gt;&lt;br&gt;-j REJECT --reject-with tcp-reset  сбрасывает соединение, а не вешает. &lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#4</link>
    <pubDate>Tue, 03 May 2011 02:50:43 GMT</pubDate>
    <description>могу подкинуть идею полезного и вроде как реально нужного патча / модуля:&lt;br&gt;&lt;br&gt;Итак, ситуация - вебсервер, (д)дос.&lt;br&gt;Прилетает запрос к веб-серверу. Хотим делать фильтрацию iptables-ом по содержимому запроса. Чтобы получить запрос, соединение должно быть установлено. &lt;br&gt;В тот момент, когда срабатывает правило&lt;br&gt;&lt;br&gt;-A INPUT -p tcp --dport 80 -m string -string .... -j REJECT --reject-with tcp-reset&lt;br&gt;&lt;br&gt; tcp-reset отправляется только в сторону, откуда пришел запрос, в итоге имеем подвешенное соединение с нашей стороны. &lt;br&gt;&lt;br&gt;Ну вот соответственно требуется модификация имеющегося или новый модуль :-)&lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (Новичок)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#3</link>
    <pubDate>Mon, 02 May 2011 20:34:51 GMT</pubDate>
    <description>а зачем это?&lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (segoon)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#2</link>
    <pubDate>Mon, 02 May 2011 11:15:20 GMT</pubDate>
    <description>Гораздо полезнее было бы сделать U32 target для изменения произвольного поля пакета, а --id описать как синоним опр. смещения.&lt;br&gt;</description>
</item>

<item>
    <title>Создание модуля для iptables, изменяющего ID пакета (Hubbitus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/76839.html#1</link>
    <pubDate>Mon, 02 May 2011 09:24:56 GMT</pubDate>
    <description>А для чего это вообще нужно? Ну в смысле менять ID пакета?&lt;br&gt;</description>
</item>

</channel>
</rss>
