vitich.kiev.ua was created on Dec 15, 1999

Squid: режем баннеры

Достали меня всяческие баннеры на веб-ресурсах.
И вспомнил я о кеширующем прокси компании. :)
И был это старый добрый squid.
Старый в прямом и переносном смысле ибо centos 4.7 ну никак не назовешь новым )))
Чаще всего для резания баннеров и т.д применяется связка c rejik.
Мне это решение показалось чересчур обременительным на данном этапе, поэтому я ограничился перловым скриптом, который каждый может адаптировать под свои нужды.
В конец /etc/squid/squid.conf добавляется две строчки:
redirect_program /etc/squid/redirector.pl
redirect_children 5
Т.е. мы просто указываем путь к скрипту, осуществляющему сам редирект и указываем количество процессов.
Ну и собственно сам скрипт:
# cat /etc/squid/redirector.pl
#!/usr/bin/perl
$|=1;
while (<>) {
s@.*rambler.ru/top100.cnt\?.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*/cgi-bin/banner.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*cgi/bn.pl.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*/advert.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*/adverts.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*banner.linkexchange.com.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*www.linkexchange.ru/cgi-bin/.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*/cgi/flamingo-image.pl.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*bizlink.ru/cgi-bin/irads.cgi.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*/cgi-bin/ads/.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*www.geocities.com/sponsor/.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*reklama.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@http://1000.stars.ru/cgi-bin/1000.cgi.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*ranker/ranker.asp.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*adnet.com.ua/banners/.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*adriver.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*ad_click.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*b.ex.ua.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*k.img.com.ua/static/img/banners/.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*jsu.dt00.net.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*adonweb.ru.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*rmbn.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
s@.*r.mail.ru.*@http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif@;
print;}

Т.е. всё что подпадает под условия редиректится на прозрачный гиф размером 1 на 1 пиксел
http://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif
Вы же можете указать альтернативный путь к картинке.
Теперь баннеров стало гораздо меньше, а если какой и пролезет - можно добавить в скрипт и сказать squid -k reconfigure - данная команда перечитывает конфиг сквида.