yegorov-p Опубликовано 16 ноября, 2012 · Жалоба У него он открывается через прокси, гугл-перевочик и проч... Это тоже заблочим? опера же стандартный браузер IE или Safari это стандартный браузер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ohfsgcscft Опубликовано 17 ноября, 2012 · Жалоба Вопрос - каким образом "ловить"? Предположительно их прокси: global-turbo-1.opera-mini.net opera10beta-turbo.opera-mini.net mobile10-turbo.opera-mini.net А еще, у вас многие пользуются турбо? Там же при нормальном инете жуткие тормоза в сравнении с прямым доступом к сайту. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 19 ноября, 2012 · Жалоба 3,4 - Зачем? В реестре урлы чёткие прописаны =) Кроме того, часть записей там домены, можно тупо по хосту рубить Чтобы быстро искать. Пришёл пакет - быстро по дст ип ищем у себя в "таблице" где указаны условия: по ип / урлу и тп дальше в "таблице соединений" (возможно связанной с первой) ищем состояние данного соединения, возможно собранный в один буфер хттп регвест. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 19 ноября, 2012 · Жалоба Конфиг минимален: Проксировать на nginx нужно уметь :) http://www.netlab.linkpc.net/download/software/nginx/proxy/ кеш от туда можно выкинуть. дополнительно генерить ничего не нужно, блокировки все в отдельных файлах. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 19 ноября, 2012 · Жалоба Насколько я помню, нжинкс так и не умеет работать с tproxy? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 20 ноября, 2012 · Жалоба Нет, научите :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 20 ноября, 2012 · Жалоба Вечер добрый. С помощью чего можно реализовать такую схему наиболее оптимально? Т.е. трафик с подозрением на вредные ресурсы (по IP) отправляется на blocker, где уже проверяется на соответствие из списка запрещенных ресурсов по URL/IP. Если запрещенный, то пользователю выдается страничка с информацией о блокировке. Если же всё хорошо, трафик дальше отправляется на BGP. Причем обратный трафик должен вернуться уже в обход blocker'а. Насколько я понял, с помощью nginx такое реализовать не получится. Есть еще вариант с squid + tproxy, но писали, что может не получится, если трафик не возвращать через тот же blocker. Еще один вариант - iptables (string matсh). Какие еще варианты? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 20 ноября, 2012 · Жалоба squid + tproxy, но писали, что может не получится, если трафик не возвращать через тот же blocker Так точно, не получится Какие еще варианты? 1) поделия на перле/c++, снифающие исходящий от юзера трафик на роутере через libnfqueue и что-то делающие с нужным пакетом (пример тут был) 2) поделия на перле/c++, снифающие исходняк, или даже отзеркаленный трафик и при нужном GET шлющие tcp reset серверу и redirect клиенту (пример тут был) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 ноября, 2012 · Жалоба Можно ещё взять за основу, для обкатки алгоритма, uTPControl, принцип тот же, только внутри поменять процессинг пакетов для tcp+http. После вникания и отладки можно будет относительно легко перенести в ядро. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ansy Опубликовано 21 ноября, 2012 · Жалоба Есть нехорошая идея, мож кто реализует? Нужен генератор лексического анализатора грамматики, формируемой по списку запретных URL-ов. Чтобы на входе получал строку потока начиная с GET, например, а выдавал true или false -- о необходимости блокировки соединения. Есте, перед лексическим разбором входную строку URL надо нормализировать, убрать лишние пробелы, замененные кодами буквы и т.п.. IMHO может получиться более производительный вариант, чем заворачивание на proxy (это не основной их функционал) и более корректный, чем Layer7/string фильтры в iptables (слишком жесткие правила сравнения). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 21 ноября, 2012 · Жалоба Самоуправство! В законе сказано заблокировать урл: http://xzy.com/bnm значит только его, а не все его возможные формы написания. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 21 ноября, 2012 · Жалоба 2) поделия на перле/c++, снифающие исходняк, или даже отзеркаленный трафик и при нужном GET шлющие tcp reset серверу и redirect клиенту (пример тут был) Решил попробовать и такой вариант. Скрипт отсюда http://forum.nag.ru/forum/index.php?showtopic=79886&view=findpost&p=772456 Добавил отправку RST-пакета перед редиректом: my $rst = new Net::RawIP({ip => { saddr => $srcip, daddr => $dstip }, tcp => { source => $srcport, dest => $dstport, ack => 1, rst => 1, window => 0 } }); $rst->send(0,1); Но всё равно после этого пакета (5 по счёту в листинге) вижу обратный трафик от сайта до редиректа. Вопрос почему? Неправильный RST отсылаю? Или просто ответ приходит раньше? tcpdump -ni eth1 host 65.254.248.202 and port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes 18:59:16.714111 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [s], seq 597220666, win 65535, options [mss 1460,nop,nop,sackOK], length 0 18:59:16.850726 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [s.], seq 1477339087, ack 597220667, win 4380, options [mss 1460,sackOK,eol], length 0 18:59:16.850992 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 1, win 65535, length 0 18:59:16.851626 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [P.], seq 1:691, ack 1, win 65535, length 690 18:59:16.853231 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [R.], seq 3697746630, ack 2817628209, win 0, length 0 18:59:16.853673 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 78, win 65458, length 0 18:59:17.088438 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [.], ack 691, win 5070, length 0 18:59:17.582351 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 1:1461, ack 691, win 5070, length 1460 18:59:17.582370 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 1461:2921, ack 691, win 5070, length 1460 18:59:17.582743 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 2921:4381, ack 691, win 5070, length 1460 18:59:17.582874 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 2921, win 65535, length 0 18:59:17.582983 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 4381:5841, ack 691, win 5070, length 1460 18:59:17.583371 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 5841, win 65535, length 0 18:59:17.583482 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 5841:7301, ack 691, win 5070, length 1460 18:59:17.583676 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 7301:8761, ack 691, win 5070, length 1460 18:59:17.584106 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 8761, win 65535, length 0 18:59:17.719636 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [.], seq 8761:10221, ack 691, win 5070, length 1460 18:59:17.720018 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [.], seq 10221:13141, ack 691, win 5070, length 2920 18:59:17.720210 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [P.], seq 13141:13556, ack 691, win 5070, length 415 18:59:17.720437 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 11681, win 65535, length 0 18:59:17.720627 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 13556, win 65535, length 0 18:59:17.727895 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [F.], seq 691, ack 13556, win 65535, length 0 18:59:17.864622 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [.], ack 692, win 5070, length 0 18:59:17.865049 IP 65.254.248.202.80 > 10.1.2.234.14319: Flags [F.], seq 13556, ack 692, win 5070, length 0 18:59:17.865247 IP 10.1.2.234.14319 > 65.254.248.202.80: Flags [.], ack 13557, win 65535, length 0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 21 ноября, 2012 · Жалоба Самоуправство! В законе сказано заблокировать урл: http://xzy.com/bnm значит только его, а не все его возможные формы написания. Вот именно! Как сказано, так и должно быть сделано! P.S. Кто помнит "success story" про автомобильную мед. аптечку "ФЭСТ", тот знает, что (и _как_долго_) необходимо делать.. ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 21 ноября, 2012 · Жалоба Но всё равно после этого пакета (5 по счёту в листинге) вижу обратный трафик от сайта до редиректа. Вопрос почему? Неправильный RST отсылаю? Или просто ответ приходит раньше? Как минимум врядли ack и seq должны быть равны 1 =) Но я бегло попробовал, если подставлять ack & seq предыдущего запроса, почему-то тоже не канает; ну либо руки кривые, либо не выспался =) надо будет поэкспериментировать ещё Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 22 ноября, 2012 · Жалоба Ну вы блин %) ack и seq меняются местами для противоположной стороны. Ещё, вроде, подтверждение закрытия соединения должно быть. Короче курите спецификацию tcp - сэкономите кучу времени на экспериментах. Ещё можно где то в исходниках ОС поискать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
homeuser Опубликовано 22 ноября, 2012 · Жалоба Нужен генератор лексического анализатора грамматики, формируемой по списку запретных URL-ов. Вашкевич Н.П. с теорией автоматов вспоминается... в принципе того рода задачка. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dystopian Опубликовано 22 ноября, 2012 · Жалоба В Дом.ру после окончания денег на счете на любые HTTP-запросы приходит примерно такой ответ: HTTP/1.1 302 Moved Temporarily Server: nginx/0.7.67 Date: Wed, 21 Nov 2012 14:00:22 GMT Content-Type: text/html Content-Length: 161 Connection: close Location: http://frontend.citydom.ru/?city=volgograd&page=avans <html> <head><title>302 Found</title></head> <body bgcolor="white"> <center><h1>302 Found</h1></center> <hr><center>nginx/0.7.67</center> </body> </html> Может, у кого-то есть возможность рассказать о реализации? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KotikBSd Опубликовано 22 ноября, 2012 · Жалоба Реализация простая, если тебя нет в "списке" то все коннекты "редиректяца на локальный порт" который и отвечает. С этим проще, т.к. ты ещё до установки сессии знаешь что нужно редиректить. я уже где-то на форуме выкладывал конфиг nginx для правильных редиректов :) а с блокировкой сайта сложнее т.к. узнать нужно редиректить нам или нет мы можем только после установки tcp сессии между абонентом и сервером (допустим ютюба). У меня на данный момент работает фильтр на linux на который направляется исходящий от абонента трафик(входящий идет напрямую, без этого сервера). И там я уже смотрю если исходя из пакетов с данными абонента нужно отредиректить, я пакет дропаю и абоненту отсылаю подставной пакет ACK и пакет с данными от имени сервера с редиректом, после этого и абоненту и серверу шлю rst, серверу нужно обязательно, абоненту - на всякий случай, вдруг он подумает что keep-alive или ещё что-то. тесты показали что при наличие в списке 100000 доменов - на скорость открытия страниц не влияет. тестил "ab" сначала без фильтра потом с фильтром, результаты тестов 600 запросов\сек, больше сервер на прямую дать не смог, по этому может скрипт и больше может отработать. Плюс в том что я могу на сервере поднять N количество фильтров и баллансировать между ними запросы, по этому теоретически я тогда буду ограничен лишь памятью и CPU. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 22 ноября, 2012 · Жалоба KotikBSd а пример формирования RST пакета можете выложить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
KotikBSd Опубликовано 22 ноября, 2012 · Жалоба Тот что шлем серверу: Стандартный RST seq=seq пакета с данными от клиента который дропали ack=ack пакета с данными от клиента который дропали Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 23 ноября, 2012 · Жалоба В Дом.ру после окончания денег на счете на любые HTTP-запросы приходит примерно такой ответ: В ростелеке редирект на: http://debt.sibirtelecom.ru?url=.... После залёта в блокировку и перезапуска браузера с парой сотен вкладок я был неописуемо "счаслив". Пришлось на nginx, который у меня прозрачно всё проксирует добавить: location / { if ($host ~* "debt.sibirtelecom.ru") { set_unescape_uri $orig_uri $arg_url; return 302 $orig_uri; } .... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 24 ноября, 2012 · Жалоба Вот нашлось: http://forum.nginx.org/read.php?21,230537,230537#msg-230537 те решение для прозрачного проксирования где то пролетало. Только проксирования, в обе стороны, а не в одну. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lumenok Опубликовано 26 ноября, 2012 · Жалоба Добрый день, пытаюсь сделать способ с перл скриптом (генерация пакета). Но не пойму до конца как скрипт работает, пакеты собираем через зазеркалированный порт, а отправлять пакеты надо через другой порт, пробовал кто-нибудь в такой конфигурации данный скрипт. Способ с перл скриптом Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
puzanaga Опубликовано 12 декабря, 2012 · Жалоба Добрый день. А на MIkrotik ктонибуть реализовывал автоматическую блокировку запрещенных сайтов ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nonoma72 Опубликовано 12 декабря, 2012 · Жалоба Добрый день. А на MIkrotik ктонибуть реализовывал автоматическую блокировку запрещенных сайтов ? https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab43-bc6db27fe919/c535b6e5047ec69d304519fe81c2c9ac?noteKey=c535b6e5047ec69d304519fe81c2c9ac¬eGuid=ceb0b021-47e7-4c61-ab43-bc6db27fe919 делай как все написано как список получишь напиши выкину скрипт который все запихивает в микрот Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...