Нa FreeBSD поднял Squid настроил через url_regex [-i] типы файлов которые запрещается скачивать... Но как я понимаю Сквид просматривает эти условия через URl.... а есть сайты которые "генерируют" ссылки в которых эти условия не срабатывают...
Но даже если этот линк проходит обычно browser предлагает сохранить определенный файл (допустим mp3) и в имене файла существует расширение... ВОПРОС можно ли как нить научить Squid реагировать на это "действие" и если там есть присутствует расширение (допустим mp3) запрещать скачивать этот файлик, и можно ли запретить скачивать любые типы файлов(прочитал кучу инфы про Сквид но не могу найти может не туда смотрю :( )???
browser [-i] regexp - может эта команда мне в помощь???
Заранее спасибо
>[оверквотинг удален]
>а есть сайты которые "генерируют" ссылки в которых эти условия не
>срабатывают...
>Но даже если этот линк проходит обычно browser предлагает сохранить определенный файл
>(допустим mp3) и в имене файла существует расширение... ВОПРОС можно ли
>как нить научить Squid реагировать на это "действие" и если там
>есть присутствует расширение (допустим mp3) запрещать скачивать этот файлик, и можно
>ли запретить скачивать любые типы файлов(прочитал кучу инфы про Сквид но
>не могу найти может не туда смотрю :( )???
>browser [-i] regexp - может эта команда мне в помощь???
>Заранее спасибоКак сделано у меня:
создаешь файл block_extensions.acl внутри которого такие строки
\.exe$
\.cab$
\.dll$
\.mp3$
\.vqf$
\.mpg$
\.mpeg$
и т.д. Тут все расширения, которые тебе нужно блокировать. По одному на каждую строку.
Описываешь:
acl block_extensions url_regex -i "C:/squid/etc/block_extensions.acl"
Пропиши свои пути, а то у меня под виндой пути другие.Теперь запрещаешь так
http_access deny block_extensions BYPROTO local_net_userа local_net_user это :
acl local_net_user src "C:/squid/etc/permit_ip_user.acl" - список ИП юзеров для которых будет действовать правило в таком виде, например
172.16.7.31/255.255.255.255 - по одной записи на строку.
>[оверквотинг удален]
>а есть сайты которые "генерируют" ссылки в которых эти условия не
>срабатывают...
>Но даже если этот линк проходит обычно browser предлагает сохранить определенный файл
>(допустим mp3) и в имене файла существует расширение... ВОПРОС можно ли
>как нить научить Squid реагировать на это "действие" и если там
>есть присутствует расширение (допустим mp3) запрещать скачивать этот файлик, и можно
>ли запретить скачивать любые типы файлов(прочитал кучу инфы про Сквид но
>не могу найти может не туда смотрю :( )???
>browser [-i] regexp - может эта команда мне в помощь???
>Заранее спасибоНе срабатывает по тому, что многие ссылки обрабатываются сначала скриптами, и разрешение файла там никак не фигурирует...
НО, сервер в своем ответе возвращает Content-Type... вот тут то и можно попробовать порезать все лишнее...acl streams rep_header Content-Type -i ^video\/flv$
acl streams rep_header Content-Type -i ^audio\/mpeg$
acl streams rep_header Content-Type -i ^video\/x-flv$
>
>Не срабатывает по тому, что многие ссылки обрабатываются сначала скриптами, и разрешение
>файла там никак не фигурирует...
>НО, сервер в своем ответе возвращает Content-Type... вот тут то и можно
>попробовать порезать все лишнее...
>
>acl streams rep_header Content-Type -i ^video\/flv$
>acl streams rep_header Content-Type -i ^audio\/mpeg$
>acl streams rep_header Content-Type -i ^video\/x-flv$А можно пример такого сайта, который при закачке видеофайла прячет его расширение. Интересно как пользователь потом просматривает такие файлы? Он что каждый раз меняет расширения? Проясните мне плиз. Обычно динамически генерируется сам URL, а имя файла и его расширение не меняется. НО может я ошибаюсь....
>[оверквотинг удален]
>>Заранее спасибо
>
>Не срабатывает по тому, что многие ссылки обрабатываются сначала скриптами, и разрешение
>файла там никак не фигурирует...
>НО, сервер в своем ответе возвращает Content-Type... вот тут то и можно
>попробовать порезать все лишнее...
>
>acl streams rep_header Content-Type -i ^video\/flv$
>acl streams rep_header Content-Type -i ^audio\/mpeg$
>acl streams rep_header Content-Type -i ^video\/x-flv$не срабатывет, ролики с youtube и intv все равно играют
пробовал варианты
acl streams rep_header Content-Type -i ^video\/flv$
acl streams rep_header Content-Type -i ^audio\/mpeg$
acl streams rep_header Content-Type -i ^video\/x-flv$acl streaming_media rep_mime_type ^application/vnd.ms.wms-hdr.asfv1
acl streaming_media rep_mime_type ^application/x-mms-framed
acl streaming_media rep_mime_type ^video/x-ms-asf
acl streaming_media rep_mime_type ^audio/mpeg
acl streaming_media rep_mime_type ^audio/x-scpls
acl streaming_media rep_mime_type ^video/x-flv
acl streaming_media rep_mime_type ^application/x-shockwave-flash
acl streaming_media rep_mime_type ^application/x-javascriptacl streams1 rep_header Content-Type -i video/flv
acl streams1 rep_header Content-Type -i audio/mpeg
acl streams1 rep_header Content-Type -i video/x-flvacl streams rep_header Content-Type -i ^video/flv$
acl streams rep_header Content-Type -i ^audio/mpeg$
acl streams rep_header Content-Type -i ^video/x-flv$
acl streams rep_header Content-Type -i ^application/x-shockwave-flash$
>[оверквотинг удален]
>acl streaming_media rep_mime_type ^application/x-javascript
>
>acl streams1 rep_header Content-Type -i video/flv
>acl streams1 rep_header Content-Type -i audio/mpeg
>acl streams1 rep_header Content-Type -i video/x-flv
>
>acl streams rep_header Content-Type -i ^video/flv$
>acl streams rep_header Content-Type -i ^audio/mpeg$
>acl streams rep_header Content-Type -i ^video/x-flv$
>acl streams rep_header Content-Type -i ^application/x-shockwave-flash$Я рубал потоковое видео через
acl cont-type-vid rep_mime_type Content-Type video
http_reply_access deny cont-type-vidПри попытке просмотреть видео онлайн вылазит ошибк а что-то типа данное видео сейчас уже недоступно:)
Ещё более изящное решение с ру-тубом:acl rutube dstdomain .rutube.ru .vk.com .vkontakte.ru
acl GET method GET
acl rutube_url urlpath_regex -i /player.swfhttp_access deny GET rutube rutube_url
> не срабатывет, ролики с youtube и intv все равно играютВот верное средство, т.к. ру- и ю-тубы стримят в формате mp4
acl streams rep_header Content-Type -i mp?$
acl streams rep_header Content-Type -i ^video/x-mp4$
acl streams rep_header Content-Type -i ^video/mp4$Т.о. флэш остаётся, ролик как бы запускается, но режется на стадии буфферинга видео. ха-ха ;777 И пользователь видит плеер с надписью "Произошла ошибка. Повторите попытку позже". Плюс такого варианта - не поголовное обрезания shockwave/java, etc.
>[оверквотинг удален]
> acl streaming_media rep_mime_type ^video/x-flv
> acl streaming_media rep_mime_type ^application/x-shockwave-flash
> acl streaming_media rep_mime_type ^application/x-javascript
> acl streams1 rep_header Content-Type -i video/flv
> acl streams1 rep_header Content-Type -i audio/mpeg
> acl streams1 rep_header Content-Type -i video/x-flv
> acl streams rep_header Content-Type -i ^video/flv$
> acl streams rep_header Content-Type -i ^audio/mpeg$
> acl streams rep_header Content-Type -i ^video/x-flv$
> acl streams rep_header Content-Type -i ^application/x-shockwave-flash$
C рутубом вышла загвоздка, т.к. там стриминг видео идёт из java-script, плеером подцепляется файл *.iflvhttp://rutube.ru/tracks/4567054.html
piece of code:
<script type="text/javascript">
var rt_referer = escape(location.href); playMovie('pid', 'http://rutube.ru/player.swf?buffer_first=1.0&file=http%...' + rt_referer);
</script>
Так что он свободно пролетает мимо rep_mime_type, rep_header, url_regex. Кто знает, как заставить Squid+SquidGuard выцеплять именно видео, а не банить сайт целиком?
acl rutube dstdomain .rutube.ruacl rutube_streams rep_header Content-Type -i ^application/x-shockwave-flash
acl rutube_streams rep_header Content-Type -i application/x-shockwave-flashhttp_reply_access deny rutube rutube_streams
Сюда же можно добавить ю-туб. Но выше предложенное решение для ю-туб как-то более элегантно... -- пользователь загружает...загружает...и... ой ошибка. повторите попытку позже - вроде бы к сисадмину никаких претензий - вроде бы сам сервис глючит... ;7
В этом решении срезается запрос http://rutube.ru/player.swf
Отлично было бы срезать вместо плеера сам .iflv файл...