В данной статье расскажу о том, как можно это сделать с помощью связки squid+rejik. Вообще-то, это можно сделать и с помощью самого squid’a, но мне показалось, что rejik это делает эффективнее. Предполагается, что squid у вас настроен и работает, в противном случае – настройку squid’a можно почерпнуть из статей в предыдущих номерах журнала. И так, приступим.
1) Установка.
Обновляем порты и ставим squid. Рекомендую ставить версию 3.0:
#cd /usr/ports/www/squid30 && make install clean
После установки открываем файл squid.conf и добавляем такую строчку
redirect_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf
2) Установка и настройка 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
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_]|$)
Сам список можно изменять по своему усмотрению.
3) Настройка 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%u0448%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%u0438, %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.
Опубликовано с разрешения журнала root.ua
2 коментарі “Запрещаем скачку файлов по расширению.”
Все хорошо, только не “разширение”, но “расширение”.
Исправил.