LINUX.ORG.RU
решено ФорумTalks

Отсебятина squid + adblocker


2

3

Сегодня пришла в голову прикрутить adblocker к сквиду, в нете смотрел подобный материал, но ничего простого не нашел.
Опираясь на пару стареньких и уже не рабочих статей, сделал свой вариант блокировки рекламы с фильтром adblocker.
В конфиге squid написал так:

acl advertisement url_regex "/home/xxx/advertisement.acl"
http_access deny advertisement

Потом сделал маленький shell скрипт который получает листы, конвертирует и отправляет в squid.
Скрипт конвертирования фильтра
#EasyPrivacy
wget https://easylist-downloads.adblockplus.org/easyprivacy.txt -O easyprivacy.txt
#EasyList (рекомендуется)
wget http://adblockplus.mozdev.org/easylist/easylist.txt -O easylist.txt
#дополнительные русские фильтры (рекомендуется)
wget https://ruadlist.googlecode.com/svn/trunk/advblock.txt -O advblock.txt
cat easylist.txt | sed -f adblock.sed > t.acl
cat easyprivacy.txt | sed -f adblock.sed >> t.acl
cat advblock.txt | sed -f adblock.sed >> t.acl
cat t.acl | grep -v '#' | grep -v '+' | grep -v '^\.\*' > ready.acl
cp ready.acl /home/xxx/advertisement.acl
rm t.acl
squid3 -k reconfigure

В файле adblock.sed

/@@.*/d;
/^!.*/d;
/^\[.*\]$/d;
s#http://##g;
s,[.?=&/|],\\&,g;
s#*#.*#g;
s,\$.*$,,g;

Может я где то что то упустил, пишите в комменты.



Последнее исправление: anton9121 (всего исправлений: 2)
Ответ на: комментарий от Deleted

я думал куда это выложить, т.к. это скорее всего заметка, выложил сюда

anton9121
() автор топика

Может я где то что то упустил

Неплохо было бы дать понять, что это (насколько я понимаю) лишь половина функционала `adblock': например div-ы он не вырежет.

Я бы сравнил скорость sed / perl, возможно это тот редкий случай где лучше бы perl.

А вы в курсе про `bfilter'? Вот по теме.

n01r ★★
()

Добавь squid3 -k reconfigure

Satou ★★★★
()
Ответ на: комментарий от n01r

bfilter это же прокся, прогонять трафик через кучу проксей мне не хочется + задержка получится, да и все это слишком накручено получается, я сделал простенький метод, и который с большой вероятностью работает корректно, хотя это время покажет.

Satou Решили в крон воткнуть? =)

anton9121
() автор топика
Ответ на: комментарий от anton9121

там не везде домены ведь. .

Ну да не везде но в большинстве случаев. Да и к тому же dnsmasq+pixelserv вообще тема!

init_6 ★★★★★
()
Ответ на: комментарий от MikeDM

что то я полазил, оказалось что часть из них не работает нифига, а в скорости уменьшение не нашел. Надо пилить и пилить еще. . .

anton9121
() автор топика
Ответ на: комментарий от anton9121

Разобрался и поправил
скритп

#EasyPrivacy
wget https://easylist-downloads.adblockplus.org/easyprivacy.txt -O easyprivacy.txt
#EasyList (рекомендуется)
wget http://adblockplus.mozdev.org/easylist/easylist.txt -O easylist.txt
#дополнительные русские фильтры (рекомендуется)
wget https://ruadlist.googlecode.com/svn/trunk/advblock.txt -O advblock.txt
cat easylist.txt | sed -f adblock.sed > ready.acl
cat easyprivacy.txt | sed -f adblock.sed >> ready.acl
cat advblock.txt | sed -f adblock.sed >> ready.acl
cp ready.acl /home/xxx/advertisement.acl
rm t.acl
в adblock.sed
/.*\$.*/d;
/\n/d;
/.*\#.*/d;
/@@.*/d;
/^!.*/d;
s#http://#||#g;
s/\/\//||/g
s/^\[.*\]$//g;
s,[+.?&/|],\\&,g;
s#*#.*#g;
s,\$.*$,,g;
s/\\|\\|\(.*\)\^\(.*\)/\.\1\\\/\2/g;
s/\\|\\|\(.*\)/\.\1/g;
/^\.\*$/d;
/^$/d;

anton9121
() автор топика
Ответ на: комментарий от anton9121

в общем если кто то наткнется на эту тему, то последняя обновленная версия скрипта, у меня на сайтике тут http://goo.gl/MqsSZ

anton9121
() автор топика
Ответ на: комментарий от anton9121

> cp ready.acl /home/xxx/advertisement.acl

rm t.acl

В последней rm ready.acl
а лучше заменить обе на mv ready.acl /home/xxx/advertisement.acl

Satou ★★★★
()

спасибо

нашел списки актуальные для рунета

http://code.google.com/p/ruadlist/

С вашего позволения :)

#Основная подписка
wget https://ruadlist.googlecode.com/svn/trunk/advblock.txt -nv -O advblock.txt
wget https://easylist-downloads.adblockplus.org/easylist.txt -nv -O easylist.txt

#Дополнение: Против счётчиков
wget https://ruadlist.googlecode.com/svn/trunk/cntblock.txt -nv -O cntblock.txt

#Дополнение: BitBlock
wget https://ruadlist.googlecode.com/svn/trunk/bitblock.txt -nv -O bitblock.txt

#Дополнение: Анти-порно подписка
wget https://ruadlist.googlecode.com/svn/trunk/antinuha.txt -nv -O antinuha.txt

cat advblock.txt | sed -f adblock.sed > ready.acl
cat easylist.txt | sed -f adblock.sed >> ready.acl
cat cntblock.txt | sed -f adblock.sed >> ready.acl
cat bitblock.txt | sed -f adblock.sed >> ready.acl
cat antinuha.txt | sed -f adblock.sed >> ready.acl
rm advblock.txt easylist.txt cntblock.txt bitblock.txt antinuha.txt
mv ready.acl /home/xxx/advertisement.acl

extraterrestrial
()
28 января 2012 г.
Ответ на: комментарий от lioncub

adzapper побыстрее и по качественнее сделал... с этими фильтрами

lioncub ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.