Пятница, 19.04.2024, 09:55
Dansguardian+ и не только
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум » Веб-интерфейс » Функциональность » Фильтрация русского контента, вес фраз, скорость работы.
Фильтрация русского контента, вес фраз, скорость работы.
pmaДата: Суббота, 21.04.2012, 08:00 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
Здравствуйте!!! Спасите помогите!!

1) в чем суть фильтрации по весам фраз? я для примера фильтровал слово <вино><30>но какой бы вес я не ставил, при любом раскладе, страничка в википедии блокировалась. Принцип фильтрации по весам слов в интерне объясняют не единогласно одинаково, нашел как минимум два разных объяснения. В чем согласно конфига DG, в чем заключается механизм? на моем примере стоит вес 30, это значит что если слово встретилось на странице более 30 раз то будет блокировано? Это не так. Я прописывал слово машина с весом 20 и оно заблокировалось на странице http://www.beluo.ru/instrukczii/367-nastrojka-dansguardian-pod-alt-linux-501-server-shkolnyj, где оно встречается 2 РАЗА! Покопавшись еще нашел что еще значение имеет параметр naughtynesslimit = 50, который я нашел не в главном конфиге а в конфиге второй группы dansguardianf2.conf. Т.е. есть какой то лимит для веса запрещенной фразы? что это вообще за вес, количество того сколько раз запрещенное слово встречается на стр? Еще, при реализации фильтрации русских слов создавал три файла с весом фраз : rusutf8, ruskoi-8 и rus1251, а так же файл скрипта для быстрой перекодировки файлов:
Code
#! /bin/bash
iconv -f UTF-8 -t WINDOWS-1251 rusutf8 > rus1251
iconv -c -f UTF-8 -t KOI8-R    rusutf8 > ruskoi8
service dansguardian restart


но вот если просмотреть кодировку этих файлов то получается что у двух она одинаковая, но я в этом не силен:

Code
user@adm:~/rus$ file -i rusutf8  
rusutf8: text/plain; charset=utf-8

user@adm:~/rus$ file -i ruskoi8  
ruskoi8: text/plain; charset=iso-8859-1

user@adm:~/rus$ file -i rus1251  
rus1251: text/plain; charset=iso-8859-1


И лог файл не могу просмотреть-( Установил плагин encoding для gedit, но ни одна из кодировок не открывает мне все русские слова.

Code
2012.4.21 9:39:46 10.0.0.2 10.0.0.2 http://www.beluo.ru/instrukczii/367-nastrojka-dansguardian-pod-alt-linux-501-server-shkolnyj *DENIED* найдена запрещенная комбинация фраз: (п╪п╟я┬п╦п╫п╟, 20) GET 22843 -145 Banned Phrases 2 403 text/html  teachers -
2012.4.21 9:40:09 10.0.0.2 10.0.0.2 http://rf.revolvermaps.com/c.php?i=5r4i76fsnpt&h=175&t=m2t622  GET 11 0  2 200 text/plain  teachers -


Т.е. машина(хотя почему то именно это слово в другой кодировке и не читается) блокируется не с ошибкой предела весов фраз, а просто как запрещенная комбинация!?!??!

2. В главном конфиге есть параметр reportinglevel = , и если его поставить его значение 1 или 2 то должен появятся как бы отчет о том какое слово блокировалось и т.п. И он связан с параметром accessdeniedaddress = 'http://10.0.0.1/cgi-bin/dansguardian.pl', я подставил адрес своего сервера, не работает-( Хотя понимаю что не так все просто.

3. И последний вопрос: сервер организован на старом ПК, с очень низкими характеристиками, так вот при тестировании фильтрации было замечено, что если гулять по интернету от пользователя с мягкой фильтрацией, скорость просто убивает. понятно что идет сканирование страницы, но долго на столько что просто теряется смысл работы в интернете, это можно исправить установив сервер на ПК с современным процессором и шустрым жестким диском?

Заранее извиняюсь за такой сырбор, но у самого голова кипит, уточню если нужно любые детали, и буду очень благодарен за помощь!
 
VitoДата: Суббота, 21.04.2012, 15:35 | Сообщение # 2
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Ответ на ваши вопросы.
1.
Dansguardian был создан во времена когда страницы в Интернет весили килобайты, конечно с тех пор выходили новые версии.
На сегодняшний день средняя страница весит около 330кбайт.
Соответственно растут базы фраз, так как для фильтрации русских фраз нужно лопатить аж три списка.
Вдобавок специфика двухбайтовых кодировок требутет больших ресурсов.
Отсюда и возросшие требования к серверу.
Думаю для современных условий вполне хватит двухядерного процессора, не обязательно дорогие модели, и соответственно с достаточным количеством ОЗУ (не менее 1Гб, тем более, что цены на современные планки ОЗУ приемлимые)
Вдобавок на сервере можно будет запустить дополнительные сервисы.

2.
Для начала вам надо проверить работает ли сам скрипт, просто в браузере перейдите по адресу http://10.0.0.1/cgi-bin/dansguardian.pl , в ответ должна загрузиться страничка.
Для того, чтобы показывались фразы reportinglevel = 2
Для того, чтобы эта информация писалась в лог logfileformat = 1
И важный момент, либо должен быть доступ через прокси к http://10.0.0.1/cgi-bin/dansguardian.pl и адрес 10.0.0.1 должен быть в exceptionsitelist
либо в настройках прокси в браузере должно быть не использовать прокси для 10.0.0.1

3.
Насчет веса фраз допустим есть такой текст:
Наши авто самые лучие авто в мире. Крупнейшие автозаводы нашего государства постоянно работают над улучшением потребительских характеристик моделей.
и фразы
< aвто><30>
<мир><-10>
Так вот
При опции weightedphrasemode = 0 фразы не работают вообще
При опции weightedphrasemode = 1 считается вес каждой фразы
т.е
Наши авто самые лучие авто в мире. Крупнейшие автозаводы нашего государства постоянно работают над улучшением потребительских характеристик моделей.
т.е. 30+30+30-10=80
при naughtynesslimit = 50
80>50 следовательно страница блокируется.

При опции weightedphrasemode = 2 одинаковые фразы считаются как одна
т.е
Наши авто самые лучие авто в мире. Крупнейшие автозаводы нашего государства постоянно работают над улучшением потребительских характеристик моделей.
т.е. 30=30=30 30-10=20
при naughtynesslimit = 50
20<50 следовательно страница грузится.
Основная проблема в том, как отладить по весу такое огромное количество фраз, чтобы добиться минимальных ложных срабатываний.
iconv -f UTF-8 -t WINDOWS-1251 myfile > win1251

По поводу iconv, просто скачайте сконвертированные файлы на комп и откройте в браузере, выбрав кодировку вручную, если кракозябры, то возможно iconv не поддерживает кодировку, либо она не так записана в команде.

Теперь о том, как просматривать логи на http://dansguardian.ucoz.ru/forum/10-13-1
в последних сообщениях есть мой скрипт для просмотра логов Dansguardian, с описанием.
 
pmaДата: Понедельник, 23.04.2012, 12:57 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
Code
Огромное спасибо за такой подробный ответ! Но возникли еще вопросы, если вас не затруднит поделитесь опытом и знаниями!-)
Пробовал различные комбинации но так и не могу добиться правильной работы фильтра по весам фраз-(
Параметр weightedphrasemode = 1, т.е. суммируется вес каждой фразы, в rusutf8 прописано
[code]< вино>, <10>
<машина>,<1>
<убийство>,<10>

открываю сайт где "машина" встречается 3 или 4 раза и страница блокируется, но не с причиной Предела весов фраз, а по причине "Найдена запрещенная комбинация фраз" . Это лог результата поиска слова машина с весом 1 в яндексе
Code
2012.4.23 15:54:40 10.0.0.2 10.0.0.2 http://yandex.ru/yandsearch?text=%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0&lr=197 *DENIED* найдена запрещенная комбинация фраз: (ЛЮЬХМЮ, 1) GET 137131 -2465 Banned Phrases 2 403 text/html  teachers -
2012.4.23 15:54:40 10.0.0.2 10.0.0.2 http://yandex.ru/favicon.ico  GET 238 0  2 302 -  teachers -
2012.4.23 15:54:43 10.0.0.2 10.0.0.2 http://yandex.ru/favicon.ico  GET 238 0  2 302 -  teachers -

почему именно такая ошибка?[/code]
вопрос снимается нашел ошибку.
но вот это не могу победить:

Code
Для начала вам надо проверить работает ли сам скрипт, просто в браузере перейдите по адресу http://10.0.0.1/cgi-bin/dansguardian.pl , в ответ должна загрузиться страничка.
Для того, чтобы показывались фразы reportinglevel = 2
Для того, чтобы эта информация писалась в лог l  
И важный момент, либо должен быть доступ через прокси к http://10.0.0.1/cgi-bin/dansguardian.pl и адрес 10.0.0.1 должен быть в exceptionsitelist
либо в настройках прокси в браузере должно быть не использовать прокси для 10.0.0.1

http://10.0.0.1/cgi-bin/dansguardian.pl страница не грузится
reportinglevel = 2 и ogfileformat = 1 есть.
выход в интернет без прокси, трафик заворачивается на Dg, что еще посмотреть?


Сообщение отредактировал pma - Вторник, 24.04.2012, 11:08
 
VitoДата: Вторник, 24.04.2012, 13:27 | Сообщение # 4
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Ваш веб-сервер использует https?
Есть ли скрипт dansguardian.pl в каталоге cgi-bin веб-сервера?
 
pmaДата: Вторник, 24.04.2012, 13:33 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
если честно, не могу найти данный каталог на сервере -(
 
VitoДата: Вторник, 24.04.2012, 14:45 | Сообщение # 6
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Может быть
/var/www/cgi-bin
/usr/lib/cgi-bin

Какой дистрибутив используете?
 
pmaДата: Среда, 25.04.2012, 05:44 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
Quote (Vito)
/usr/lib/cgi-bin

спасибо, именно тут его и нашел, теперь в строке http://10.0.0.1/cgi-bin/dansguardian.pl полный путь ? т.е. http://10.0.0.1//usr/lib/cgi-bin/dansguardian.pl ?

Quote (Vito)
Какой дистрибутив используете?

дистрибутив Ubuntu server 10.10
***

прописал tp://10.0.0.1//usr/lib/cgi-bin/dansguardian.pl, путь 10,0,0,1 в exception, но все равно ошибка загрузки страницы. У меня реализовано разделение фильтрации на группы, может в этом свой нюанс? Т.е. есть dansguardian.conf 1 и dansguardian.conf 2, и для каждого папка lists1 и lists2. В конфигах прописаны пути для своей папки lists, фильтрация при такой настройке, моеq дилетантской настройке, работает стабильно, в плане разделения на группы по ip


Сообщение отредактировал pma - Среда, 25.04.2012, 06:19
 
VitoДата: Среда, 25.04.2012, 13:48 | Сообщение # 8
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Все равно путь должен быть http://10.0.0.1/cgi-bin/dansguardian.pl

В этом файле
/etc/apache2/sites-enabled/000-default
в секции
Code

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         <Directory "/usr/lib/cgi-bin">
                 AllowOverride None
                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                 Order allow,deny
                 Allow from all
         </Directory>

хорошо видно, что для скриптов cgi предназначен каталог /usr/lib/cgi-bin/ , а его alias относительно корневой папки веб-сервера /cgi-bin/
т.е. http://10.0.0.1/cgi-bin
Вам стоит проверить права доступа и владельца каталога /usr/lib/cgi-bin/ и dansguardian.pl
Code

-rwxr-xr-x 1 root root  2607 2010-12-10 20:47 dansguardian.pl
-rwxr-xr-x 1 root root 24343 2010-04-13 16:23 dglog.pl
drwxr-xr-x  2 root root         4096 2011-03-16 12:15 cgi-bin

Ну и соответственно обращайтесь к веб-серверу напрямую без прокси.
Можно проверить с помощью wget прямо на сервере
Code

den@Admin:/etc$ wget --spider http://localhost/cgi-bin/dansguardian.pl
Включен режим робота. Проверка существования удалённого файла.
--2012-04-25 13:46:03--  http://localhost/cgi-bin/dansguardian.pl
Преобразование адреса localhost... ::1, 127.0.0.1
Устанавливается соединение с localhost|::1|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: нет информации [text/html]
Удалённый файл существует и может содержать дополнительные
ссылки, но рекурсия отключена -- не загружается.
 
pmaДата: Среда, 25.04.2012, 13:57 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
В очередной раз очень вас благодарю за ответ, но проверить смогу только завтра, но у меня уже возникли новые сложности. Хоть в сети много инфы, и я честно много искал, но ничего подходящего не нашел, так что опять к вам.
Недавно прошла прокурорская проверка. Мы были спокойны, так как для учащихся реализована фильтрация по белым спискам. Но назойливый помощник прокурора нашел таки, как он считает запрещенные материалы, а нашел их на сайтах http://dic.academic.ru и http://ru.wikipedia.org. Теперь встала необходимость заблокировать некоторые разделы этих энциклопедий. Но эти сайты занесены в exceptionsitelist. А эти листы перекрывают действие бан листов, как вычитал в сети. но так же в сети упоминается способ как это можно обойти а вот как не сказано. В bannedsitlist в самом начале конфига прописано **, т.е. банить все, есть доступ только к ресурсам из exceptionsitelist. Так вот возможно ли осуществить фильтрацию по фразам например для exceptionsitelist? или хотя бы, закрыть некоторые подразделы некоторых сайтов из exceptionsitelist?
 
VitoДата: Среда, 25.04.2012, 14:54 | Сообщение # 10
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Как говорится было б до чего ...
На будущее желательно снимать процедуру проверки на видео и/или записывать на диктофон, придирок сразу меньше становится.
Второе на сайте минюста есть федеральный список материалов, данный раздел википедии в нем есть?
Блокировку таких разделов можно осуществлять разными способами -
Самый простой все адреса поместить в файл в виде списка, и написать простое запрещающее правило для Squid, в котором подключить список.
Можете пример того, что нашел прокурор в личных сообщениях написать?

Я сегодня, когда просматривал статистику, увидел срабатывание по фразе <seхshop>.
Зашел на сайт, впервое впечатление вполне нормальное, сайт для детей их родителей, нет рекламы, текст тоже вроде ничего
Зато в исходном коде
скрытый блок со ссылкой на магазины для взрослых и прочей ........
Это видать черная поисковая оптимизация такая или владельцы сайта и не подозревают об этом, тогда эта запись на совести, того кто создавал этот сайт.
Чужие белые списки практически не использую, и практически все фильтруется по фразам.
 
pmaДата: Среда, 02.05.2012, 08:27 | Сообщение # 11
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
Quote (Vito)
Как говорится было б до чего ...
На будущее желательно снимать процедуру проверки на видео и/или записывать на диктофон, придирок сразу меньше становится.

а как это помогает? с правовой точки зрения?

Quote (Vito)
Второе на сайте минюста есть федеральный список материалов, данный раздел википедии в нем есть?

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

Quote (Vito)
Чужие белые списки практически не использую, и практически все фильтруется по фразам.

это идеал к которому я стремлюсь-) но пока на этапе поиска информации-) Вы часто обновляете списки с русскими фразами?

Добавлено (29.04.2012, 06:01)
---------------------------------------------
и опять к вам за помощью: в схеме сервера: squid + DG, получается что squid обслуживает как бы одного клиента, DG? т.е. если прописать правила для определённого диапазона адресов оно работать не будет, так все запросы идут од одного клиента - DG?

и вопрос про dns: для усиления фильтрации решил так же использовать dns фильтры netpolice. Но вот задумался, как указать данные dns адреса только для определенного диапазона адресов? В противном случае под эти dns попадаю и я вся администрация, если я пропишу их просто на сервере. Я бы даже вручную прописал их на каждой машине, но что тогда прописывать на сервер в /etc/resolf.conf? И если прописать на каждом клиенте, то сервер будет использовать свои dns?

Добавлено (02.05.2012, 08:27)
---------------------------------------------
Quote (Vito)
Самый простой все адреса поместить в файл в виде списка, и написать простое запрещающее правило для Squid, в котором подключить список.
squid практически не ковырял, не могли ,бы помочь cry


Сообщение отредактировал pma - Среда, 02.05.2012, 08:37
 
VitoДата: Среда, 02.05.2012, 15:39 | Сообщение # 12
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Quote (pma)
а как это помогает? с правовой точки зрения?

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

Quote (pma)
это идеал к которому я стремлюсь-) но пока на этапе поиска информации-) Вы часто обновляете списки с русскими фразами?

Почти каждую неделю. в основном, минусую вес, так как изначально списки и их вес составлялись не по методикам, а по интуиции... и многие веса завышены,
с последним патчем для веб-интерфейса исчезла головная боль с неправильным синтаксисом фраз, из-за чего было много ложных срабатываний, только у себя в списках я нашел около 30 фраз с неправильной записью <>.
Написал интересный анализатор сайтов, который исследует частоту использования слов на сайтах, сейчас благодаря информации анализатора, полученной со 100 сайтов для взрослых, методика составления новых списков фраз почти завершена, и по ней будут составлены новые списки фраз, которые сведут к минимуму ложные срабатывания и в тоже время обеспечат высокий уровень фильтрации.
 
VitoДата: Среда, 02.05.2012, 15:40 | Сообщение # 13
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Quote (pma)
и опять к вам за помощью: в схеме сервера: squid + DG, получается что squid обслуживает как бы одного клиента, DG? т.е. если прописать правила для определённого диапазона адресов оно работать не будет, так все запросы идут од одного клиента - DG?

Далеко не так, у меня пересобран и SQUID и Dansguardian, в результате чего Dansguardian отдает истинные адреса SQUID, таким образом в SQUID работает все и авторизация по IP, и delaypools, правила для диапазонов работают.
посмотрите здесь http://dansguardian.ucoz.ru/faq/0-1#2

Quote (pma)

и вопрос про dns: для усиления фильтрации решил так же использовать dns фильтры netpolice. Но вот задумался, как указать данные dns адреса только для определенного диапазона адресов? В противном случае под эти dns попадаю и я вся администрация, если я пропишу их просто на сервере. Я бы даже вручную прописал их на каждой машине, но что тогда прописывать на сервер в /etc/resolf.conf? И если прописать на каждом клиенте, то сервер будет использовать свои dns?

Тут я могу сказать только: не парьтесь.
Ничего такого, что нужно вашей администрации для работы эти DNS не перекроют, dns можно прописать прямо в Squid, смотрите раздел Squid на сайте.
А если и перекроют пару сайтов, то так и нужно значит, особенно если речь о школе. C DNS просто играть не получится.

Quote (pma)
squid практически не ковырял, не могли ,бы помочь


Code
acl blacklist dstdomain "/etc/squid/blacklist"
http_access deny blacklist
 
pmaДата: Четверг, 03.05.2012, 12:31 | Сообщение # 14
Рядовой
Группа: Пользователи
Сообщений: 18
Репутация: 0
Статус: Offline
Quote (Vito)
acl blacklist dstdomain "/etc/squid/blacklist"
http_access deny blacklist

это правило работает только если полностью записан адрес ресурса, например mail.ru, а как закрыть именно вот эту статью http://dic.academic.ru/dic.nsf/enc_colier/6386/%D0%92%D0%98%D0%9D%D0%9E ?

еще решил попробовать ваш анализатор логов, но не смог его запустить, что нужно сделать и каков принцип работы этого скрипта, запустил его в консоли и и получил вывод содержание этого файла-(
 
VitoДата: Четверг, 03.05.2012, 13:58 | Сообщение # 15
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
вместо dstdomain используйте url_regex
А адреса записываются таким образом
Code
^http://mail\.ru/news

Т.е поддерживаются регулярные выражения, что позволяет упростить выражения и записывать несколько в одно.

О редиректоре.
Perl установлен?
Можно проверить, например так
Code
which perl

в ответ должно вернуть /usr/bin/perl

Проверить наличие прав запуска (x) у скрипта или запустить так
Code
/usr/bin/perl  /полный путь к скрипту/redir.pl


Возможно придется доставить пакеты
Code
apt-get install libtext-iconv-perl libencode-detect-perl


Насчет принципа работы, это обычный редиректор, он получает от Squid строку с данными, анализирует данные и либо возращает ее Squid в неизменном виде, либо меняет в ней данные и возвращает Squid.
Думаю вдаваться в подробности анализа не стоит, поскольку сам алгоритм и его реализация видна в самом тексте редиректора.

В случае обнаружения запрещенной фразы в поисковом запросе, сработает один из вариантов, в зависимости от настройки.
1. Пользователя просто перенаправит на страницу, на которой например вы напишете, ай как нехорошо в школе ерундой заниматься или просто на сайт школы.
2. Пользователь получит сообщение от поисковика что ничего не найдено, так как запрос подменяется на ---------
3. Пользователь получит результаты поиска на запросы, которые вы определите сами, т.е вместо тюнинга ученик получит ответ на запрос Закон Ома для участка цепи или на другой запрос выбранный случайным образом из списка.
 
Форум » Веб-интерфейс » Функциональность » Фильтрация русского контента, вес фраз, скорость работы.
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Сайт управляется системой uCoz