обзор
Обновить: Руководство обновлено, чтобы отразить отзывы, предоставленные комментаторами, и обновил пакет анти-рекламы с помощью нового исполняемого файла пиксельного сервера и журнала изменений.
Первый вопрос о разуме каждого сейчас - «почему бы просто не использовать рекламный блок?»
Для многих людей просто нет причин, особенно с новой возможностью 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 (x.y.z. 254) будет назначаться для программы pixel-server.
- Готовность установить winSCP.
* Сценарий не сможет настроить списки блоков после первого запуска до следующего цикла обновления (3 дня).
кредиты
Обновить: Особая благодарность «mstombs» за большой кусок кода C без его работы, все это было бы невозможно, «Oki» для компиляции совместимой с Atheros версии и цитирования;-) и «Nate» за помощь в QA-ing,
Несмотря на то, что было много работы по совершенствованию этой процедуры на моем конце, вдохновение для нее было воспламенено парнями на форуме DD-WRT, а некоторые основы этого руководства можно найти в разделе «блокировка рекламы с помощью DD- WRT revisited (простой) »,« pixerv без Perl, без каких-либо jffs / cifs / usb free »и« Flexion.Org Wiki на DNSmasq », а также другие.
Позволяет растрескиваться
Включить SSH для доступа SCP
Включая SSH, мы, в свою очередь, предоставляем возможность подключения к маршрутизатору с использованием протокола SCP. с этой возможностью мы можем использовать программу winSCP для визуального перемещения структуры папок маршрутизатора (как мы увидим позже).
Для этого, используя webGUI, перейдите на вкладку «Сервисы». Найдите раздел «Безопасная оболочка» и нажмите переключатель «Включить» для настройки SSHd.
Как только это будет сделано, webGUI должен выглядеть ниже, и вы можете нажать «Сохранить» (не применимо еще).
Включить JFFS
Чтобы сделать эту настройку таким образом, чтобы это было стабильный, воспроизводимый и * быть «хорошим гражданином в Интернете», мы будем использовать JFFS для хранения как можно большего количества конфигураций.Есть и другие способы сделать это без включения JFFS, если вы не можете из-за ограничений пространства, но они здесь не рассматриваются.
* другие методы позволяют вашему маршрутизатору загружать исполняемые и динамические списки пиксельных серверов при каждом запуске скрипта. поскольку это создает нагрузку на серверы, содержащие списки и исполняемый файл, и это стоит денег кому-то, этот метод пытается избежать этого, если это возможно.
Если вы еще не знаете, что такое JFFS, это объяснение, взятое из вики-записи DD-WRT о JFFS, должно прояснить ситуацию:
The Journaling Flash File System (JFFS) allows you to have a writable Linux File System on a DD-WRT enabled router. It is used to store user programs like Ipkg and data into otherwise inaccessible flash memory. This allows you to save custom configuration files, host custom Web pages stored on the router and many other things not capable without JFFS.
Чтобы включить JFFS на вашем маршрутизаторе, перейдите на вкладку «Администрирование» и найдите раздел JFFS. на приведенном ниже рисунке показано, где вы найдете этот раздел на вкладке «Администрирование».
Настройка сервера пикселов
Загрузите и распакуйте пакет антивирусов для zd-архива dd-wrt, который содержит исполняемый файл пиксельного сервера (мы не берем кредит, избегаем «горячей ссылки»), сценарий блокировки рекламы (написанный вами по-настоящему) доменный список, созданный «Mithridates Vii Eupator» и I.
Пришло время получить файлы в консоли JFFS на маршрутизаторе. для этого установите winSCP (это тип установки «следующий -> следующий -> конец») и откройте его.
В главном окне введите следующую информацию:
Имя хоста: IP-адрес вашего маршрутизатора (по умолчанию - 192.168.1.1)
Номер порта: оставить без изменений на 22
Имя пользователя: корень (даже если вы изменили имя пользователя для webGUI, пользователь SSH всегда будет * root * )
Файл закрытого ключа: оставьте поле пустым (это необходимо только при создании аутентификации на основе пары ключей, которая у нас отсутствует)
Файловый протокол: SCP
Выберите «Предварительный просмотр», а затем снимите флажок «Поиск групп пользователей».
После подключения перейдите в папку верхнего уровня (корень AKA «/»), а затем вернитесь к «/ jffs», так как это единственное место для записи в файловой системе маршрутизатора («/ tmp» не выдержало перезагрузки а остальные доступны только для чтения).
Скопируйте файлы «pixerv» и «disable-adds.sh» из архива zip-архивов анти-объявлений-pack-for-dd-wrt, выбрав их (используйте клавишу «insert»), нажав «F5», а затем «Скопировать ».
После того, как файлы находятся на маршрутизаторе, мы должны сделать их исполняемыми, выбрав их (снова используйте «insert»), затем щелкните правой кнопкой мыши «свойства».
Настройки маршрутизатора
Теперь, когда эта сцена установлена, мы можем сказать, что маршрутизатор запускает скрипт блокировки рекламы при запуске. Для этого в webGUI перейдите на вкладку «Администрирование», а затем вкладку «Команды».
Настройка списка заблокированных заблокированных доменов (необязательно)
Этот список позволяет добавлять домены в неутвержденные списки, если вы обнаружите, что два динамических списка ничего не поймают. Для этого есть два варианта, и они работают вместе, поэтому вы можете использовать оба варианта в соответствии с тем, что вам более удобно.
Замечания: синтаксис важен, Поскольку мы на самом деле создаем директивы конфигурации, что демон DNSMasq (процесс, который отвечает за перевод DNS-имен на IP-перевод) будет использовать напрямую. Таким образом, неправильный синтаксис здесь приведет к сбою службы и оставлению маршрутизатора неспособным разрешить IP-адреса для доменных имен (вы были предупреждены).
Чтобы найти нарушающие доменные имена для блокировки, вы можете использовать руководство «Найти секретные сообщения в заголовках веб-сайтов» в качестве руководства. Шаги по поиску имен доменов рекламы практически одинаковы, только в этом случае вы ищете адрес вместо сообщения.
Первый и, по общему признанию, более доступным способом является размещение списка в окне конфигурации «DNSMasq» в wegGUI. Это связано с тем, что для добавления в этот список можно просто получить доступ к webGUI вместо того, чтобы идти «под капотом», чтобы внести изменения.
Перейдите на вкладку «Службы», найдите раздел «DNSMasq» и найдите текстовое поле «Дополнительные параметры DNSMasq».
В этом текстовом поле введите списки доменов, которые вы хотите заблокировать, с синтаксисом «address = / domain-name-to-block / pixel-server-ip», как показано на рисунке ниже:
Когда закончите, нажмите «Сохранить» в нижней части страницы (пока не применяйте).
Второй опция заключается в объединении списка доменов, которые вы хотите заблокировать, в файл «personal-ads-list.conf», который я сам и «Mithridates Vii Eupator» собраны. Этот файл является частью zip-архива, который вы загрузили ранее, и это отличный старт для обоих методов.
Чтобы использовать его, при необходимости используйте свой любимый текстовый редактор для настройки IP-адреса пиксельного сервера (здесь применяются те же ограничения, что и выше). Затем просто скопируйте его в каталог «/ jffs / dns», так как у вас есть другие файлы. Как только он там, вы можете использовать winSCP для его редактирования и добавления доменов.
Настройка белого списка
Это список доменов, которые будут исключены из динамических списков «хосты» и «домены».
Это необходимо, потому что просто блокирование некоторых доменов приводит к сбоям в работе сайтов, использующих их. наиболее примечательным примером является «google-analytics.com».
Если мы заблокируем его домен, он не изменит того факта, что сайты, которые его используют, имеют браузер, который загружает JavaScript, который выполняется в таких случаях, как выход из страницы. Это означает, что для такого сайта ваш браузер попытается «позвонить домой», связавшись с доменом google, не поймет ответ, и вам придется подождать, пока сценарий не закончится, чтобы перейти на следующую страницу. Это вряд ли приятный опыт серфинга, поэтому любой домен, содержащий «google-analytics» и «googleadservices», * жестко освобождается от фильтрации.
Этот список создается для вас с указанными доменами упоминания, когда сценарий запускается в первый раз в каталоге «/ jffs / dns».
Чтобы использовать белый список, откройте файл с winSCP и ** взвешивать в список доменов, которые вы хотите исключить, при этом не оставляйте пустые строки (оставив пустую строку, удалите все домены из всех списков).
* Хотя сценарий создает белый список с доменами внутри него в первом прогоне, он НЕ настаивает на своих подарках для будущих прогонов. поэтому, если вы чувствуете, что Google должен быть заблокирован, несмотря на вышеупомянутые проблемы, вы можете удалить домены из белого списка.
** Вы должны ввести новые домены, которые вы хотите в начале списка. Это из-за ошибки с тем, как bash интерпретирует новые строки … извините, у меня пока нет работы.
выполнение
Это он, наконец, время для вызова сценария и увидеть результаты, просто перезапустив маршрутизатор.
Чтобы сделать это из webGUI, на вкладке «Администрирование» вернитесь в «Управление», в нижней части страницы нажмите «Перезагрузите маршрутизатор» и дождитесь возврата маршрутизатора.
Это может занять пару минут, чтобы сценарий выполнял свои обязанности в первый раз.
В маршрутизаторах типа WRT54Gx вы узнаете, когда скрипт завершил выполнение, потому что он будет мигать оранжевым светодиодом Cisco на передней панели маршрутизатора (другие маршрутизаторы должны иметь аналогичный знак «сказать хвост»).
Обновление: эта часть была * удалена после того, как она была обнаружена как неспециализированная агностическая функция.
Поскольку мы пытаемся увидеть отсутствие элементов в Интернете, я рекомендую просто заниматься серфингом на нескольких сайтах, чтобы увидеть аффект.
Однако, если вы хотите убедиться, что процедура прошла успешно, первый этап отладки в разделе устранения неполадок - отличное место для начала.
* Это фактически прокомментировано, поэтому вы можете восстановить его, если вы уверены, что это не вызовет проблем при настройке.
Наслаждайтесь!
Поиск проблемы
Если вы столкнулись с проблемами, есть несколько вещей, которые вы можете сделать, чтобы проверить, что пошло не так.
-
Проверьте, разрешен ли домен рекламы IP-адресу пикселей. Вы можете сделать это, выпустив команду nslookup против «оскорбительного» домена. Например, «ad-emea.dubleclick.com» является частью заблокированных хостов из личного списка. Выпуская «nslookup ad-emea.dubleclick.com» в командной строке, результат должен выглядеть так:
Если бы нормальный разблокированный ответ выглядел бы так:
- Сделать больше. Чтобы убедиться, что ничто с настройкой маршрутизатора не связано с конфигурацией рекламного блока, восстановите маршрутизатор до «Заводские настройки по умолчанию» и повторите попытку. Как только вы успешно добавите свои пользовательские изменения в надежде, что они снова не столкнутся.
- Убедитесь, что ваш клиент использует маршрутизатор в качестве DNS. Особенно при использовании VPN или более сложной сети, чем обычный маршрутизатор для настройки компьютера, возможно, что ваш клиентский компьютер просто не использует маршрутизатор в качестве своего DNS. В приведенной выше команде очень легко увидеть, что DNS-сервер использует клиент. Если IP-адрес не совпадает с маршрутизатором, вы обнаружили проблему.
- Очистите свой кеш DNS персональных компьютеров. Это связано с тем, что в противном случае вы все равно можете видеть объявления на сайте, на котором вы проводите тестирование, просто потому, что ваш компьютер уже знает, как получить рекламный контент самостоятельно, не консультируясь с DNS для него. В окнах это будет «ipconfig / flushdns».
- Закройте браузер. Иногда браузер хранит кешированную информацию, поэтому очистка кэша DNS, как показано выше, не помогает.
- Когда сомневаетесь в перезагрузке. Иногда кеши могут сохраняться, и лучший способ избавиться от них - перезагрузка. Начните с маршрутизатора, и если проблема не исчезнет, клиентский компьютер.
-
Используйте syslog. Вы можете активировать демона syslog маршрутизатора, а затем просмотреть сообщения, чтобы увидеть, сталкивается ли сценарий с любыми проблемами, изучая его сообщения. Также сценарий добавляет некоторые псевдонимы команд, чтобы облегчить отладку. Для этого перейдите на вкладку «Службы» и включите демон syslog, как показано на рисунке ниже:
Примечание. «Удаленный сервер» используется, когда у вас есть сервер syslog для прослушивания на другом компьютере (например, с помощью киви), если у вас его нет, просто оставьте его пустым. После включения вы можете увидеть отладочные сообщения, просмотрев / вар / журналы / сообщения файл в терминале. * Чтобы просмотреть ВСЕ сообщения при загрузке, вы можете использовать «больше / var / log / messages». * Чтобы увидеть только сообщения из сценария в журнале, используйте псевдоним «clog». * Чтобы видеть сообщения, когда они входят, в режиме реального времени используйте «tail -f / var / log / messages» или его псевдоним «tlog».
- Поймите сценарий. Несмотря на то, что я сделал это видео YouTube для более старой версии этого руководства и сценария, он по-прежнему содержит множество прав и объяснений, которые применимы к тому, как работает новая и улучшенная версия.
Загрузите пакет анти-рекламы.