Более того — многие (в том числе и я), сталкиваясь с блокировками знают что делать, но ничего не делают, ибо к счастью пока ничего важного для меня не блокировали, а ради всякой ерунды стартовать свой i2p-роутер лень.
Что забавно, эта фильтрация помогла мне наконец-то завязать с парой ресурсов, которые потихоньку вели меня к деградации уже года четыре.
Можно интереса ради вбросить на РОИ инициативу в духе «Публиковать текущие данные перед принятием законов направленных на что-либо во славу общества, и каждый месяц спустя после принятия».
Только вот, вряд ли она наберёт достаточно голосов, да и если будет рассмотрена — опять лишь формально. :(
Одна беда — пока работал так и не придумал как сделать вывод заглушки, соединения просто DROP'ались, а пользователь оставался в неведении почему так произошло.
У меня почти то же самое + пара плюшек с быстрым поиском GET и субдоменов.
А я для этого отдельный TARGET-модуль с tcp-session-hijack и отсылкой синтезированного HTTP 302 сделал.
Но мути с этим было — огого. Кстати, вместо DROP, возможно правильнее вам было использовать -j REJECT with-tcp tcp-reset, до написания своего модуля я его использовал. Не совсем логично, но по крайней мере загрузка страницы у пользователя не висит.
Вот пока что думаю как лучше с HTTPS поступать, в идеале на маршрутизаторе DNAT трафика идущего на IP адреса на сервер с заглушкой сделать, наверное, но я DPI не на самом маршрутизаторе держу, а сканирую зеркало трафика с коммутатора.
А не пробовали под нагрузкой использовать? Я когда свой DPI разрабатывал тоже думал что (да боже, на этом костыле от силы 200 юзеров работать смогут), а оказалось 10Гб/сек при 10000 URL фильтрует запросто на относительно бюджетном железе.
Ну, списки запрещённых сайтов не по дням, а по часам растут, пачкой правил с такими поисками можно потери пакетов до 90% довести и все абоненты убегут :)
Ну, могу попробовать подсказать как легче всего в конкретной ситуации фильтровать.
Во-первых — задача именно заблокировать и на 100% или порезать, чтобы не ели канал?
Во-вторых — какая ширина канала/количество юзеров?
P.S: чтобы l7 не вешал ядро, можно выносить его в userspace (см. l7-filter-userspace), правда так производительность на большом канале падает сильно.
P.P.S: forum.nag.ru/forum/index.php?showtopic=55025&st=1060 хорошо раскрыта тема, в основном беда вроде как с utp бывает.
Может быть вы в курсе, как называются speedrun, которые не tool-assisted? То есть когда игрок сам крайне быстро проходит игру не используя для этого стороннего ПО, а только свой скилл?
В детстве таким образом добился прохождения Phantasy Star IV — The end of millenium за 5.5 часов без сохранений (и перерывов), жаль записать не удосужился. :(
У меня к примеру текущий проект — на 50% состоит из кода на C в kernelspace, на 10% — C в userspace + 35% bash и 5% php.
В мире таки не только веб-разработка существует.
Что забавно, эта фильтрация помогла мне наконец-то завязать с парой ресурсов, которые потихоньку вели меня к деградации уже года четыре.
Только вот, вряд ли она наберёт достаточно голосов, да и если будет рассмотрена — опять лишь формально. :(
У меня почти то же самое + пара плюшек с быстрым поиском GET и субдоменов.
А я для этого отдельный TARGET-модуль с tcp-session-hijack и отсылкой синтезированного HTTP 302 сделал.
Но мути с этим было — огого. Кстати, вместо DROP, возможно правильнее вам было использовать -j REJECT with-tcp tcp-reset, до написания своего модуля я его использовал. Не совсем логично, но по крайней мере загрузка страницы у пользователя не висит.
Вот пока что думаю как лучше с HTTPS поступать, в идеале на маршрутизаторе DNAT трафика идущего на IP адреса на сервер с заглушкой сделать, наверное, но я DPI не на самом маршрутизаторе держу, а сканирую зеркало трафика с коммутатора.
match, полагаю.
А не пробовали под нагрузкой использовать? Я когда свой DPI разрабатывал тоже думал что (да боже, на этом костыле от силы 200 юзеров работать смогут), а оказалось 10Гб/сек при 10000 URL фильтрует запросто на относительно бюджетном железе.
Если да, могу в личные сообщения скинуть бинарь.
Во-первых — задача именно заблокировать и на 100% или порезать, чтобы не ели канал?
Во-вторых — какая ширина канала/количество юзеров?
P.S: чтобы l7 не вешал ядро, можно выносить его в userspace (см. l7-filter-userspace), правда так производительность на большом канале падает сильно.
P.P.S: forum.nag.ru/forum/index.php?showtopic=55025&st=1060 хорошо раскрыта тема, в основном беда вроде как с utp бывает.
В детстве таким образом добился прохождения Phantasy Star IV — The end of millenium за 5.5 часов без сохранений (и перерывов), жаль записать не удосужился. :(
Про другие протоколы — сегодня чуть позже дополню статью.