Май 27 2010

Установка и настройка SquidGuard.

SquidGuard — редиректор предназначенный для фильтрации посещаемых сайтов. Этот редиректор достаточно гибкий в своих настройках, позволяет создавать отдельные группы пользователей, с отдельными списками доступа, временными интервалами действия правил. Позволяет фильтровать доступ к сайтам по урлам, включая фильтрацию по регекспам.
Установим SquidGuard из портов:

cd /usr/ports/www/squidguard/
make install clean


В начале небольшой диалог настройки:

┌────────────────────────────────────────────────────────────────────┐
│                   Options for squidGuard 1.4_2                     │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │            [X] SAMPLE_BL  Install sample blacklists            │ │
│ │            [ ] LDAP       Enable LDAP support                  │ │
│ │                                                                │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

В опциях мы указали устанавливать стандартный черный список сайтов.
После того, как сам SquidGuard установлен, перейдем к настройке.
Конфигурационный файл SquidGuard лежит вместе с конфигами Squidа в /usr.local/etc/squid/. По умолчанию там расположен файл-пример squidGuard.conf.sample, копируем его в squidGuard.conf и начнем править:

cp squidGuard.conf.sample squidGuard.conf

Мой конфиг выглядит так:

dbhome /var/db/squidGuard
logdir /var/log
 
#Описываем адреса нашей локалки, по группам
source limited {
ip 192.168.0.10,192.168.0.15
}
 
soutce chif {
ip 192.168.0.17
}
 
source full {
ip 192.168.0.43
}
#Стандартные черные списки сайтов
dest hacking {
domainlist hacking/domains
urllist hacking/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
expressionlist violence/expressions
}
dest proxy {
domainlist proxy/domains
urllist proxy/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
}
dest mail {
domainlist mail/domains
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
dest gambling {
domainlist gambling/domains
urllist gambling/urls
}
dest drugs {
domainlist drugs/domains
urllist drugs/urls
}
dest audio-video {
domainlist audio-video/domains
urllist audio-video/urls
}
dest aggressive {
domainlist aggressive/domains
urllist aggressive/urls
}
dest ads {
domainlist ads/domains
urllist ads/urls
}
#Наш персональный утвержденный черный список
dest community {
domainlist community/domains
urllist community/urls
}
#Запрещаем качать музыку, архивы, видео с помощью редиректа на специально подготовленные файлы.
rewrite mp3 {
s@.*\.mp3$@http://www.hilik.org.ua/fake.mp3@r
}
 
rewrite rar {
s@.*\.rar$@http://www.hilik.org.ua/fake.rar@r
}
 
rewrite zip {
s@.*\.zip$@http://www.hilik.org.ua/fake.zip@r
}
 
rewrite avi {
s@.*\.avi$@http://www.hilik.org.ua/fake.avi@r
}
#Вот тут, наконец то, раздаем права. Группе limited запрещаем вообще все
acl {
limited {
pass     !hacking !violence !proxy !porn !mail !warez !gambling !drugs !audio-video !aggressive !ads !in-addr !community any
rewrite mp3 rar zip avi
#на 192.168.0.15 ставим страничку с приказом о запретах и номером телефона ITотдела - это для несогласных
redirect http://192.168.0.15
 
 
}
#Шефу не запрещаем только то, что он запретил своим приказом. Все стандартные запреты ставим
chif {
pass !hacking !violence !proxy !porn !mail !warez !gambling !drugs !audio-video !aggressive !ads !in-addr any
redirect http://192.168.0.15
}
#Админам полный доступ
full {
pass any
}
#Все кто не в группах доступ закрыт вообще
default {
pass     none
redirect http://192.168.0.15
}
}

в /var/db/squidGuard создаем каталог community, в нем я планировал размещать адреса социальных сетей, но по факту туда добавляется все, что не нравится руководству.

mkdir /var/db/squidGuard/community/

И в нем создать файлы urls и domains.
В них можно внести локальные запреты.
Теперь пересоздаем базу squidGuard:

squidGuard -C all

Теперь остается прописать squidGuard в настройках Squid и перезапустить:

redirect_program      /usr/local/bin/squidGuard
redirect_children 5

И перезапускаем:

/usr/local/etc/rc.d/squid restart

На этом в общем то и все.


Украинская Баннерная Сеть