Как удалить рекламу с Pixelserv на DD-WRT

Существует множество способов заблокировать рекламу в вашем браузере, но что, если вы можете заблокировать их на маршрутизаторе? Вот как можно использовать прошивку DD-WRT и преднамеренное «отравление DNS» для блокировки рекламы для каждого устройства в вашей сети.

обзор

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

Первый вопрос, который волнует всех сейчас: «Почему бы просто не использовать рекламный блок?»

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

Ответ лежит где-то между уменьшенными накладными расходами на то, что не нужно учить всех пользователей вашей сети о блокировке рекламы (я говорю с вами, мама, сестренка и офисный секретарь), и удобством того, чтобы вы не беспокоились об этом. каждый компьютер, который вы настраиваете. Это предполагает, что в вашей сети будут некоторые компьютеры, на которых вы не собираетесь настраивать свою личную среду (например, «основные серверы» или виртуальные машины).

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

Как это работает?

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

Мы настроим вторичный HTTP-сервер на маршрутизаторе для предоставления прозрачного однопиксельного изображения в качестве ответа на любой URL-запрос. В связи с «неправильным» разрешением DNS это заставит сетевых клиентов запрашивать контент с нашего внутреннего пиксель-сервера и в ответ получит пустое изображение.

Чтобы создать неутвержденный список, мы создадим один персональный список в сочетании с двумя динамически загружаемыми списками. динамические списки — это файл хоста MVPS и список доменов Yoyo, вместе они содержат очень обширный список рекламных сайтов. Используя эти списки, мы должны просто добавить дельту сайтов, которых еще нет ни в одном из них, в наш личный список.

Мы также создадим «белый список» для доменов, которые мы не хотим блокировать по любой причине.

Предпосылки и предположения

  • Терпение молодой, это долго читать.
  • Эта процедура была создана и протестирована на DD-WRT (v24pre-sp2 10/12/10 mini r15437 ), поэтому для ее использования на вашем маршрутизаторе должна быть уже установлена ​​эта версия или более поздняя. Более подробная информация на сайте DD-WRT.
  • Для простоты объяснения предполагается, что маршрутизатор восстановлен до «заводских настроек» или что используемые настройки с тех пор не изменились по сравнению с их «стандартными» предустановками.
  • Клиентский компьютер использует маршрутизатор в качестве DNS-сервера (по умолчанию).
  • Место для JFFS (в случае сомнений, я рекомендую использовать мини версию DD-WRT).
  • Предполагается, что ваша сеть * уже настроена и что ей назначен класс C (с подсетью 255.255.255.0), так как будет назначен последний IP-адрес в этой сети класса C (xyz 254 ). для программы pixel-server.
  • Готовность к установке winSCP.

* Сценарий не сможет корректировать списки блоков после первого запуска до следующего цикла обновления (3 дня).

кредиты

Обновление : отдельная благодарность «mstombs» за великолепный кусок кода на C без его работы — все это было бы невозможно, «Oki» за компиляцию версии и цитаты, совместимой с Atheros 😉 и «Nate» »За помощь в обеспечении качества.

Несмотря на то, что с моей стороны было проделано много работы по совершенствованию этой процедуры, ребята вдохновились ею на форуме DD-WRT, и некоторые основы этого руководства можно найти в разделе «Блокировка рекламы с помощью DD-». WRT (простой) »,« pixelserv без Perl, без каких-либо jffs/cifs/usb free »и« Flexion.Org Wiki на DNSmasq », а также другие.

Давайте взломать

Включить SSH для доступа к SCP

Включив SSH, мы, в свою очередь, даем возможность подключаться к маршрутизатору по протоколу SCP. с этим включением мы можем затем использовать программу winSCP для визуальной навигации по структуре папок маршрутизатора (как мы увидим позже).

Для этого с помощью веб-интерфейса перейдите на вкладку «Услуги».Найдите раздел «Безопасная оболочка» и нажмите кнопку «Включить» для настройки SSHd.

Как только это будет сделано, веб-интерфейс должен выглядеть, как показано ниже, и вы можете нажать «Сохранить» ( не подать заявку).

Включить JFFS

Чтобы сделать эту настройку так, чтобы она была стабильной , воспроизводимой и * была «хорошим гражданином Интернета», мы будем использовать JFFS для хранения как можно большего количества конфигураций. Есть и другие способы сделать это без включения JFFS, если вы не можете из-за нехватки места, но они здесь не рассматриваются.

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

Если вы еще не знаете, что такое JFFS, это объяснение, взятое из вики-статьи DD-WRT о JFFS, должно прояснить ситуацию:

Журналируемая файловая система Flash (JFFS) позволяет вам иметь доступную для записи файловую систему Linux на маршрутизаторе с поддержкой DD-WRT. Он используется для хранения пользовательских программ, таких как Ipkg и данных, в недоступной во флэш-памяти. Это позволяет сохранять пользовательские файлы конфигурации, размещать пользовательские веб-страницы, хранящиеся на маршрутизаторе, и многое другое, что невозможно без JFFS.

Чтобы включить JFFS на вашем маршрутизаторе, перейдите на вкладку «Администрирование» и найдите раздел JFFS. На рисунке ниже показано, где вы можете найти этот раздел на вкладке «Администрирование».

В разделе «Поддержка JFFS2» нажмите переключатели «Включить» для «JFFS2» и (когда они появятся) настройки «Очистить JFFS2». После выбора нажмите «Сохранить».

После сохранения настроек все еще на вкладке «Администрирование» перезагрузите маршрутизатор с помощью кнопки «Перезагрузить маршрутизатор». Это применит настройки и выполнит необходимый «формат» «раздела» JFFS.

Когда webGUI вернется из перезагрузки на вкладку «Администрирование», подождите еще полминуты и обновите страницу.

В случае успеха вы должны увидеть, что у вашего монтирования JFFS есть свободное место, как на картинке.

Настройка сервера пикселей

Загрузите и распакуйте пакет антирекламы для zd-архива dd-wrt, который содержит исполняемый файл pixel-сервера (мы не берем кредит, только избегаем «горячих ссылок»), сценарий блокировки рекламы (написанный вами по-настоящему) и личный список доменов, созданный «Митридатом Vii Eupator» и I

Пришло время загрузить файлы в JFFS-монтирование на маршрутизаторе. для этого установите winSCP (это тип установки «следующий -> следующий -> закончить») и откройте его.

В главном окне заполните информацию следующим образом:

Имя хоста: IP-адрес вашего маршрутизатора (по умолчанию 192.168.1.1)

Номер порта: оставить без изменений на 22

Имя пользователя: root (даже если вы изменили имя пользователя для webGUI, пользователь SSH всегда будет * root * ).

Файл закрытого ключа: оставьте пустым (это необходимо только при создании аутентификации на основе пары ключей, которой у нас нет)

Файловый протокол: SCP

Нам также нужно отключить «Поиск группы пользователей», как показано ниже (спасибо mstombs за указание на это), потому что winSCP ожидает полноценного Linux с другой стороны, который разработчики DD-WRT, несмотря на всю отличную работу, не смогли предоставить. (в основном потому, что просто не хватает места). Если вы оставите этот флажок установленным, вы увидите страшные сообщения при подключении и сохранении отредактированных файлов.

Выберите Advance, а затем снимите флажок «Поиск групп пользователей».

Хотя это не является обязательным, вы можете сохранить настройки сейчас для дальнейшего использования. Если вы решили сохранить настройки, что рекомендуется, также рекомендуется (несмотря на откровенные вопли из «параноика безопасности» о том, что мы оскверняем само существование SSH), чтобы вы сохранили пароль.

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

Поскольку вы впервые подключаетесь к маршрутизатору, winSCP спросит, готовы ли вы доверять отпечатку пальца другой стороны. Нажмите «Да», чтобы продолжить.

Разработчики DD-WRT внедрили приветственное сообщение Banner с некоторой информацией об установленной вами прошивке. когда он красный, нажмите кнопку «Никогда больше не показывать этот баннер» и «Продолжить».

После подключения перейдите к папке верхнего уровня (корень AKA «/»), а затем вернитесь к «/ jffs», так как это единственное место для постоянной записи в файловой системе маршрутизатора («/ tmp» не выживает после перезагрузки). а остальные только для чтения).

Создайте новую папку, нажав F7 или щелкнув правой кнопкой мыши пустое место, наведите курсор на «New» и нажмите «Directory».

Назовите новый каталог «DNS». мы создаем этот каталог, чтобы хранить вещи в каталоге jffs, организованные для будущего использования, и потому что мы в основном меняем работу службы DNS.

Скопируйте файлы «pixelserv» и «disable-adds.sh» из zip-архива anti-ads-pack-for-dd-wrt, выбрав их (используйте клавишу «вставить»), нажав «F5», а затем «Копировать». ».

Примечание. Если ваш маршрутизатор основан на Atheros (вы можете проверить это в вики DD-WRT), вам нужно будет использовать pixelserv_AR71xx, предоставленный Oki и включенный в пакет, и переименовать его в «pixelserv», прежде чем продолжить.

Когда файлы находятся на маршрутизаторе, нам нужно сделать их исполняемыми, выбрав их (снова используя «insert»), щелкнув правой кнопкой мыши, затем «properties».

В окне свойств нажмите на «X» для строки «Владелец». это даст разрешения на выполнение файлов.

Настройки маршрутизатора

Теперь, когда этап установлен, мы можем указать маршрутизатору запускать сценарий блокировки рекламы при запуске.
Для этого в веб-интерфейсе пользователя перейдите на вкладку «Администрирование», а затем на вкладку «Команды».

В текстовом поле «Команды» напишите расположение сценария как «/jffs/dns/disable_adds.sh», как на рисунке, и затем нажмите «Сохранить запуск».

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

Настройка списка личных заблокированных доменов (необязательно)

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

Примечание. Синтаксис важен , поскольку мы фактически создаем директивы конфигурации, которые демон DNSMasq (процесс, отвечающий за преобразование DNS-имени в IP) будет использовать напрямую. Таким образом, неправильный синтаксис в этом случае вызовет сбой службы и не позволит маршрутизатору разрешить IP-адреса для доменных имен (вас предупредили).

Чтобы найти блокирующие доменные имена нарушителей, вы можете использовать наше руководство «Поиск секретных сообщений в заголовках веб-сайтов» в качестве учебного пособия. Шаги по поиску названий рекламных доменов практически одинаковы, только в этом случае вы ищете адрес вместо сообщения.

Первый и, по общему признанию, более доступный способ — это поместить список в поле конфигурации «DNSMasq» в wegGUI. Это связано с тем, что для добавления в этот список можно просто получить доступ к веб-интерфейсу пользователя вместо того, чтобы идти «под капот» для внесения изменений.

Перейдите на вкладку «Службы», найдите раздел «DNSMasq» и там найдите текстовое поле «Дополнительные параметры DNSMasq».

В этом текстовом поле введите списки доменов, которые вы хотите заблокировать с помощью синтаксиса «address =/domain-name-to-block/pixel-server-ip», как показано на рисунке ниже:

Где в этом примере «192.168.1.254» — это IP-адрес, сгенерированный для пиксельного сервера на основе «сетевого адреса» вашей локальной сети. Если ваш сетевой адрес отличается от 192.168.1.x, вам придется соответствующим образом настроить адрес для пиксельного сервера.

По завершении нажмите «Сохранить» в нижней части страницы (пока не применяйте).

Второй вариант состоит в том, чтобы объединить список доменов, которые вы хотите заблокировать, с файлом «personal-ads-list.conf», который собрал я и «Mithridates Vii Eupator». Этот файл является частью zip-архива, который вы скачали ранее, и является отличным началом для обоих методов.

Чтобы использовать его, при необходимости, используйте ваш любимый текстовый редактор для настройки IP-адреса пиксельного сервера (здесь применяются те же ограничения, что и выше). Затем просто скопируйте его в каталог «/ jffs/dns», как и другие файлы. После этого вы можете использовать WinSCP для редактирования и добавления доменов.

Настройка белого списка

Это список доменов, которые будут исключены из динамических списков «hosts» и «domains».

Это необходимо, потому что простая блокировка некоторых доменов приводит к сбоям в работе сайтов, использующих их. самый примечательный пример — «google-analytics.com».

Если мы заблокируем его домен, это не изменит того факта, что сайты, которые его используют, заставят ваш браузер загружать JavaScript, который запускается при таких событиях, как выход из страницы. Это означает, что для такого сайта ваш браузер попытается «позвонить домой», связавшись с доменом Google, не поймет ответ и вам придется подождать, пока не истечет время ожидания сценария, чтобы перейти к следующей странице. Это не очень приятное занятие для серфинга, и поэтому любой домен, содержащий «google-analytics» и «googleadservices», * жестко запрограммирован для фильтрации.

Этот список создан для вас с упомянутыми выше доменами при первом запуске сценария в каталоге «/ jffs/dns».

Чтобы использовать белый список, откройте файл с winSCP и ** perpend , чтобы получить список доменов, которые вы хотите исключить, при этом соблюдайте осторожность, чтобы не оставить пустых строк (если оставить пустую строку, все домены будут удалены из все списки).

* Хотя скрипт создает белый список с доменами внутри него при первом запуске, он НЕ настаивает на их подарках для будущих запусков. поэтому, если вы считаете, что Google должен быть заблокирован, несмотря на вышеупомянутые проблемы, вы можете удалить домены из белого списка.

** Вы должны ввести новые домены в начале списка. Это из-за ошибки в том, как bash интерпретирует новые строки … извините, у меня пока нет обходного решения.

Исполнение

На этом, наконец, пришло время запустить скрипт и посмотреть результаты, просто перезапустив маршрутизатор.

Чтобы сделать это из веб-интерфейса пользователя, на вкладке «Администрирование» вернитесь к «Управление», в нижней части страницы нажмите «Перезагрузить маршрутизатор» и подождите, пока маршрутизатор не восстановится.

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

На маршрутизаторах типа WRT54Gx вы узнаете, когда скрипт завершит выполнение, поскольку он будет мигать оранжевым светодиодом Cisco на передней панели маршрутизатора (другие маршрутизаторы должны иметь аналогичный знак «сказать хвост»).

Обновление: эта часть была * удалена после того, как было обнаружено, что она не является аппаратно-независимой функцией.

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

Однако, если вы хотите убедиться, что процедура прошла успешно, первый шаг отладки в разделе устранения неполадок — отличное место для начала.

* Он фактически закомментирован, поэтому вы можете восстановить его, если уверены, что это не вызовет проблем в вашей настройке.

Наслаждайтесь!

Поиск проблемы

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

  1. Проверьте, разрешен ли рекламный домен для IP-адреса pixelserv.
    Вы можете сделать это, введя команду nslookup против «оскорбительного» домена. Например, «ad-emea.dubleclick.com» является частью заблокированных хостов из личного списка. Если в командной строке ввести «nslookup ad-emea.dubleclick.com», результат должен выглядеть следующим образом:

    Где нормальный разблокированный ответ будет выглядеть так:
  2. Делай больше.
    Чтобы убедиться, что ничего с настройками вашего маршрутизатора не конфликтует с конфигурацией рекламного блока, восстановите заводские настройки маршрутизатора и попробуйте снова. После успешного добавления добавьте свои пользовательские изменения в надежде, что они больше не будут конфликтовать.
  3. Убедитесь, что ваш клиент использует маршрутизатор в качестве DNS.
    Особенно при использовании VPN или сети, которая более сложна, чем обычная настройка маршрутизатора на компьютер, возможно, что ваш клиентский компьютер просто не использует маршрутизатор в качестве своего DNS. В приведенной выше команде очень легко увидеть, какой DNS-сервер использует клиент. Если IP-адрес не совпадает с маршрутизатором, вы обнаружили проблему.
  4. Очистите кеш DNS ваших персональных компьютеров.
    Это потому, что в противном случае вы все равно можете видеть рекламу на сайте, с которым вы тестируете, просто потому, что ваш компьютер уже знает, как получить рекламный контент самостоятельно, не обращаясь к нему за помощью в DNS. В Windows это будет «ipconfig/flushdns».
  5. Закройте браузер.
    Иногда браузер хранит информацию в кэше, поэтому очистка кеша DNS, как показано выше, не помогает.
  6. В случае сомнений перезагрузите.
    Иногда кэши могут сохраняться, и лучший способ избавиться от них — это перезагрузить компьютер. Начните с маршрутизатора и, если проблема не устранена, на клиентском компьютере.
  7. Используйте системный журнал.
    Вы можете активировать демон системного журнала маршрутизатора, а затем просмотреть сообщения, чтобы проверить, не возникает ли у сценария каких-либо проблем, изучив его сообщения. Также скрипт добавляет некоторые псевдонимы команд для облегчения отладки.
    Для этого перейдите на вкладку «Службы» и включите демон системного журнала, как показано на рисунке ниже:

    Примечание. «Удаленный сервер» используется, когда у вас есть сервер системного журнала прослушивания на другом компьютере (например, с kiwi ), если вы этого не делаете есть, просто оставьте это поле пустым.

    После включения вы можете увидеть сообщения отладки, посмотрев файл /var/logs/messages в терминале.
    * Для просмотра ВСЕХ сообщений при загрузке вы можете использовать «more/var/log/messages».
    * Чтобы увидеть только сообщения от сценария в журнале, используйте псевдоним «clog».
    * Для просмотра сообщений по мере их поступления в режиме реального времени используйте «tail -f/var/log/messages» или его псевдоним «tlog».
  8. Понять сценарий.
    Несмотря на то, что я сделал это видео на YouTube для более старой версии этого руководства и сценария, в нем все еще содержится много истин и объяснений, применимых к работе новой и улучшенной версии.

Загрузите антирекламу.

Пусть боги роутеров будут в твою пользу

Оцените статью
TutoryBird.Ru
Добавить комментарий