URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 95545
[ Назад ]

Исходное сообщение
"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."

Отправлено opennews , 23-Апр-14 11:20 
Доступна (http://nest.ahome.ru/ng_grep/index.html) тестовая версия  NetGraph-модуля ng_grep, созданного для решения задачи анализа и фильтрации содержимого транзитных http-запросов при исполнении решений Роскомнадзора. Работа фильтра протестирована во FreeBSD 10.0. Полный список блокировки (http://reestr.rublacklist.net/) Роскомнадзора ng_grep обрабатывает без проблем, но нагрузочного тестирования  еще не проводилось.

Пример условий, которые понимает и обрабатывает модуль:


<font color="#461b7e">
   # ngctl msg grep: add {raw=\"http://www.sample.ru/sample\"}
   Rec'd response "add" (2) from "[3836]:":
   Args:   { i_c=1 raw="http://www.sample.ru/sample" }
</font>

URL: http://nest.ahome.ru/ng_grep/index.html
Новость: http://www.opennet.me/opennews/art.shtml?num=39626


Содержание

Сообщения в этом обсуждении
"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено danfe , 23-Апр-14 11:20 
Нужен модуль для фильтрации интернета от Роскомнадзора.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Пушистик , 23-Апр-14 11:26 
В последнее время всё больше и больше стал замечать, что безобидные сайты блокируют ни за что. Причём не только на русском и англ языках.

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


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено DeadLoco , 23-Апр-14 11:38 
Потомственное стукачество + синдром вахтера дают ядреную смесь.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 24-Апр-14 00:59 
> В последнее время всё больше и больше стал замечать, что безобидные сайты
> блокируют ни за что. Причём не только на русском и англ языках.

Спасибо, капитан. Эти (beep!) заблочили, например, сервера cloudflare. Гении! О том что это CDN и плашка будет вываливаться при посещении 100500 рандомных сайтов - эти с... в роскомпозоре, разумеется не в курсе. Офигительно.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 24-Апр-14 12:31 
Знает и рекомендует не использовать CF.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Xaionaro , 23-Апр-14 18:43 
> Нужен модуль для фильтрации интернета от Роскомнадзора.

https://github.com/AntiZapret/antizapret


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено StainlessRat , 23-Апр-14 22:01 
ipfw add deny from роспатрёпнадзор to any
ipfw add deny from any to роспатрёпнадзор

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 11:23 
Нужен интернет без надзора

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Andrey Mitrofanov , 23-Апр-14 13:14 
> Нужен интернет без надзора

Начинай отделять коммуникации (на 5 с + -- "связи, информационных технологий и массовых коммуникаций") от интернета, потом переходи к отделению Роскомнадзора от.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 14:50 
i2p тебе в руки.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Revolution , 23-Апр-14 11:30 
ng_roskomnadzor

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 17:08 
> ng_roskomnadzor

ng_1984 ;-) Была такая мысль... Один коллега предложил ng_f451, но тут я был не согласен в принципе.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено anonymous , 23-Апр-14 21:24 
ng_f451 это пять

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Dmitry , 23-Апр-14 11:40 
--- ng_grep.c.orig    2014-04-17 02:11:36.000000000 +0300
+++ ng_grep.c    2014-04-23 10:39:17.000000000 +0300
@@ -280,7 +280,7 @@
    if(hook==priv->miss || hook==priv->meet){
        log(LOG_ERR,"ng_grep::rcvdata from out-only hook, discard!\n");
        NG_FREE_ITEM(item);
-        error=EINVAL;
+        return(EINVAL);
    }

    m=item->body.da_m;

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 14:52 
Спасибо!

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 15:06 
return - не функция, позорище.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 15:22 
Похоже человек на всякий случай макрос в скобки поставил, а то с макросами всякие казусы бывают.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 16:20 
> Похоже человек на всякий случай макрос в скобки поставил, а то с
> макросами всякие казусы бывают.

Имхо, это даже не так важно -- человек показал ошибку в логике, и спасибо ему за это еще раз. Я все равно исправил по-другому...


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено danfe , 23-Апр-14 16:34 
> Похоже человек на всякий случай макрос в скобки поставил, а то с макросами всякие казусы бывают.

Хоть EINVAL и макроопределение, скобки в данном случае необязательны (т.к. лишь одна лексема: 22), но так диктует man style(9) FreeBSD (видимо, ради consistency с if, while, for).


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено cvsup1 , 23-Апр-14 21:39 
В не ANSI C, return могла быть (и была) функцией или иным не ключевым словом, ноги оттуда

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 21:49 
Вас не затруднит указать параграф стандарта ANSI C, где это описано?

В любом случае, если бы return был функцией, то скобки не должны отбиваться пробелом согласно man 9 style, а весь код фрибсд кричит об обратном.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 24-Апр-14 10:25 
>В не ANSI C
>не
>не

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 11:49 
> Полный список блокировки Роскомнадзора ng_grep обрабатывает без проблем

Хотелось бы узнать, каким таким образом "без проблем" удается обрабатывать HTTPS URL?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Нанобот , 23-Апр-14 13:02 
для людей у, которых проблема со зрением: попробуйте навести большую лупу на последнее слово в следующей строке:

>для решения задачи анализа и фильтрации содержимого транзитных >>>>http<<<-запросов


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 17:15 
> для людей у, которых проблема со зрением: попробуйте навести большую лупу на
> последнее слово в следующей строке:
>>для решения задачи анализа и фильтрации содержимого транзитных >>>>http<<<-запросов

Вообще говоря, основная цель данного поделия -- стейтлесс-фильтрация, дабы не заморачиваться обработкой обратного трафика. С https такой подход не работает в принципе.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Dmitry , 23-Апр-14 11:50 
В файлике my_pattern.c не обрабатываются ошибки аллокации памяти.
В частности:
pattern->next = malloc(sizeof(*pattern->next), M_NETGRAPH_GREP, M_ZERO|M_NOWAIT);
и т.п.
Для сравнения строк желательно задавать ограничение на количество сравниваемых символов

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 14:40 
Неправда ваша, дяденька... Буквально 3 строками ниже
if((pattern->next && pattern->precomp)

Про ограничения -- согласен, а что, просмотрел где-то? Поищу, поправлю.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 24-Апр-14 10:29 
> if((pattern->next && pattern->precomp)

Не очень хорошая практика, на мой взгляд. Лучше явно сравнивать с NULL, ибо согласно стандарту он необязательно равен нулю.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Led , 24-Апр-14 12:27 
>> if((pattern->next && pattern->precomp)
> Не очень хорошая практика, на мой взгляд. Лучше явно сравнивать с NULL,
> ибо согласно стандарту он необязательно равен нулю.

А кто тебе сказал, сто если не указывать "явно сравнивать с NULL", то компилятор будет сравнивать указатель с нулём?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 24-Апр-14 14:14 
Я не понял твоего вопроса. Компилятор сравнивать ничего не будет, во-первых. А во-вторых, в языке Си истинным считается любое ненулевое значение. Запись вида "if((pattern->next != 0 && pattern->precomp != 0)" избыточна.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 15:24 
> Я не понял твоего вопроса. Компилятор сравнивать ничего не будет, во-первых. А
> во-вторых, в языке Си истинным считается любое ненулевое значение. Запись вида
> "if((pattern->next != 0 && pattern->precomp != 0)" избыточна.

Ну, такая-то запись попросту некорректна... Речь шла о
if((pattern->next != NULL && pattern->precomp != NULL)


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Led , 25-Апр-14 09:12 
> Я не понял твоего вопроса. Компилятор сравнивать ничего не будет, во-первых. А
> во-вторых, в языке Си истинным считается любое ненулевое значение.

Ок, и что же является "ненулевым значением" для указателя?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 25-Апр-14 12:05 
Не ноль.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Led , 26-Апр-14 18:23 
> Не ноль.

Уверен?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 26-Апр-14 23:49 
Ну что за дурацкие вопросы? Как маленький, ей-богу! Посмотри в стандарте, если мне на слово не веришь:

> Constraints
>  Each of the operands shall have scalar type.
> Semantics
>  The && operator shall yield 1 if both of its operands compare unequal to 0; otherwise, it
>  yields 0. The result has type int.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Led , 27-Апр-14 00:14 
> Ну что за дурацкие вопросы? Как маленький, ей-богу! Посмотри в стандарте, если
> мне на слово не веришь:
>> Constraints
>>  Each of the operands shall have scalar type.
>> Semantics
>>  The && operator shall yield 1 if both of its operands compare unequal to 0; otherwise, it
>>  yields 0. The result has type int.

При чём тут '&&'?

Почитай вот это, внимательно:
http://c-faq.com/null/ptrtest.html


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 13:09 
Роскомнадзор ничего хорошего в этой жизни не сделал.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 14:08 
> Роскомнадзор ничего хорошего в этой жизни не сделал.

А должен был?

Как следует из самоназвания - это всеобщий полицейский всея Руси. Надзирающий за всем и вся.

Следует ли вообще в принципе удивляться его существованию?

Кстати, в качестве девиза Роскомнадзору предлагаю старинную фразу - "Кто устережет сторожей?"


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено SergMarkov , 23-Апр-14 14:50 
>> Роскомнадзор ничего хорошего в этой жизни не сделал.
> А должен был?
> Как следует из самоназвания - это всеобщий полицейский всея Руси. Надзирающий за
> всем и вся.
> Следует ли вообще в принципе удивляться его существованию?
> Кстати, в качестве девиза Роскомнадзору предлагаю старинную фразу - "Кто устережет сторожей?"

Нацлидер денно и нощно следит за качеством импортируемых огурцов, ты что, не знал, шоли ? :-)



"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено хм , 23-Апр-14 21:41 
>"Кто устережет сторожей?"

"Тот кто ворует у воров"


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено anonymous , 23-Апр-14 14:07 
>ngctl msg grep: add {raw=\"http://www.sample.ru/sample\"}

Я так понимаю с таким правилом зарежется и текст, где будет присутствовать эта ссылка?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено Аноним , 23-Апр-14 14:09 
>>ngctl msg grep: add {raw=\"http://www.sample.ru/sample\"}
> Я так понимаю с таким правилом зарежется и текст, где будет присутствовать
> эта ссылка?

Сквида с регэкспами вживе видел?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено anonymous , 23-Апр-14 14:18 
Речь не о сквиде, а об этом конкретном примере. А почему Вы отвечаете вопросом на вопрос?

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 14:56 
> Речь не о сквиде, а об этом конкретном примере. А почему Вы
> отвечаете вопросом на вопрос?

В данном конкретном примере будет искать совпадение строки, без каких-бы то ни было регэкспов. То есть в match попадут пакеты, не "содержащие" строку, а "состоящие" из нее, и только они.

Сосбвенно, пользы от raw особой нет, делалось для url
raw осталась как заготовка для подключения регэкспов.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено YetAnotherOnanym , 23-Апр-14 17:40 
> а "состоящие" из нее, и только они

чорт, а я уже хотел порадоваться, что письмо самого роскомнадзора, например, со следующей версией списка, в котором присутствует этот url, тоже будет зарезано.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 23-Апр-14 19:30 
>> а "состоящие" из нее, и только они
> чорт, а я уже хотел порадоваться, что письмо самого роскомнадзора, например, со
> следующей версией списка, в котором присутствует этот url, тоже будет зарезано.

Я умею стрелять себе в ногу. Но делаю это только когда действительно хочу ;-)


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено свободный бздун , 24-Апр-14 21:01 
> Я так понимаю с таким правилом зарежется и текст, где будет присутствовать
> эта ссылка?

Если дополнительно проверять наличие tcp-флага push, который обычно стоит при запросе get/post, то контент не будет резаться.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 25-Апр-14 04:24 
для паттерна типа url я все равно http заголовок частино разбираю, потому анализируется только запрос. Потому позволил себе tcp флаги не анализировать. Хотя, может, и не прав, подумаю.

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено некто , 24-Апр-14 16:09 
инструменты на базе регулярок известны своей "отзывчивостью" вложенным и сложным выражениям...

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 18:07 
> инструменты на базе регулярок известны своей "отзывчивостью" вложенным и сложным выражениям...

Регулярками там пока не пахнет, хотя может быть по настроению и добавлю, благо есть куда.
Http заголовок частино парсится, и ищется строгое соответствие полей. Именно по указанной вами причине ;-) А кроме того, это еще и быстрее.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено некто , 24-Апр-14 20:28 
>> инструменты на базе регулярок известны своей "отзывчивостью" вложенным и сложным выражениям...
> Регулярками там пока не пахнет, хотя может быть по настроению и добавлю,
> благо есть куда.
> Http заголовок частино парсится, и ищется строгое соответствие полей. Именно по указанной
> вами причине ;-) А кроме того, это еще и быстрее.

grep в названии это просто маркетинг? как слово java в javascript?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 25-Апр-14 04:25 

> grep в названии это просто маркетинг? как слово java в javascript?

пока, к сожалению, да.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено некто , 24-Апр-14 16:12 
Чтобы не парсить контент типа? А если контент слегка мутирует?

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 18:33 
> Чтобы не парсить контент типа? А если контент слегка мутирует?

А он не перестанет быть при этом валидным http запросом?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено некто , 24-Апр-14 20:25 
с чего это вдруг?

"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 20:54 
> с чего это вдруг?

с того, что мутирует ;-)

Формат http запроса-ответа, равно как формат tcp и ip, поверх которых оно живет, описаны достаточно жестко. Мы не можем изменить их только с одной стороны, например, использовав вместо GET слово ДАЙ, точнее можем конечно, но сессия не состоится, ибо сервер не поймет. А обновить библиотеки на всех серверах, не отразив это в RFC -- это из разряда фантистики... А буде оно отразится в RFC -- так и в фильтр внести изменения недолго.


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено некто , 24-Апр-14 16:21 
Извиняюсь.

Это конечно хорошо что предоставляется исходный код. Но все равно такие инструменты противоречат тому, что сервера и окружение предназначены для предоставления людям информации.

Немного не в тему, но не лишне напомнить: те кого блокируют просто найдут другие, более эффективные способы передачи информации.

Как насчет инструментов, технологий, облегчающих и упрощающих передачу информации по каналам с большой зашумленностью?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 18:02 
> Извиняюсь.
> Это конечно хорошо что предоставляется исходный код. Но все равно такие инструменты
> противоречат тому, что сервера и окружение предназначены для предоставления людям информации.

Позволю себе не согласиться. Этот инструмент раскидывает пакеты на два хука в зависимости от выполнения/невыполнения некоего условия, не более того, но и не менее. Инструмент не будет дискардить пакеты, если хук куда-то поцеплен надлежащим образом... А то так можно на оператор if начать ругаться.

> Как насчет инструментов, технологий, облегчающих и упрощающих передачу информации по
> каналам с большой зашумленностью?

Не люблю согласованные фильтры... Что остается? Коды с коррекцией?


"Для FreeBSD подготовлен ng_grep, NetGraph-модуль для фильтра..."
Отправлено andy_68 , 24-Апр-14 18:10 
>> Как насчет инструментов, технологий, облегчающих и упрощающих передачу информации по
>> каналам с большой зашумленностью?
> Не люблю согласованные фильтры... Что остается? Коды с коррекцией?

Кстати, была мысль, но руки пока не дошли -- рассмотреть входной пакет как набор отсчетов и прокрутить над ним БПУ, посмотреть, сколь быстро сойдется. По идее, операция недолгая, благо бабочка без умножений и поворотов.