среда, 10 октября 2007 г.

Блокирование баннеров в Squid 2.6

Squid при блокировании нежелательного контента во многих случаях может обходиться без разношерстных редиректоров. В частности, Squid может блокировать баннеры и вместо отображения стандартного текстового предупреждения перенаправить запрос пользователя на веб-сервер с пустым gif-рисунком.

Пример куска конфига прокси-сервера Squid:
Пишем сюда (в файл /usr/local/etc/squid/url.whitelist, по одному домену на строку) доменные имена тех сайтов которые мы не хотим блокировать.
Сюда же следует добавить адрес веб-сервера где размещается контент, куда перенаправляется блокированный запрос пользователя.

acl WHITELIST dstdomain "/usr/local/etc/squid/url.whitelist"
Блокирование баннеров по доменному имени. Строка вроде example.com запретит только этот домен, оставив доступными домены www.example.com или big.friend.example.com. Если вместо example.com написать .example.com будут блокированы сам домен и все его поддомены.
acl BANNER dstdomain "/usr/local/etc/squid/url.banner"
Блокирование баннеров с помощью регулярных выражений regex (не pcre).
acl BANNER_REGEX url_regex "/usr/local/etc/squid/url.banner-regex"
Блокируем порно по тому же принципу как и баннеры
acl PORNO dstdomain "/usr/local/etc/squid/url.porno"
acl PORNO_REGEX url_regex "/usr/local/etc/squid/url.porno-regex"
Блокируем фреймы
acl BANNER_IFRAME dstdomain "/usr/local/etc/squid/url.banner.iframe"
acl BANNER_IFRAME_REGEX url_regex "/usr/local/etc/squid/url.banner.iframe-regex"
Применение запретов. Приведенные ниже правила http_access deny размещаются ДО разрешающих правил http_access allow.
http_access deny !WHITELIST BANNER
http_access deny !WHITELIST BANNER_REGEX
http_access deny !WHITELIST BANNER_IFRAME
http_access deny !WHITELIST BANNER_IFRAME_REGEX
http_access deny !WHITELIST PORNO
http_access deny !WHITELIST PORNO_REGEX
Блокируем соединения CONNECT, на всякий случай.
http_access deny CONNECT !WHITELIST BANNER
http_access deny CONNECT !WHITELIST BANNER_REGEX
http_access deny CONNECT !WHITELIST BANNER_IFRAME
http_access deny CONNECT !WHITELIST BANNER_IFRAME_REGEX
http_access deny CONNECT !WHITELIST PORNO
http_access deny CONNECT !WHITELIST PORNO_REGEX
И сами предупреждения, etc.
deny_info http://192.168.0.9/null.gif BANNER
deny_info http://192.168.0.9/null.gif CONNECT BANNER
deny_info http://192.168.0.9/null.gif BANNER_REGEX
deny_info http://192.168.0.9/null.gif CONNECT BANNER_REGEX
deny_info http://192.168.0.9/null.html BANNER_IFRAME
deny_info http://192.168.0.9/null.html BANNER_IFRAME_REGEX
deny_info http://192.168.0.9/null.html CONNECT BANNER_IFRAME
deny_info http://192.168.0.9/null.html CONNECT BANNER_IFRAME_REGEX
deny_info http://192.168.0.9/no-porno.gif PORNO
deny_info http://192.168.0.9/no-porno.gif CONNECT PORNO
deny_info http://192.168.0.9/no-porno.gif PORNO_REGEX
deny_info http://192.168.0.9/no-porno.gif CONNECT PORNO_REGEX
Теперь создаем и заполняем заявленные в конфиге файлы:
• /usr/local/etc/squid/url.whitelist
192.168.0.9
internal-server.local
• /usr/local/etc/squid/url.banner
.ad.adriver.ru
pics.rbc.ru
.ad.membrana.ru
bs.yandex.ru
pics.imho.ru
body.imho.ru
content.medialand.ru
.spylog.com
counter.yadro.ru
.advideo.bb.ru
.tns-counter.ru
• /usr/local/etc/squid/url.banner-regex
^http://r\.mail\.ru/(cl)?b[[:digit:]]+
^http://images\.rambler\.ru/upl/
/banners?[[:digit:]]*[x?/\.]
[[:<:]]hit[[:digit:]]+\.hotlog\.ru
/(count(er)?|cnt|hit)[[:digit:]]*[\.?]
/[aA]d(v(erts?)?|s)?[[:digit:]]*[?/\.]
^http://(www\.)?sunradio\.ru/upload/bx/
^http://(www\.)?nnm\.ru/ban/
^http://(www\.)?java2phone\.ru/pict/b
^http://([[:alpha:]]+[[:digit:]]*\.)+bigmir\.net
^http://[[:alpha:]]+[[:digit:]]*\.[[:digit:]]+mdn\.net/viewad/
^http://(www\.)?nasvyazi\.ru/img/banner_
^http://(www\.)?games\.ru/b/
^http://(www\.)?computerra\.ru/upload/bx/
^http://(www\.)?finbs\.ru/Upload/
^http://(www\.)?torrents\.ru/forum/bn/
^http://(www\.)?powerclip\.ru/baner/
^http://(www\.)?nnm\.ru/rec/[[:digit:]]+/banner
^http://[[:alpha:]-]+\.nnm\.ru/rec/[[:digit:]]+/
^http://i\.ru-board\.com/temp/
^http://adserv\.top500\.org/b/
^http://([[:alpha:]-]+\.)+traf\.spb\.ru/(upload|b)/
^http://([[:alpha:]-]+\.)*inf\.by/i/b/
^http://(www\.)?gzt\.ru/files/
^http://([[:alnum:]]+\.)*ru-board\.com/board/temp/
^http://(www\.)?rb\.ru/img/content/ushki/
• /usr/local/etc/squid/url.banner.iframe
clck.yandex.ru
.engine.awaps.net
.begun.ru
.adv.aport.ru
.tr.1big.ru
• /usr/local/etc/squid/url.banner.iframe-regex
/iframe/
[[:<:]]pagead[[:digit:]]+\.googlesyndication\.com
• /usr/local/etc/squid/url.porno
.porndiller.com
.meatmembers.com
.xvideos.com
.livesexlist.com
.brothasfuckteens.com
.nexxx.com
.creamed-whores.com
.juggmovieplanet.com
• /usr/local/etc/squid/url.porno-regex
porno|xxx|adult
После внесения изменений перезагрузите прокси-сервер:
# squid -k reconfigure

7 комментариев:

Sova комментирует...

Добрый день
А не могли бы Вы выложить рабочий конфиг сквида с комментариями на русском языке? Я начинающий фришник и поэтому бы хотелось бы посмотреть и сравнить со своим

Skif комментирует...

что то не блокирует
в логах тишина права расставлены правильно что не так делаю?

mr.tacitus комментирует...

Приведенные выше правила http_access deny следует размещать ДО правил http_access allow.

2skif: Если логи молчат значит трафик идет мимо squid.

jeton комментирует...

Pasiba rebeata realino pomoglo

Denis комментирует...

Наверное, самый толковый мануал о разграничении доступа для squid, из всех, что нагуглился.

Использую в чуть упрощенном виде в 2003 винде.

Спасибо автору!

Юрий комментирует...

Уважаемые у меня не получается сделать несколько deny_info

acl PORNO dstdom_regex -i sex porno adult suka girl xxx pussy teen eroti fuck rakom suchki radio
#DOSTUP NA SAYTI VAKANSIY
acl RABOTA dstdom_regex -i "/etc/squid/rabota_stop"
acl nourl url_regex -i "/etc/squid/nourl"

deny_info http://hamann.com.ua/nourl.htm nourl
deny_info http://hamann.com.ua/stop.htm PORNO
deny_info http://hamann.com.ua/work .htm RABOTA
http_access deny nourl
http_access deny PORNO
http_access deny RABOTA

Цель сделать переход
по разным условиям на странички в интернете, но срабатывают все запреты. Но страничка показывается только по ACL nourl и PORNO, а вот на RABOTA не хочет :-(

Князь комментирует...

Может проблема в "work .htm" (пробел перед точкой)?