Поиск по этому блогу

Powered By Blogger

воскресенье, 29 августа 2010 г.

Бесплатный контент-фильтр в Linux Debian

Использование интернета открывает доступ огромному количества информации. К сожалению, эта информация не всегда несет пользу. Для фильтрации информации применяются всевозможные контентфильтры. В большинстве своем они платные или требуют участия в проектах.
В этой статье я хочу показать пример настройки бесплатной системы фильтрации, основанной на анализе содержимого. Кроме того, будет настроена система антивирусной проверки всего HTTP трафика антивирусом ClamAv и настроена система фильтрации рекламы и банеров AdZapper.

1. Если у Вас не стоит Squid (кальмар), то устанавливаем его
#apt-get install squid3
Если Squid у Вас все же стоял, то Вам это скажут
2. Устанавливаем DansGuardin - контентфильтр, Adzapper - фильтр рекламы и банеров, Havp - демон, для работы с антивирусом ClamAv
#apt-get install dansguardian adzapper havp
На вопрос об установке дополнительных пакетов отвечаем: Y

3. Дальнейшая настройка сводится к правке конфигурационных файлов. Лично у меня все эксперименты с различными конфигурациями заняли около месяца. При этом было перечитано огромное количество русско- и англоязычных материалов. Результатом являются нижеприведенные конфиги. Их можно просто скопировать и ими заменить ваши.

Конфигурация кальмара.
/etc/squid3/squid.conf
Мой пример конфигурации сквида и краткое руководство можно найти по адресу http://sogiuu.oskoluno.ru/area/forum/viewtopic.php?f=4&t=15
Добавить в самое начало конфигурации перед строкой http_port 192.168.0.1:3128 transparent следующее:

# podkluchaem adzapper 
redirect_program /usr/bin/adzapper.wrapper
# podkluchaem havp
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP

Сохраняемся.

Конфигурируем DansGuardian
/etc/dansguardian/dansguardian.conf
Делаем на всякий случай бэкап. Настроек много, но все настройки прокомментированы на понятном английском. Остановлюсь на главном:
filterip = 192.168.0.1 - адрес на котором будет работать фильтр
filterport = 3129 - порт на котором будет работать фильтр
proxyip = 192.168.0.1 - адрес, по которому фильтру искать прокси-сервер (наш Squid).
proxyport = 3128 - порт, который слушает прокси-сервер по выше указанному адресу (где фильтру его искать).



# DansGuardian config file for version 2.10.1.1
reportinglevel = 3
languagedir = '/etc/dansguardian/languages'
language to use from languagedir.
language = 'russian-koi8-r'
loglevel = 2
logexceptionhits = 2
logfileformat = 1
filterip = 192.168.0.1
filterport = 3129
proxyip = 192.168.0.1
proxyport = 3128
accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl'
nonstandarddelimiter = on
usecustombannedimage = on
custombannedimagefile = '/usr/share/dansguardian/transparent1x1.gif'
filtergroups = 1
filtergroupslist = '/etc/dansguardian/lists/filtergroupslist'
bannediplist = '/etc/dansguardian/lists/bannediplist'
exceptioniplist = '/etc/dansguardian/lists/exceptioniplist'
showweightedfound = on
weightedphrasemode = 2
urlcachenumber = 1000
urlcacheage = 900
scancleancache = on
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
createlistcachefiles = on
maxuploadsize = -1
maxcontentfiltersize = 256
maxcontentramcachescansize = 2000
maxcontentfilecachescansize = 20000
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 20
trickledelay = 10
downloadmanager = '/etc/dansguardian/downloadmanagers/fancy.conf'
downloadmanager = '/etc/dansguardian/downloadmanagers/default.conf'
contentscanner = '/etc/dansguardian/contentscanners/clamav.conf'
contentscannertimeout = 60
contentscanexceptions = off
recheckreplacedurls = off
forwardedfor = off
usexforwardedfor = off
logconnectionhandlingerrors = on
logchildprocesshandling = off
maxchildren = 120
minchildren = 8
minsparechildren = 4
preforkchildren = 6
maxsparechildren = 32
maxagechildren = 500
maxips = 0
ipcfilename = '/tmp/.dguardianipc'
urlipcfilename = '/tmp/.dguardianurlipc'
ipipcfilename = '/tmp/.dguardianipipc'
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
softrestart = off
mailer = '/usr/sbin/sendmail -t'

После сохранения настроек, делаем рестарт сервисов, они же демоны (в виндовс это службы)
# /etc/init.d/havp restart
# /etc/init.d/squid3 restart
# /etc/init.d/dansguardian restart

Получаем такую схему работы контентфильтра:

 ИНТЕРНЕТ -> ПРОКСИ (совместно с антивирусом и банерорезкой) -> Контентфильтр -> ПОЛЬЗОВАТЕЛЬ

Схему можно несколько перестроить поменяв местами звенья между Интернетом и пользователем. Но, экспериментируйте сами . 
В нашей схеме в кэше прокси не хранятся банеры, не хранятся ВИРУСЫ.

В настройке браузера пользователя указываем:
для фильтрации контента адрес 192.168.0.1 порт 3129
для подключения без фильтрации контента адрес 192.168.0.1 порт 3129

Возможен вариант, когда все компьютеры в сети уже настроены на 192.168.0.1 порт 3128, а ходить перенастраивать лень . Тогда....

в настройке сквида меняем порт
http_port 192.168.0.1:3128 transparent 
на
http_port 192.168.0.1:3129 transparent

в настройке DansGuardian также меняем порты
filterport = 3128
proxyport = 3129

И настройки прокси в браузере менять не надо, а доступ в интернет без фильтрации по адресу 192.168.0.1 порт 3129.

Желаю удачи. Пишите отзывы, не ленитесь .

Комментариев нет:

Отправить комментарий