В данной статье расскажу о том, как можно это сделать с помощью связки squid+rejik. Вообще-то, это можно сделать и с помощью самого squid'a, но мне показалось, что rejik это делает эффективнее. Предполагается, что squid у вас настроен и работает, в противном случае - настройку squid'a можно почерпнуть из статей на нашем портале. И так, приступим.
Установка
Обновляем порты и ставим squid. Рекомендую ставить версию 3.0:
cd /usr/ports/www/squid30 && make install clean
После установки открываем файл squid.conf и добавляем такую строчку
После установки появится идём в каталог /usr/local/rejik открываем конфигурационный файл redirector.conf и приводим его к такому виду:
error_log /var/log/squid/rejik/redirector.err
change_log /var/log/squid/rejik/redirector.log
make-cache /usr/local/rejik/make-cache
work_ip 10.10.10.0/255.255.255.0
#bag guys net 10.10.10.0/24
<BG>
ban_dir /usr/local/rejik/banlists/bg
url http:// 127.0.0.1/access_denied.html
Первые 2 строчки определяют местоположение лог-файлов. У вас оно может быть другим. Очень важно, что бы эти файлы принадлежали squid:squid.
Параметр work_ip указывает к кому применять данные ограничения.
После этого собственно идёт описание ограничений: в угловых скобках имя правила, далее путь к папке, где находится файл prce (файл с регулярными выражениями) с ограничениями ну и наконец страничка с ошибкой.
А вот то, что мы поместили в файл /usr/local/rejik/banlists/bg/prce :
\.Z([\W_]|$)
\.ace([\W_]|$)
\.arj([\W_]|$)
\.au([\W_]|$)
\.avi([\W_]|$)
\.bz2([\W_]|$)
\.exe([\W_]|$)
\.gz([\W_]|$)
\.kar([\W_]|$)
\.mov([\W_]|$)
\.mp2([\W_]|$)
\.mp3([\W_]|$)
\.mid([\W_]|$)
\.midi([\W_]|$)
\.mpe([\W_]|$)
\.mpeg([\W_]|$)
\.mpg([\W_]|$)
\.mpga([\W_]|$)
\.ogg([\W_]|$)
\.qt([\W_]|$)
\.ra([\W_]|$)
\.ram([\W_]|$)
\.rar([\W_]|$)
\.snd([\W_]|$)
\.tar([\W_]|$)
\.tgz([\W_]|$)
\.vob([\W_]|$)
\.wav([\W_]|$)
\.zip([\W_]|$)
Сам список можно изменять по своему усмотрению.
Настройка squid.
Для нормальной работы требуется добавить следующую строчку в squid.conf: