SQUID - бесплатный прокси-сервер

При работе с сабжем возникли тонкие моменты, как сделать squid.conf более удобным для работы. Покопался в инете - нашел решение.

Пример куска конфига прокси-сервера 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.1/null.gif BANNER
deny_info http://192.168.0.1/null.gif CONNECT BANNER
deny_info http://192.168.0.1/null.gif BANNER_REGEX
deny_info http://192.168.0.1/null.gif CONNECT BANNER_REGEX
deny_info http://192.168.0.1/null.html BANNER_IFRAME
deny_info http://192.168.0.1/null.html BANNER_IFRAME_REGEX
deny_info http://192.168.0.1/null.html CONNECT BANNER_IFRAME
deny_info http://192.168.0.1/null.html CONNECT BANNER_IFRAME_REGEX
deny_info http://192.168.0.1/no-porno.gif PORNO
deny_info http://192.168.0.1/no-porno.gif CONNECT PORNO
deny_info http://192.168.0.1/no-porno.gif PORNO_REGEX
deny_info http://192.168.0.1/no-porno.gif CONNECT PORNO_REGEX

Теперь создаем и заполняем заявленные в конфиге файлы:

#cat /usr/local/etc/squid/url.whitelist

192.168.0.1
proxy.local

#cat /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

#cat /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/

#cat /usr/local/etc/squid/url.banner.iframe

clck.yandex.ru
.engine.awaps.net
.begun.ru
.adv.aport.ru
.tr.1big.ru

#cat /usr/local/etc/squid/url.banner.iframe-regex

/iframe/
[[:<:]]pagead[[:digit:]]+\.googlesyndication\.com

#cat /usr/local/etc/squid/url.porno

.porndiller.com
.meatmembers.com
.xvideos.com
.livesexlist.com
.brothasfuckteens.com
.nexxx.com
.creamed-whores.com
.juggmovieplanet.com

#cat /usr/local/etc/squid/url.porno-regex

porno|xxx|adult

После внесения изменений перезагрузите прокси-сервер:

# squid -k reconfigure