Блокировка рекламы на примере роутера MiWiFi | Xiaomi Mi-router 3

Заблокировать рекламу самостоятельно в роутере можно быстро, особенно если вы обладательно роутера на прошивки PROMETHEUS или прошивки ASUS, к таким роутерам можно отнести всю линейку роутеров Xiaomi и асус.
Итак блокировка рекламы в вашей сети LAN осуществляется средствами локального DNS-сервера запущенного в роутере Xiaomi Mi-router 3
Фильтрация рекламы на роутере возможна различными методами, но наименее ресурсозатратным и наиболее простым в настройке является способ перенаправления доменных адресов баннеров на адрес 0.0.0.0 с помощью изменения конфигурации локального DNS-сервера роутера, Dnsmasq.

Заходим в WEB интерфейс роутера LANDHCP-серверПользовательский файл конфигурации «dnsmasq.conf»
Добавляем строку:
addn-hosts=/tmp/hosts

Заходим в WEB интерфейс роутера ПерсонализацияСкриптыВыполнить после полного запуска маршрутизатора:
Добавляем строки:

#!/bin/sh

###Найден статичный 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:]]*$' | 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:]]*$' | sed -e 's/^/0.0.0.0 /' >> /tmp/temp-hosts

logger "Updating /tmp/hosts file..." && cat /tmp/temp-hosts | sort -uk2 >> /tmp/hosts
rm /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:]]*$' | 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

Если реклама все равно не «режется» проверяем что в LANDHCP-серверНастройка сервера DNS и WINSDNS-сервер 1 прописан IP адрес вашего роутера (по умолчанию 192.168.1.1)

Вот собственно и вся настройка, каторая занимает пару минут и в последствии избавляет и защищает все ваши устройства от рекламы, вирусных сайтов, сборщиков аналитики, счётчиков посящений и экономит ваш трафик.

Данный метод можно использовать в паре с расширением адблок и handychache, так же и отдельно.

Блокировка рекламы с помощью файла HOSTS

Служит hosts, как уже было упомянуто, подобно глобальной службе DNS, как база данных доменных имён, но для локального преобразования символьных (записанных на латинице или кириллице, например: ANVLD.RU) адресов сайтов и серверов в более понятный для машин цифровой IP адрес вида 82.146.63.38 в сетях TCP/IP.

Процесс работы связки hosts+DNS выглядит так: в процессе работы в сети интернет, пользователь набирает адрес в строке браузера буквами и нажимает Enter. Запрос из браузера, сверяется с записями hosts, а затем отправляется на один из глобальных dns серверов, тот в свою очередь, снабдив ответ на запрос уже цифровым IP-адресом, передаёт его браузеру пользователя, тем самым направляет на интересующую страничку в интернете.

Путь к файлу hosts в Windows XP, 7, 8 (8.1), 10

Файл hosts в Windows 2000, XP, Vista, 7, 8.1, 10 расположен на системном разделе %SystemRoot%\system32\drivers\etc\hosts

Путь к файлу hosts будет таким: С:\system32\drivers\etc\hosts (но расположение может быть изменено).

Открыть файл hosts в блокноте для просмотра и модификации, можно с помощью команды, выполненной с правами администратора: notepad %systemroot%\System32\drivers\etc\hosts.

Расположение файла hosts в разных версиях Windows может несколько отличаться для разных поколений Windows:

  • Windows 95/98/ME: WINDOWS\hosts;
  • Windows NT/2000: WINNT\system32\drivers\etc\hosts;
  • Windows XP/2003/Vista/7 /8.1: WINDOWS\system32\drivers\etc\hosts.

Что делать — не могу найти файл hosts в папке driver/ets

Быстрый доступ к файлу hosts или, что делать, если в папке по умолчанию файл hosts не найден.
Для решения данной проблемы копируем строку notepad %systemroot%\System32\drivers\etc\hosts и вставляем в Пуск -> Найти файлы и папки.

Создадим подмену домена: при наборе в адресной строке браузера.

  1. Для блокировки рекламы добавляем строку: 0.0.0.0 адрес_сайта в конец файла hosts. Ip адрес 0.0.0.0 принадлежит домену вашего компьютера, роутера, сматрфона, планшета либо другого гаджета.
  2. Сохраняем изменения по запросу.
  3. Набираем в браузере адрес адрес_сайта. Нас ожидает сюрприз… Вместо загрузки домена рекламы мы видим что сайт не доступен, а на страницах сайт в котором был установлен этот рекламный сервис по этому адресу,
    пропали банеры рекламы и блокировка рекламы прошла успешно.

Это и есть небольшая демонстрация возможностей хостс файла Windows.
Чтобы отменить сделанное, удаляем лишнюю строку добавленную в hosts, т.е. возвращаем содержимое файла в исходное положение.

Надеюсь я вас крайне заинтересовал и совсем скоро я расскажу вам как самостоятельно составить правильный файл host или от куда можно скачать готовый оптимизированный для русско-язычного интернета.