Запрещаем скачку файлов по раcширению
03.04.10 /
В данной статье расскажу о том, как можно это сделать с помощью связки squid+rejik. Вообще-то, это можно сделать и с помощью самого squid'a, но мне показалось, что rejik это делает эффективнее. Предполагается, что squid у вас настроен и работает, в противном случае - настройку squid'a можно почерпнуть из статей на нашем портале. И так, приступим.
Установка
Обновляем порты и ставим squid. Рекомендую ставить версию 3.0:
cd /usr/ports/www/squid30 && make install clean
После установки открываем файл squid.conf и добавляем такую строчку
redirect_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf
Установка и настройка rejik
Идём в порты и ставим:
cd /usr/ports/www/rejik && make install clean
Выбираем такие опции:
[X] BAN With banlists
[X] WWW With error pages
После установки появится идём в каталог /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:
redirect_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf
После этого перечитываем конфиг squid'a:
#squid -k reconfigure
и пробуем что-то запрещённое скачать. В логах rejika (не squid'a, а именно rejik'a, в redirector.log) должна появится строчка:
2010-03-22 12:08:40 MP3: 10.10.10.150 - http:// sitecheck2.opera.com/?host=www.mp3.ru&hdn=SFAcG1SS/Ycon4HnPdeGiw== (pcre rule#: 2)
2010-03-22 12:08:40 MP3: 10.10.10.150 - http:// www.mp3.ru/favicon.ico (pcre rule#: 2)
2010-03-22 12:09:15 MP3: 10.10.10.150 - http: //www.mp3.ru/ (pcre rule#: 2)
Значит всё работает. Если нет, тогда смотреть логи на предмет ошибок.
Иногда, когда Rejik не может пропарсить URL, он об этом пишет в файл redirector.err и разрешает скачивать контент:
2010-03-05 09:29:30 [1858] REDIRECTOR: WARNING: Can't parse url: http:// u11507.93.spylog.com/cnt?cid=1150793&p=0&c=1&fr=0&fl=9.0&px=16&sl=1.8&wh=1024x768&j=Y&
t=-120&pg=http://www.margosha.su/photos-lv.php&r=http://www.margosha.su/news-victoria-lukina.php&title=%u0412%u0438%u043A%u0442%u043E%u0440%u0438%u044F %u041B
%u0443%u043A%u0438%u043D%u0430(%u041B%u044E%u0441%u044F) :: %u0424%u043E%u0442%u043E%u0433%u0440%u0430%u0444%u0438%u0438 :: %u041C%u0430%u0440%u0433%u043E%u04
48%u0430 - %u0444%u0430%u043D %u043A%u043B%u0443%u0431 %u043F%u043E%u043A%u043B%u043E%u043D%u043D%u0438%u043A%u043E%u0432 %u0442%u0435%u043B%u0435%u0441%u0435
%u0440%u0438%u0430%u043B%u0430 :: %u041E%u043F%u0438%u0441%u0430%u043D%u0438%u044F %u0441%u0435%u0440%u0438%u0439, %u0444%u043E%u0442%u043E%u0433%u0440%u0430%
u0444%u0438%u0438, %u0438%u043D%u0442%u0435%u0432%u044C%u044E %u0430%u043A%u0442%u0435%u0440%u043E%u0432, %u0431%u0438%u043E%u0433%u0440%u0430%u0444%u0438%u04
38, %u043C%u0443%u0437%u044B%u043A%u0430 %u0438%u0437 %u0442%u0435%u043B%u0435%u0441%u0435%u0440%u0438%u0430%u043B%u0430 %u041C%u0430%u0440%u0433%u043E%u0448%
u0430&rn=0.26691776656350064. Pass.
Автор: skeletor
По материалам:
root.ua
Добавить комментарий