Блокировка рекламы на примере роутера MiWiFi | Xiaomi Mi-router 3
Заблокировать рекламу самостоятельно в роутере можно быстро, особенно если вы обладатель роутера на прошивки PROMETHEUS или прошивки ASUS, к таким роутерам можно отнести всю линейку роутеров Xiaomi и асус.
Итак блокировка рекламы в вашей сети LAN осуществляется средствами локального DNS-сервера запущенного в роутере Xiaomi Mi-router 3
Фильтрация рекламы на роутере возможна различными методами, но наименее ресурсозатратным и наиболее простым в настройке является способ перенаправления доменных адресов баннеров на адрес 0.0.0.0 с помощью изменения конфигурации локального DNS-сервера роутера, Dnsmasq.
Заходим в WEB интерфейс роутера LAN — DHCP-сервер — Пользовательский файл конфигурации «dnsmasq.conf»
Добавляем строку:addn-hosts=/tmp/hosts
Заходим в WEB интерфейс роутера Персонализация — Скрипты — Выполнить после полного запуска маршрутизатора:
Добавляем строки:
###Найден статичный hosts на флешке, копируем его в tmp[ -f /opt/etc/hosts ] && logger "entware hosts file /opt/etc/hosts" && cp /opt/etc/hosts /tmp/hosts
modprobe ip_set
modprobe ip_set_hash_ip
modprobe ip_set_hash_net
modprobe ip_set_bitmap_ip
modprobe ip_set_list_set
modprobe xt_set
modprobe xt_HL
touch /tmp/hosts
sleep 15
###если отсутствует статичный файл, скачиваем его с интернета
[ ! -f /opt/etc/hosts ] && logger "download adblok3.txt" && wget -qO- "http://i.dinis.ru/adblok3.txt" | grep -v '^#\|^[[:space:]]*#39; | sed -e 's/^/0.0.0.0 /' >> /tmp/temp-hosts
###скачиваем обновляемый файл не зависимо есть ли что на флешке
logger "download adlist.txt" && wget -qO- "http://adlock.dinis.ru/adlist.txt" | grep -v '^#\|^[[:space:]]*#39; | sed -e 's/^/0.0.0.0 /' >> /tmp/temp-hosts
logger "Updating /tmp/hosts file..." && cat /tmp/temp-hosts | sort -uk2 >> /tmp/hostsrm /tmp/temp-hosts && logger "/tmp/hosts file has been successfully updated."
killall -SIGHUP dnsmasq
В adblok3.txt добавлены ранее обнаруженные сайты с рекламой и телеметрией, его вы можете сделать статичным в роутере.
А в adblok.txt добавляются новые замеченные как в мобильных приложениях так и на веб сайтах.
Для желающих заблокировать ютуб нужно дабавить строку yutube.txt чтобы хоть как то ограничить чадо от нежелательных каналов.
Вместо adblock2 можно добавитьlogger "download Zero hosts file..." && wget -qO- "http://someonewhocares.org/hosts/zero/hosts" | awk -v r="0.0.0.0" '{sub(/^0.0.0.0/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download MVPS hosts file..." && wget -qO- "http://winhelp2002.mvps.org/hosts.txt" | awk -v r="0.0.0.0" '{sub(/^0.0.0.0/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download AdAway blocklist hosts file..." && wget -qO- "https://adaway.org/hosts.txt" |awk -v r="0.0.0.0" '{sub(/^127.0.0.1/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download MalwareDomainList hosts file..." && wget -qO- "https://www.malwaredomainlist.com/hostslist/hosts.txt" |awk -v r="0.0.0.0" '{sub(/^127.0.0.1/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download hpHosts hosts file..." && wget -qO- "http://hosts-file.net/ad_servers.txt" |awk -v r="0.0.0.0" '{sub(/^127.0.0.1/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download Ad server hosts file..." && wget -qO- "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&showintro=0&mimetype=plaintext" |awk -v r="0.0.0.0" '{sub(/^127.0.0.1/, r)} $0 ~ "^"r' >> /tmp/temp-hosts
logger "download DisableWinTracking hosts file..." && wget --no-check-certificate -qO- "https://gist.githubusercontent.com/10se1ucgo/fcb774d781a66ea9d31f/raw/f8ba0bca0f96390af1a613258c952b099942c3ee/ips+domains.txt" | grep -v '^#\|^[[:space:]]*#39; | sed -e 's/^/0.0.0.0 /' >> /tmp/temp-hosts
это первоисточники, на котором базируется adblock3 и adlist с удалёнными дублями и в одном файле.
Перезагружаем роутер и проверяем в логе:dnsmasq[553]: read /tmp/hosts - 66896 addresses
адресов должно очень быть много.
Если в логе 0 addresses:dnsmasq[473]: read /tmp/hosts - 0 addresses
проверяйте — что-то пошло не так..
Заходим в Персонализация — Скрипты — Выполнить после перезапуска правил брандмауэра и добавляем пару строчек если нету:### Запрет использования собственных DNS-настроек на клиентах
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
Все днс запросы будут принудительно перенаправлятся на локальный днс сервер, не зависимо от того что прописано на клиентах. Так же поможет в случае заражения компьютера вирусама, не даст подделать днс запрос в обход нашему списку блокировки.
Фиксации TTL средствами роутера.
Зафиксировать TTL можно добавив в этот же файл строчкиmodprobe xt_HL
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64
ip6tables -t mangle -A POSTROUTING -j HL --hl-set 64
Если реклама все равно не «режется» проверяем что в LAN — DHCP-сервер — Настройка сервера DNS и WINS — DNS-сервер 1 прописан IP адрес вашего роутера (по умолчанию 192.168.1.1)
Вот собственно и вся настройка, каторая занимает пару минут и в последствии избавляет и защищает все ваши устройства от рекламы, вирусных сайтов, сборщиков аналитики, счётчиков посящений и экономит ваш трафик.
Данный метод можно использовать в паре с расширением адблок и handychache, так же и отдельно.