Як видалити оголошення з Pixelserv на DD-WRT
Є багато способів заблокувати рекламу у вашому браузері, але що, якщо ви можете заблокувати їх на маршрутизаторі? Ось як використовувати мікропрограму DD-WRT і навмисне "отруєння DNS", щоб заблокувати оголошення для кожного пристрою в мережі.
Огляд
Оновлення: Посібник оновлюється, щоб відобразити відгуки, надані коментаторами, і оновити пакет анти-оголошень з новим виконуваним піксель-сервером і списком змін.
Перше питання, про яке зараз готують усі, - це те, чому не просто використовувати рекламний блок?
Для багатьох людей просто немає причин, особливо з новою здатністю chrome до тиражування розширень, які ви використовуєте на кожному комп'ютері, на якому запущено chrome..
Відповідь лежить десь між зменшеними накладними витратами, які не вимагають навчати всіх користувачів у вашій мережі про рекламний блок (я маю на увазі маму, сестричку, бабусю та секретаря офісу), а також зручність не турбувати її кожен комп'ютер, який ви налаштуєте. Передбачається, що у вашій мережі буде декілька комп'ютерів, на яких ви не збираєтеся налаштовувати своє особисте оточення (наприклад, "основні сервери" або віртуальні машини).
Примітка: Хоча я використовую метод нижче на моєму домашньому маршрутизаторі, я знайшов ad-block, щоб бути відмінним доповненням до нього, і я рекомендую використовувати обидва методи разом. Крім того, якщо у вас немає маршрутизатора DD-WRT з використанням ad-block, то їх достатньо. Насправді, мені дуже подобається програма, я пожертвувала її розробнику, і я заохочую кожного зробити це, щоб зберегти свій розвиток.
Як це працює?
По суті, це працює шляхом свідомого отруєння нашого 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) Буде призначено для програми піксельного сервера.
- Готовність до установки winSCP.
* Сценарій не зможе налаштувати списки блоків після першого запуску до наступного циклу оновлення (3 дні).
Кредити
Оновлення: Особлива подяка «mstombs» за великий шматок коду C без його роботи, все це неможливо, «Oki» для компіляції версії, сумісної з Atheros і цитатою ;-) і «Nate» за допомогу в QA-ing.
Хоча було багато роботи по вдосконаленню цієї процедури на моєму кінці, натхнення для неї було підпалено хлопцями на форумі DD-WRT, а деякі основи цього посібника можна знайти на “блокуванні реклами з DD- WRT повторно (просто), “pixelserv без Perl, без жодного jffs / cifs / usb free” та “Flexion.Org Wiki на DNSmasq”, а також інші.
Дозволяє отримати тріщини
Увімкнути SSH для доступу до SCP
Увімкнувши SSH, ми, у свою чергу, надаємо можливість підключатися до маршрутизатора за допомогою протоколу SCP. з цим увімкненим, ми можемо використовувати програму winSCP для візуальної навігації по структурі папок маршрутизатора (як ми побачимо пізніше).
Для цього, використовуючи webGUI, перейдіть на вкладку "Послуги". Знайдіть розділ «Захищена оболонка» та натисніть перемикач «Увімкнути» для налаштування SSHd.
Як тільки це буде зроблено, webGUI має виглядати, як показано нижче, і ви можете натиснути "Зберегти" (ні подати ще).
Увімкнути JFFS
Для того, щоб зробити це налаштування таким чином, що було б стабільний, відтворювати і бути «хорошим громадянином Інтернету», ми будемо використовувати JFFS для зберігання якомога більшої кількості конфігурацій. Є й інші способи зробити це без увімкнення JFFS, якщо ви не можете обмежитися простором, але вони не розглядаються тут.
* інші методи мають ваш маршрутизатор завантажувати виконувані і динамічні списки піксельних серверів при кожному запуску сценарію. оскільки це заважає серверам, що містять списки та виконувані файли, і це коштує комусь, цей метод намагається уникнути, якщо це можливо.
Якщо ви ще не знаєте, що таке JFFS, це пояснення, взяте з вікі-запису DD-WRT про JFFS, має зрозуміти:
Журналінг файлової системи (JFFS) дозволяє мати файлову систему Linux, доступну для запису, на маршрутизаторі з підтримкою DD-WRT. Він використовується для зберігання програм користувача, таких як Ipkg та дані, в іншому випадку недоступній флеш-пам'яті. Це дозволяє зберігати власні конфігураційні файли, хост користувальницьких веб-сторінок, що зберігаються на маршрутизаторі і багато інших речей, не здатних без JFFS.
Щоб увімкнути JFFS на маршрутизаторі, перейдіть на вкладку "Адміністрація" та знайдіть розділ JFFS. на малюнку нижче показано, де ви знайдете цей розділ на вкладці "Адміністрування".
У розділі підтримки JFFS2 клацніть перемикачі "Увімкнути" для "JFFS2" і (коли з'явиться) налаштувань "Очистити JFFS2". Після вибору натисніть "Зберегти".
Після збереження налаштувань на вкладці «Адміністрування» перезавантажте маршрутизатор за допомогою кнопки «Перезавантаження маршрутизатора». Це дозволить застосувати параметри та виконати необхідний "формат" розділу "JFFS".
Коли webGUI повернеться з перезавантаження на вкладку "Адміністрування", зачекайте ще півгодини і оновіть сторінку.
Якщо буде успішно, ви побачите, що ваше монтування JFFS має деякий вільний простір, як на малюнку.
Налаштування сервера пікселів
Завантажте та витягніть анти-пакет об'яв для zip-архіву dd-wrt, що містить виконуваний піксель-сервер (ми не беремо кредиту, тільки уникаючи “гарячих зв'язків”), блокуючи об'яви скрипт (написаний вашим вірним) та персональний доменний список, створений «Мітрідат Віі Евпатором» і я.
Настав час перенести файли на монтувальну станцію JFFS на маршрутизаторі. Для цього встановіть winSCP (це "наступний -> наступний -> закінчити" тип установки) і відкрийте його.
У головному вікні заповніть таку інформацію:
Ім'я хоста: IP-адреса вашого маршрутизатора (за умовчанням - 192.168.1.1)
Номер порту: залиште без змін на 22
Ім'я користувача: корінь (навіть якщо ви змінили ім'я користувача для webGUI, користувач SSH завжди буде * root *)
Файл приватного ключа: залишити порожнім (це необхідно лише тоді, коли ви створюєте аутентифікацію на основі ключів, яку ми не маємо)
Файловий протокол: SCP
Ми також повинні вимкнути "групу пошуку користувачів", як показано нижче (завдяки mstombs за це вказано), тому що winSCP очікує повного розгортання Linux з іншого боку, які розробники DD-WRT, незважаючи на всі чудові роботи, не змогли забезпечити (головним чином тому, що просто не вистачає місця). Якщо ви позначите цей пункт, ви побачите страшні повідомлення під час підключення та збереження відредагованих файлів.
Виберіть пункт "Advance", а потім зніміть прапорець "Пошук груп користувачів".
Хоча це необов'язково, ви можете вибрати збереження налаштувань для подальшого використання. Якщо ви вирішите зберегти рекомендовані налаштування, також рекомендується (незважаючи на відвертий крик від "параноїка безпеки", який ми оскверняємо саме існування SSH), що ви зберігаєте пароль.
Тоді ваше головне вікно буде виглядати, як на малюнку, і все, що вам потрібно зробити, щоб підключитися до маршрутизатора, двічі клацніть запис.
Оскільки це перший ви підключення до маршрутизатора, winSCP запитає, чи готові ви довіряти відбитків пальців іншої сторони. Натисніть "Так", щоб продовжити.
Розробники DD-WRT запровадили вітальне повідомлення Banner з деякою інформацією про встановлену прошивку. після червоного кольору встановіть прапорець "Ніколи ще не показувати цей банер" і "Продовжити".
Після підключення перейдіть у папку верхнього рівня (корень AKA "/"), а потім поверніться до "/ jffs", оскільки це єдине місце для запису на файловій системі маршрутизатора (“/ tmp” не переживає перезавантаження) решта - лише для читання).
Створіть нову папку, натиснувши F7 або клацнувши правою кнопкою миші на пусте місце, наведіть курсор на "Нове" та натисніть "Каталог".
Назвіть новий каталог "dns". ми створюємо цей каталог для того, щоб зберегти речі в каталозі jffs для майбутнього використання і тому що ми в основному змінюємо роботу служби DNS.
Скопіюйте файли “pixelserv” та “disable-adds.sh” з архіву anti-ads-pack-for-dd-wrt, вибравши їх (використовуйте клавішу “вставити”), натиснувши “F5” і потім “Копіювати” ".
Примітка: Якщо ваш маршрутизатор базується на Atheros (ви можете перевірити це на вікі DD-WRT), вам потрібно буде використовувати pixelserv_AR71xx, наданий Oki і включений в пакет, і перейменувати його в "pixelserv", перш ніж продовжити.
Після того, як файли знаходяться на маршрутизаторі, ми повинні зробити їх виконуваними, вибравши їх (знову ж таки використовуйте “вставити”), клацніть правою кнопкою миші, потім “properties”.
У вікні властивостей натисніть кнопку "X" для рядка "Власник". що дасть права на виконання файлів.
Налаштування маршрутизатора
Тепер, коли стадія встановлена, ми можемо наказати маршрутизатору запустити сценарій блокування об'яв під час запуску.
Для цього в webGUI перейдіть на вкладку «Адміністрування», а потім на вкладку «Команди».
У текстовому полі "Команди" напишіть розташування сценарію як "/jffs/dns/disable_adds.sh", як на малюнку, а потім натисніть "Зберегти запуск".
У разі успіху, ви повинні побачити скрипт став частиною запуску маршрутизатора, як на малюнку вище.
Налаштування особистого списку заблокованих доменів (необов'язково)
У цьому списку можна додавати домени до несанкціонованих списків, якщо ви виявите, що два динамічні списки не спіймають щось.
Для цього є два варіанти, і вони працюють разом, тому ви можете використовувати обидва відповідно до того, що вам зручніше.
Примітка: The важливий синтаксис, Як ми насправді створюємо директиви конфігурації, що демон DNSMasq (процес, який відповідає за DNS-ім'я перекладу IP) буде використовувати безпосередньо. Таким чином, неправильний тут синтаксис призведе до збою служби та залишить маршрутизатор нездатним вирішити IP-адреси для доменних імен (вас попереджали).
Щоб знайти блокувальні доменні імена, ви можете скористатися посібником "Знайти секретні повідомлення в заголовках веб-сайтів". Кроки з пошуку імен рекламних доменів практично однакові, тільки в цьому випадку ви шукаєте адресу замість повідомлення.
Перший і, безумовно, більш доступний спосіб полягає в тому, щоб перенести список у конфігураційне поле “DNSMasq” в wegGUI. Це відбувається тому, що для додавання до цього списку можна просто отримати доступ до webGUI замість того, щоб переходити "під капот", щоб внести зміни.
Перейдіть на вкладку "Послуги", знайдіть розділ "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 для редагування і додавання доменів.
Налаштування білого списку
Це список доменів, які буде виключено зі списків динамічних "хостів" і "доменів".
Це необхідно, оскільки просто блокування деяких доменів призводить до несправності сайтів. найпримітнішим прикладом є "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, як на малюнку нижче:
Примітка: "Віддалений сервер" використовується, якщо на іншому комп'ютері є сервер прослуховування, наприклад, ківі) якщо ви його не маєте, просто залиште його порожнім.
Після ввімкнення можна переглянути повідомлення для налагодження, переглянувши / var / logs / messages файл в терміналі.
* Щоб побачити ВСІ повідомлення від завантаження, ви можете використовувати "more / var / log / messages".
* Щоб побачити тільки повідомлення з скрипта в журналі, використовуйте псевдонім "clog".
* Щоб побачити повідомлення, як вони входять, в режимі реального часу, використовуйте "tail -f / var / log / messages" або його псевдонімом "tlog". - Зрозумійте сценарій.
Незважаючи на те, що я зробив це відео YouTube для старішої версії цього посібника та сценарію, він все ще містить багато істин і пояснень, які стосуються того, як працює нова та покращена версія..