shafiev Posted September 22, 2014 · Report post Коллеги, подскажите актуальные L7 регэкспы для матчинга трафика( Skype, торренты, youtube и тд и тп). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 22, 2014 · Report post +1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 22, 2014 · Report post uTP v1 /* * syn - 14 bytes * 'udp[17] = 2 and udp[18] = 4 and udp[21:2] = 0 and udp[23] = 0 and udp[24] = 8 and udp[25:4] = 0 and udp[29:4] = 0' * 41 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 41 and udp[25:2] = 0x0204 and udp[29:4] = 0x00000008 and udp[33:4] = 0 and udp[37:4] = 0)' */ /* * rst - 4 bytes * 'udp[17] = 0 and udp[18] = 3' * 31 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 31 and udp[25:2] = 0x0003)' */ v2 /* * syn - 14 bytes * 'udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40 and udp[1] = 2 and udp[18:2] = 0 and udp[20] = 0 and udp[21] = 8 and udp[22:4] = 0 and udp[26:4] = 0' * (udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40) => udp[0] = 0x41 * 38 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 38 and udp[8:2] = 0x4102 and udp[26:4] = 0x00000008 and udp[30:4] = 0 and udp[34:4] = 0)' */ /* * rst - 4 bytes * 'udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30 and udp[1] = 0' * (udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30) => udp[0] = 0x31) * 28 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 28 and udp[8:2] = 0x3100)' */ это в синтаксисе tcpdump. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
shafiev Posted September 23, 2014 · Report post uTP v1 /* * syn - 14 bytes * 'udp[17] = 2 and udp[18] = 4 and udp[21:2] = 0 and udp[23] = 0 and udp[24] = 8 and udp[25:4] = 0 and udp[29:4] = 0' * 41 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 41 and udp[25:2] = 0x0204 and udp[29:4] = 0x00000008 and udp[33:4] = 0 and udp[37:4] = 0)' */ /* * rst - 4 bytes * 'udp[17] = 0 and udp[18] = 3' * 31 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 31 and udp[25:2] = 0x0003)' */ v2 /* * syn - 14 bytes * 'udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40 and udp[1] = 2 and udp[18:2] = 0 and udp[20] = 0 and udp[21] = 8 and udp[22:4] = 0 and udp[26:4] = 0' * (udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40) => udp[0] = 0x41 * 38 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 38 and udp[8:2] = 0x4102 and udp[26:4] = 0x00000008 and udp[30:4] = 0 and udp[34:4] = 0)' */ /* * rst - 4 bytes * 'udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30 and udp[1] = 0' * (udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30) => udp[0] = 0x31) * 28 = udp hdr len (8) + upd pkt data len * upd header included: * '(udp[4:2] = 28 and udp[8:2] = 0x3100)' */ это в синтаксисе tcpdump. Это из своего опыта я так понимаю? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 23, 2014 · Report post Это из своего опыта я так понимаю? Да. http://www.netlab.linkpc.net/forum/index.php?topic=804.0 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
shafiev Posted September 23, 2014 (edited) · Report post Это из своего опыта я так понимаю? Да. http://www.netlab.li...php?topic=804.0 Неплохо , а где еще актуальные могут валяться?, просто хочу знать что народу трэба ) Edited September 23, 2014 by shafiev Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 23, 2014 · Report post Хз, всё что у меня есть. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 24, 2014 · Report post Иван, а вы не могли бы написать о своем творении в рассылку? Может кто-то закомитит в систему? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 24, 2014 · Report post Системе это нужно как пятое колесо телеге, этому место в портах. Вон ng_ipacct в портах висит, хотя штука более универсальная. В ядро вообще берут самые универсальные вещи, а не столь специфичные. Кажется ng_patch и тот еле протащили, уж куда универсальнее. А коммитеры там ваще обленились: http://www.netlab.li...php?topic=781.0 висит уже года два, всё ждут когда я им документацию переведу и код дооформлю согласно стилю. Ну я сделаю, как будет время и желание, мне то торопится некуда. Ну или вот: http://netlab.linkpc...d/tmp/amdtemp.c уникальный драйвер (в других ОС так же хреново как и во фре щас, я переписывал по спекам почти с нуля), которому плевать какой АМД проц вставлен, он ещё лет 5 будет температуру показывать на всех новых процах амд, совсем без правок кода. А они там по старинке идентификаторы процов по одному добавляют. Вот учили бы лучше русский, давно бы всё закоммитили :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 24, 2014 · Report post Хорошо, пусть будет в портах. Вы знаете пословицу - "Лучшее - враг хорошего"? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted September 24, 2014 · Report post Как нить займусь, обычно у меня настроение появляется что то объяснять через транслейтор вместе со снегом, до НГ держится :) Прошлые года у меня переезды были и не до этого было. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
linkodd Posted October 4, 2014 · Report post а для тех кто в танке можно пояснить как это засунуть в тик L7? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pppoetest Posted October 4, 2014 · Report post ip->firewall->l7 protocols Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
linkodd Posted October 4, 2014 · Report post эт я понял. менять синтаксис надо и как? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tamahome Posted October 13, 2014 · Report post Сомневаюсь что кто-то бесплатно поделится готовим и годным решением в синтаксисе iptables к примеру.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 13, 2014 · Report post Сомневаюсь что кто-то бесплатно поделится готовим и годным решением в синтаксисе iptables к примеру.. Ivan_83 уже поделился. Всё же тривиально. Просто компиляете правила tcpdump в bytecode и грузите их в BPF модуль iptables tcpdump -i INTERFACE -ddd 'TCPUMP_FILTER' > filter.bpf iptables -t TABLE -I CHAIN -m bpf --bytecode-file filter.bpf -j ACTION куда уж проще-то? Старые ядра использовать не советую для этого дела. Я бы начал с 3.16.5, потом уж даунгрейдить, если будут какие-то проблемы Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tamahome Posted October 13, 2014 (edited) · Report post Под готовим решением понималось нечто больше ,чем только торрент ) Edited October 13, 2014 by Tamahome Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 13, 2014 · Report post большинство протоколов не требуют L7 анализа. Собственно, торрент из тяжёлых только и требует. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted October 13, 2014 · Report post Ну или оффсеты пересчитать под свою утилиту, если они отличаются. Синтаксис tcpdump мне нужен был только для отладки, чтобы убедится что сишный код пакеты видит также как и должен, да и наблюдать проще было через tcpdump чем ещё дописывать специально для этого код. Сами оффсеты и сигнатуры я получил путём анализа кода основного торрент клиента. Это окончательный (оптимизированный) вариант, предварительные содержали больше сравнений, потом я их сгруппировал, местами получилось одно сравнение 4 байта вместо 4-х одно байтовых или битовых. Собственно то что идёт после слов "upd header included" и есть оптимизированный вариант + заголовок юдп. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...