shafiev Posted September 22, 2014 Posted September 22, 2014 Коллеги, подскажите актуальные L7 регэкспы для матчинга трафика( Skype, торренты, youtube и тд и тп). Вставить ник Quote
Ivan_83 Posted September 22, 2014 Posted September 22, 2014 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
shafiev Posted September 23, 2014 Author Posted September 23, 2014 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
Ivan_83 Posted September 23, 2014 Posted September 23, 2014 Это из своего опыта я так понимаю? Да. http://www.netlab.linkpc.net/forum/index.php?topic=804.0 Вставить ник Quote
shafiev Posted September 23, 2014 Author Posted September 23, 2014 (edited) Это из своего опыта я так понимаю? Да. http://www.netlab.li...php?topic=804.0 Неплохо , а где еще актуальные могут валяться?, просто хочу знать что народу трэба ) Edited September 23, 2014 by shafiev Вставить ник Quote
Ivan_83 Posted September 23, 2014 Posted September 23, 2014 Хз, всё что у меня есть. Вставить ник Quote
vlad11 Posted September 24, 2014 Posted September 24, 2014 Иван, а вы не могли бы написать о своем творении в рассылку? Может кто-то закомитит в систему? Вставить ник Quote
Ivan_83 Posted September 24, 2014 Posted September 24, 2014 Системе это нужно как пятое колесо телеге, этому место в портах. Вон ng_ipacct в портах висит, хотя штука более универсальная. В ядро вообще берут самые универсальные вещи, а не столь специфичные. Кажется ng_patch и тот еле протащили, уж куда универсальнее. А коммитеры там ваще обленились: http://www.netlab.li...php?topic=781.0 висит уже года два, всё ждут когда я им документацию переведу и код дооформлю согласно стилю. Ну я сделаю, как будет время и желание, мне то торопится некуда. Ну или вот: http://netlab.linkpc...d/tmp/amdtemp.c уникальный драйвер (в других ОС так же хреново как и во фре щас, я переписывал по спекам почти с нуля), которому плевать какой АМД проц вставлен, он ещё лет 5 будет температуру показывать на всех новых процах амд, совсем без правок кода. А они там по старинке идентификаторы процов по одному добавляют. Вот учили бы лучше русский, давно бы всё закоммитили :) Вставить ник Quote
vlad11 Posted September 24, 2014 Posted September 24, 2014 Хорошо, пусть будет в портах. Вы знаете пословицу - "Лучшее - враг хорошего"? Вставить ник Quote
Ivan_83 Posted September 24, 2014 Posted September 24, 2014 Как нить займусь, обычно у меня настроение появляется что то объяснять через транслейтор вместе со снегом, до НГ держится :) Прошлые года у меня переезды были и не до этого было. Вставить ник Quote
linkodd Posted October 4, 2014 Posted October 4, 2014 а для тех кто в танке можно пояснить как это засунуть в тик L7? Вставить ник Quote
pppoetest Posted October 4, 2014 Posted October 4, 2014 ip->firewall->l7 protocols Вставить ник Quote
linkodd Posted October 4, 2014 Posted October 4, 2014 эт я понял. менять синтаксис надо и как? Вставить ник Quote
Tamahome Posted October 13, 2014 Posted October 13, 2014 Сомневаюсь что кто-то бесплатно поделится готовим и годным решением в синтаксисе iptables к примеру.. Вставить ник Quote
s.lobanov Posted October 13, 2014 Posted October 13, 2014 Сомневаюсь что кто-то бесплатно поделится готовим и годным решением в синтаксисе 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
Tamahome Posted October 13, 2014 Posted October 13, 2014 (edited) Под готовим решением понималось нечто больше ,чем только торрент ) Edited October 13, 2014 by Tamahome Вставить ник Quote
s.lobanov Posted October 13, 2014 Posted October 13, 2014 большинство протоколов не требуют L7 анализа. Собственно, торрент из тяжёлых только и требует. Вставить ник Quote
Ivan_83 Posted October 13, 2014 Posted October 13, 2014 Ну или оффсеты пересчитать под свою утилиту, если они отличаются. Синтаксис tcpdump мне нужен был только для отладки, чтобы убедится что сишный код пакеты видит также как и должен, да и наблюдать проще было через tcpdump чем ещё дописывать специально для этого код. Сами оффсеты и сигнатуры я получил путём анализа кода основного торрент клиента. Это окончательный (оптимизированный) вариант, предварительные содержали больше сравнений, потом я их сгруппировал, местами получилось одно сравнение 4 байта вместо 4-х одно байтовых или битовых. Собственно то что идёт после слов "upd header included" и есть оптимизированный вариант + заголовок юдп. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.