Запрещаем скачку файлов по расширению.

В данной статье расскажу о том, как можно это сделать с помощью связки 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 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *