Тема: Adblock

Решил тут на днях сделать блокирование рекламы средствами кинетика.

Собственно скрипт /media/DISK_A1/system/etc/adblock

#!/bin/sh

MOUNT="/media/DISK_A1/system"

export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin
export LD_LIBRARY_PATH=$MOUNT/lib:$MOUNT/usr/lib:/lib:/usr/lib

start() {
    rm /var/hosts 
    wget  http://winhelp2002.mvps.org/hosts.txt -O  /var/hosts
    cat /media/DISK_A1/system/host >> /var/hosts
    killall -HUP dnsmasq
}


case "$1" in
    start)
        start
        ;;
    stop)
        ;;
    restart)
        start
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

В файл /media/DISK_A1/system/host можно вписать нужные упоминания ip и сервера.

127.0.0.1 localhost
192.168.1.1 KEENETIC

Задача крону

10 */1 * * * /media/DISK_A1/system/etc/adblock start

Отредактировано ELECTRO-NIC (2013-06-09 14:15:03)

26

Re: Adblock

Агрегатор hosts-файлов из нескольких адресов.
Цель - проверка и уникализация записей (дубли удаляются), удаление лишнего, плюс свои белые и чёрные списки. Регулярное обновление.

с переводом строки unix:
gzip http://hosts.awardspace.info/unix http://hosts.awardspace.info/unix.gz
zip http://hosts.awardspace.info/unix.zip

с переводом строки windows:
gzip http://hosts.awardspace.info/win http://hosts.awardspace.info/win.gz
zip http://hosts.awardspace.info/win.zip

wget -O - http://hosts.awardspace.info/unix.gz | gunzip > /etc/hosts

// причина редактирования - изменение хостинга файлов

Отредактировано Star Per (2015-08-17 23:01:49)

27

Re: Adblock

Спасибо!!

28

Re: Adblock

Доброго времени суток,
Спасибо за проделанную работу - всё что в списке блокируется, однако есть проблема - на главной странице яндекса почти все ссылки (новости, почта etc) идут через редирект с http://clck.yandex.ru
например:
текст ссылки:
Фильм Балабанова получил приз на Всероссийском кинофестивале

Вы должны зайти под своим именем, чтобы увидеть скрытый текст.

сама ссылка:

http://clck.yandex.ru/redir/dtype=clck/lid=v12exp_short.news.news.links.1/sid=22879.9024.1368987815.27293/rnd=1368987921037/*data=url%3Dhttp%253A%252F%252Fnews.yandex.ru%252Fyandsearch%253Fcl4url%253Dwww.gazeta.ru%25252Fculture%25252Fnews%25252F2013%25252F05%25252F19%25252Fn_2919969.shtml%2526lr%253D213

будет время попробую в скрипте сделать чтобы это выпиливалось. вероятно такое может быть не только с яндексом

Отредактировано BrD (2013-05-19 21:31:16)

29

Re: Adblock

Мне пришлось все *yandex* выпиливать

30

Re: Adblock

Господа, немного не по теме...
При блокировке рекламы средствами прошивки (iptables) на некоторых сайтах возникают проблемы с загрузкой и отображением. Если на странице есть скрипт, загружаемый с заблокированного сайта, то браузер долго пытается достучаться до заблокированного контента и содержимое сраницы иногда отображается не полностью. Как я понял все что после скрипта не отображается, да и "хорошие" скрипты на такой странице помоему работают не очень. Может такой проблемы не было бы, если бы пакеты не просто дропались, а получали ответ о недоступности сервера/файла (как при правке hosts), но как это сделать не понимаю.
Есть у кого-то идеи?
В таблице nat я так понимаю фильтровать нельзя, а в filter подходящих действий нет.

Отредактировано leha (2013-05-22 11:47:26)

31

Re: Adblock

попробуй вместо DROP делать -j REJECT --reject-with tcp-reset

32

Re: Adblock

Не хочет iptables понимать tcp-reset, хотя  iptables -j REJECT -h выдает описание этого параметра.


REJECT options:
--reject-with type              drop input packet and send back
                                a reply packet according to type:
Valid reject types:
    icmp-net-unreachable        ICMP network unreachable
    net-unreach                 alias
    icmp-host-unreachable       ICMP host unreachable
    host-unreach                alias
    icmp-proto-unreachable      ICMP protocol unreachable
    proto-unreach               alias
    icmp-port-unreachable       ICMP port unreachable (default)
    port-unreach                alias
    icmp-net-prohibited         ICMP network prohibited
    net-prohib                  alias
    icmp-host-prohibited        ICMP host prohibited
    host-prohib                 alias
    tcp-reset                   TCP RST packet
    tcp-rst                     alias
    icmp-admin-prohibited       ICMP administratively prohibited (*)
    admin-prohib                alias

(*) See man page or read the INCOMPATIBILITES file for compatibility issues.
/media/DISK_A1/system/root # iptables -I myblocker -m webstr --url "google.ru" -j REJECT --reject-with tcp-rst
iptables: Invalid argument
/media/DISK_A1/system/root # iptables -I myblocker -m webstr --url "google.ru" -j REJECT --reject-with tcp-reset
iptables: Invalid argument

Отредактировано leha (2013-05-22 15:05:09)

33

Re: Adblock

iptables -I INPUT -i ppp0 -p tcp --dport 23 -j REJECT --reject-with tcp-reset

к примеру, вот так, у меня работает

Отредактировано baragoon (2013-05-22 16:55:23)

34

Re: Adblock

не заработало...
может делаю, что не так.
задачу крону заводим через crontab -e?
или какому-то файлу нужно поменять права доступа и записи?

35

Re: Adblock

shiko :

не заработало...
может делаю, что не так.
задачу крону заводим через crontab -e?
или какому-то файлу нужно поменять права доступа и записи?

проверь что бы /media/DISK_A1/system/etc/adblock был исполняемым и вручную если запускать, что-то меняется?

36

Re: Adblock

baragoon :

вручную если запускать, что-то меняется?

идет загрузка и изменение файла hosts. после ребута - все становится по умолчанию
127.0.0.1 localhost
192.168.1.1 KEENETIC_GIGA

Star Per :

Сделал агрегатор hosts-файлов из нескольких адресов. Адреса взяты из скрипта выше.
Цель - проверка и уникализация записей (дубли удаляются), удаление лишнего. Обновляется раз в час по крону. Лежит на бесплатном хостинге.

перевод строки unix:
http://hosts.totalh.net

тут добавлены только adfree фильтры, для android... можно туда добавить фильтры от реального adblock? (ruadlist, easylist, fanboy).

37

Re: Adblock

после ребута оно и не должно оставаться...

38

Re: Adblock

shiko :

можно туда добавить фильтры от реального adblock? (ruadlist, easylist, fanboy).

Не знаю где брать. В таких фильтрах много нормальных хостов, где фильтруются только некоторые урлы.

Добавил ещё адрес https://raw.github.com/remotehelp/hosts/master/hosts
теперь записей 130к+

Качать надёжнее zip-архивом, но можно еще с хедером Accept-Encoding: gzip (менее надёжно, учитывая фокусы бесплатного хостера), с последующим разархивированием.

39

Re: Adblock

Обладатели второй гиги  (и прочих монстрах)  могут из репо вытянуть privoxy и с помощью проекта Русский privoxy сконвертировать списки adblock под privoxy
Сайт проекта https://sites.google.com/site/rpfteam/conf
Далее можно весь трафик по 80 порту завернуть на порт привокси, получается прозрачный прокси. При списках более 1мб очень требователен к ресурсам. Я пробовал его на дырлинке перешитом в классический кинетик, процессор на 380mhz не справляется да и оперативки мало, а вот на второй гиге и прочих монстрах должно взлететь  smile

Star Per
Списки ad block можно взять тут:
https://easylist-downloads.adblockplus.org/easylist.txt
https://easylist-downloads.adblockplus.org/advblock.txt
https://easylist-downloads.adblockplus.org/cntblock.txt
https://easylist-downloads.adblockplus.org/bitblock.txt
https://easylist-downloads.adblockplus.org/antinuha.txt

Отредактировано EvilBox (2013-07-20 01:33:08)

40

Re: Adblock

How-to вместе со скриптом переработки\обновления правил и правилом iptables. Только сделайте поправку на кинетиковскую специфику.

С набором ruadlist+easylist в состоянии покоя:

# pmap -d `pidof privoxy` | grep mapped
mapped: 4640K    writeable/private: 2764K    shared: 0K
Со всеми вытекающими...

41

Re: Adblock

ryzhov_al :

How-to вместе со скриптом переработки\обновления правил и правилом iptables. Только сделайте поправку на кинетиковскую специфику.

С набором ruadlist+easylist в состоянии покоя:

# pmap -d `pidof privoxy` | grep mapped
mapped: 4640K    writeable/private: 2764K    shared: 0K

Не могли бы вы сделать замеры при загрузке 2-3 страниц? Ведь привокси на каждое соединение делает дополнительный дочерний процесс на ХХХ килобайт. Пару замусоренных страниц убивают мне все оперативку  sad

42

Re: Adblock

EvilBox :

Не могли бы вы сделать замеры при загрузке 2-3 страниц? Ведь привокси на каждое соединение делает дополнительный дочерний процесс на ХХХ килобайт. Пару замусоренных страниц убивают мне все оперативку  sad

Я обладатель «прочих монстров», к тому же замеры смогу провести только через дней десять. Скажу лишь, что на тарифе в 20МБит/c никаких тормозов при сёрфинге субъективно не ощущается.

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

Со всеми вытекающими...

43

Re: Adblock

ryzhov_al :
EvilBox :

Не могли бы вы сделать замеры при загрузке 2-3 страниц? Ведь привокси на каждое соединение делает дополнительный дочерний процесс на ХХХ килобайт. Пару замусоренных страниц убивают мне все оперативку  sad

Я обладатель «прочих монстров», к тому же замеры смогу провести только через дней десять. Скажу лишь, что на тарифе в 20МБит/c никаких тормозов при сёрфинге субъективно не ощущается.

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

Спасибо, я думал об этом, но как ни вертел правила iptables перенаправляю всю подсеть а не конкретного клиента (статика пренаправляемому выдана)

44

Re: Adblock

baragoon :

после ребута оно и не должно оставаться...

не понял... так его демоном надо делать? после перезагрузки все правила пропадают...

45

Re: Adblock

знаю что некропостить нехорошо, но всё же отпишусь - у тех у кого не "работает" после перезапуска dnsmasq, пропишите на устройствах dns-сервером ip-адрес кинетика (по дефолту 192.168.1.1), до кучи его же можно указать в конфиге dhcp-сервера

46

Re: Adblock

Привет) Помогите пожалуйста разобраться)
сделал все как написано, но скрипт не стартует при запуске системы.
При попытке вручную запустить файл пишет, что не найдено..
http://storage4.static.itmages.ru/i/15/0723/h_1437652735_5904508_d67cb30d75.png

47

Re: Adblock

Набросал свой вариант adblock'a, все фильтры позаимствованы из андроидовского AdAway, так что им можно более-менее доверять, тем не менее, исходя из соображений безопасности, о которых здесь ранее упоминали, я сделал выборку и очистку фильтров от мусора (помимо уже готовых списков, в начале скрипта добавлено чтение собственного списка фильтров)

#!/bin/sh

export PATH=/media/DISK_A1/system/bin:/media/DISK_A1/system/sbin:/media/DISK_A1/system/usr/bin:/media/DISK_A1/system/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin
export LD_LIBRARY_PATH=/media/DISK_A1/system/lib:/media/DISK_A1/system/usr/lib:/lib:/usr/lib

hosts=/media/DISK_A1/system/tmp/hosts/hosts

start() {
logger 'adblock start'
cat /media/DISK_A1/hosts.txt > /etc/hosts
killall -HUP dnsmasq
sleep 60
wget http://adaway.org/hosts.txt -O $hosts.1
cat $hosts.1|sed -r 's/#.+//g'|grep -E 127.0.0.1\|0.0.0.0 >> /etc/hosts
wget 'http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext' -O $hosts.2
cat $hosts.2|sed -r 's/#.+//g'|grep -E 127.0.0.1\|0.0.0.0 >> /etc/hosts
wget http://winhelp2002.mvps.org/hosts.txt -O $hosts.3
cat $hosts.3|sed -r 's/#.+//g'|grep -E 127.0.0.1\|0.0.0.0 >> /etc/hosts
wget http://hosts-file.net/ad_servers.asp -O $hosts.4
cat $hosts.4|sed -r 's/#.+//g'|grep -E 127.0.0.1\|0.0.0.0 >> /etc/hosts
#rm -rf $hosts.*
killall -HUP dnsmasq
logger 'adblock done'
}

stop() {
echo STOP adblock
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        ;;
esac

Отредактировано BackMan (2015-07-28 08:19:56)