AdmSasha Posted November 10, 2012 Дело не в 64bit. У меня 32bit sendto() at /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/Net/RawIP.pm line 630. (in cleanup) Not a HASH reference at /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi/Net/RawIP.pm line 691 during global destruction. Share this post Link to post Share on other sites More sharing options...
disappointed Posted November 10, 2012 AdmSasha Какой дистрибутив? Share this post Link to post Share on other sites More sharing options...
AdmSasha Posted November 10, 2012 AdmSasha Какой дистрибутив? Mandriva Linux release 2010.0 (Official) for i586 kernel: 2.6.31.5-server-1mnb perl: v5.10.1 rpm: perl-Net-Pcap-0.160.0-1mdv2010.0 perl-Net-RawIP-0.250.0-1mdv2010.0 perl-NetPacket-0.41.1-2mdv2010.0 libpcap1-1.0.0-7mdv2010.0 Share this post Link to post Share on other sites More sharing options...
darnet Posted November 10, 2012 0 вместо "xyz" у меня работает, только ответы от сайтов прилетают быстрее чем успевает скрипт выплюнуть фейковый ответ. (скрипт опаздывает где-то на 100мс) - т.е. если сайт быстрее ответит - получается облом (тестил со своим удалённым сервером, если при генерации страницы сделать задержку - всё в порядке) =) Share this post Link to post Share on other sites More sharing options...
disappointed Posted November 10, 2012 darnet а чего он 100мс делает? ) наверно стоит попробовать порулить этим числом my $pcap_t = Net::RawIP->pcapinit($dev, $filter_str, 1500, 250); Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 11, 2012 А rst серверу не получилось пока отсылать? Я наверно тупой вопрос задам, но всё же задам =) Чтобы не пропустить отматченый пакет к серверу (чтобы избежать проблемы с быстрым ответом сервера) - выход только писать модуль к нетфильтру, и все пакеты прогонять через подобный скрипт, для пропуска ожидая "разрешения", что вызовет бешеные накладные расходы? Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted November 11, 2012 На попробовать - есть диверт сокеты. http://www.netlab.linkpc.net/forum/index.php?topic=175.0 Я отправлял копии пакетов юзерспейсной проге, но можно и сами пакеты. В линуксах диверты вроде тоже есть. Если будет получатся и то что я описал в своих постах выше удастся решить или забить то тогда имеет смысл отлаженный код пихать в модуль. Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 11, 2012 (edited) или ip_queue заюзать, как вариант Основные проблемы: 1. Нужно собирать фрагментированные пакеты; 2. Держать список для данных соединений; 3. Нужно регэкспать; 4. Держать большой список для регэкспа с ип адресами и регэкспами; 5. Всё это делать в ядре. И ещё, если оно ставится "с боку" и видит траф только в одну сторону, то с редиректами могут быть проблемы. 1,2 - да, проблемки 3,4 - Зачем? В реестре урлы чёткие прописаны =) Кроме того, часть записей там домены, можно тупо по хосту рубить 5 - так ли это необходимо? Про редиректы - какие проблемы, например? Edited November 11, 2012 by Wingman Share this post Link to post Share on other sites More sharing options...
darnet Posted November 11, 2012 darnet а чего он 100мс делает? ) наверно стоит попробовать порулить этим числом my $pcap_t = Net::RawIP->pcapinit($dev, $filter_str, 1500, 250); я пробовал с предыдущей версией, где было: $packet->send(); #(видимо по умолчанию какая-то задержка есть) в потом посмотрел последнюю - где уже: $packet->send(0,1); и с ней вроде не нужно задержек - скрипт успевает опередить ответ. Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted November 12, 2012 3,4 - Зачем? В реестре урлы чёткие прописаны =) Кроме того, часть записей там домены, можно тупо по хосту рубить 4 нужно для того чтобы быстрее проверять. Выцепляем из л3 заголовка дст ип, быстренько по нему находим заблокирован он или нет, или какие урл поискать в данных. Share this post Link to post Share on other sites More sharing options...
Hawk128 Posted November 12, 2012 А может ли кто-нибудь выложить более менее готовый вариант взаимодействия с их архивом? (Получение списка). Может даже с обработкой и какими-либо действиями шлюзе? Очень желательно под фрю. Share this post Link to post Share on other sites More sharing options...
AlKov Posted November 12, 2012 AdmSasha Какой дистрибутив? Mandriva Linux release 2010.0 (Official) for i586 kernel: 2.6.31.5-server-1mnb perl: v5.10.1 rpm: perl-Net-Pcap-0.160.0-1mdv2010.0 perl-Net-RawIP-0.250.0-1mdv2010.0 perl-NetPacket-0.41.1-2mdv2010.0 libpcap1-1.0.0-7mdv2010.0 А iptables есть? NAT? Может где-то тут проблема живёт? Share this post Link to post Share on other sites More sharing options...
darnet Posted November 12, 2012 (edited) А может ли кто-нибудь выложить более менее готовый вариант взаимодействия с их архивом? (Получение списка). Может даже с обработкой и какими-либо действиями шлюзе? Очень желательно под фрю. с электронной подписью они неприятно осложнили жизнь. фактически для подписи надо использовать Crypto pro - для виндоуз и линукс он есть, под фрю кажется нету. кажется в этой ветке или соседних писали, что они пока не придираются к дате формирования запроса. Т.е. можно один раз сформировать запрос руками и потом постоянно его скармливать с подписью. Edited November 12, 2012 by darnet Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 12, 2012 http://forum.nag.ru/forum/index.php?showforum=1 тут в верхних темах уже несколько готовых решений лежит Share this post Link to post Share on other sites More sharing options...
AlKov Posted November 13, 2012 А вариант iptables + squid + redirect кто-нибудь реализовать пробовал? Например, в iptables заворачиваем в сквид все IP из списка, а в сквиде разбираем url и в случае совпадения редиректим на страничку с "ай-ай!". С iptables всё понятно, а вот со сквидом что-то торможу.. :( Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 13, 2012 Я так сейчас делаю, пока dpi на тест не приехало или другого решения не придумалось Share this post Link to post Share on other sites More sharing options...
AlKov Posted November 13, 2012 Я так сейчас делаю, пока dpi на тест не приехало или другого решения не придумалось А конфигом сквида не поделитесь? В плане, как редиректить на страницу с уведомлением. Я что-то совсем в нём заблудился.. Всё позабыл, после пятилетнего НЕ_юзания кальмара.. Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 13, 2012 В сквиде url_rewrite_program /usr/bin/squidGuard -c /etc/squidGuard/squidGuard.conf /etc/squidGuard/squidGuard.conf dbhome /etc/squidGuard/db logdir /var/log/squidGuard/ dest fed { domainlist fed/domains urllist fed/urls expressionlist fed/exp } acl { default { pass !fed all redirect 302:http://zapret.provider.name } } Share this post Link to post Share on other sites More sharing options...
bass_v Posted November 13, 2012 Всем привет! Подскажите вопрос. может кто нибудь сталкивался. На rhel 6.3 висит сквид и сквидгард. Сквид работает, внутренние acl отрабатывают. Сквидгард в процессах висит. root 3407 0.0 0.0 72964 2928 ? Ss 16:05 0:00 squid -f /etc/squid/squid.conf squid 3409 0.0 0.2 77020 11624 ? S 16:05 0:00 (squid) -f /etc/squid/squid.conf squid 3411 0.0 0.0 10252 1552 ? S 16:05 0:00 (squidGuard) -c /etc/squid/squidguard.conf squid 3412 0.0 0.0 10248 1528 ? S 16:05 0:00 (squidGuard) -c /etc/squid/squidguard.conf squid 3413 0.0 0.0 10248 1528 ? S 16:05 0:00 (squidGuard) -c /etc/squid/squidguard.conf squid 3414 0.0 0.0 10248 1544 ? S 16:05 0:00 (squidGuard) -c /etc/squid/squidguard.conf squid 3415 0.0 0.0 10248 1544 ? S 16:05 0:00 (squidGuard) -c /etc/squid/squidguard.conf squid 3416 0.0 0.0 20076 1104 ? S 16:05 0:00 (unlinkd) Даю команду echo "http://www.porn.com 10.0.0.1/ - - GET" | squidGuard -d -c /etc/squid/squidguard.conf Выводит вроде верно есть редирект на нужный сайт 2012-11-13 16:36:07 [3512] New setting: dbhome: /var/lib/squidGuard/db 2012-11-13 16:36:07 [3512] New setting: logdir: /var/log/squidGuard 2012-11-13 16:36:07 [3512] init domainlist /var/lib/squidGuard/db/porn/domains 2012-11-13 16:36:07 [3512] loading dbfile /var/lib/squidGuard/db/porn/domains.db 2012-11-13 16:36:07 [3512] init urllist /var/lib/squidGuard/db/porn/urls 2012-11-13 16:36:07 [3512] loading dbfile /var/lib/squidGuard/db/porn/urls.db 2012-11-13 16:36:07 [3512] init domainlist /var/lib/squidGuard/db/socialnet/domains 2012-11-13 16:36:07 [3512] loading dbfile /var/lib/squidGuard/db/socialnet/domains.db 2012-11-13 16:36:07 [3512] init urllist /var/lib/squidGuard/db/socialnet/urls 2012-11-13 16:36:07 [3512] loading dbfile /var/lib/squidGuard/db/socialnet/urls.db 2012-11-13 16:36:07 [3512] squidGuard 1.3 started (1352810167.011) 2012-11-13 16:36:07 [3512] squidGuard ready for requests (1352810167.013) 2012-11-13 16:36:07 [3512] source not found 2012-11-13 16:36:07 [3512] no ACL matching source, using default http://fnkc.ru 10.0.0.1/- - - 2012-11-13 16:36:07 [3512] squidGuard stopped (1352810167.013) А на машине где сквид стоит шлюзом нет редиректа((. Не могу понять в чем дело Может в этом? sudo -u squid squidguard -c /etc/squid/squidguard.conf -d -C all Вывод 2012-11-13 18:09:38 [3769] New setting: dbhome: /var/lib/squidGuard/db 2012-11-13 18:09:38 [3769] New setting: logdir: /var/log/squidGuard 2012-11-13 18:09:38 [3769] init domainlist /var/lib/squidGuard/db/porn/domains 2012-11-13 18:09:38 [3769] Error db_open: Permission denied 2012-11-13 18:09:38 [3769] going into emergency mode Хотя какие только права не выставлял все без толку .Точно так все делал на ALT Linux 6 спт все норм работает(( Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 13, 2012 А конфиги гварда покажите урлы должны быть в нём записаны без http:// Share this post Link to post Share on other sites More sharing options...
bass_v Posted November 13, 2012 (edited) Конфиг минимальный база урлов в формате Berkeley dbhome /var/lib/squidGuard/db logdir /var/log/squidGuard dest porn { domainlist porn/domains urllist porn/urls } dest socialnet { domainlist socialnet/domains urllist socialnet/urls } acl { default { pass !porn !socialnet all redirect http://fnkc.ru } } Сама база до преобразования в *.db в таком виде 0--ass-cinema-newsp.da.ru 0--bondage.dk 0--fightingshaving.da.ru 0--foodwarez.da.ru 0--gratis.dk 0--lesbians.dk 0--oralsex.dk 0--sex.dk 0--teenagesex.dk 0-0-0-1blowjob.da.ru Edited November 13, 2012 by bass_v Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 13, 2012 А если без berkdb попробовать? Share this post Link to post Share on other sites More sharing options...
AlKov Posted November 13, 2012 В сквиде url_rewrite_program /usr/bin/squidGuard -c /etc/squidGuard/squidGuard.conf /etc/squidGuard/squidGuard.conf dbhome /etc/squidGuard/db logdir /var/log/squidGuard/ dest fed { domainlist fed/domains urllist fed/urls expressionlist fed/exp } acl { default { pass !fed all redirect 302:http://zapret.provider.name } } А такие url .../369-%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C-%D0%B2... нормально обрабатывает? У меня не кушает... И такие тоже пропускает - .../175947/read#t12 Share this post Link to post Share on other sites More sharing options...
Wingman Posted November 13, 2012 1. Кушает, если прописать кириллицей в утф 2. уберите #t12 Share this post Link to post Share on other sites More sharing options...
bass_v Posted November 13, 2012 (edited) Без баз списком тоже не проходит. А по поводу длинных урлов вроде патч под сквидгард существует. И какие все таки права должны быть на базы Edited November 13, 2012 by bass_v Share this post Link to post Share on other sites More sharing options...