Как да премахнете реклами с 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 безплатно“ и „Flexion.Org Wiki на DNSmasq“, както и други.
Да получим крекинг
Активиране на SSH за достъп до SCP
Като активираме SSH, ние на свой ред си даваме възможност да се свържем с маршрутизатора, като използваме протокола SCP. с тази включена, ние можем да използваме програмата winSCP за визуално навигиране в структурата на папките на рутера (както ще видим по-късно).
За да направите това, използвайки webGUI, отидете в раздела „Услуги“. Намерете секцията “Secure shell” и щракнете върху бутона “Enable” за настройката SSHd.
След като бъде направено, webGUI трябва да изглежда по-долу и можете да кликнете върху „Запазване“ (не приложи още.
Активиране на JFFS
За да направите тази настройка по начин, който би бил стабилен, възпроизводими и * да бъдат „добър интернет гражданин“, ние ще използваме JFFS за съхраняване на колкото е възможно повече конфигурации. Има и други начини да направите това, без да активирате JFFS, ако не можете да го направите поради ограничения в пространството, но те не са обхванати тук.
* други методи трябва да изтеглят рутера ви изпълними и динамични списъци пиксел-сървър всеки път, когато скриптът се изпълнява. тъй като това натоварва сървърите, притежаващи списъците и изпълнимия файл и това струва пари на някого, този метод се опитва да го избегне, ако е възможно.
Ако не знаете какво е JFFS, това обяснение, взето от уикито на DD-WRT за JFFS, трябва да изясни:
Журнализиращата файлова система (JFFS) ви позволява да имате файлова система за запис на Linux на маршрутизатор с активиран DD-WRT. Използва се за съхраняване на потребителски програми като Ipkg и данни в иначе недостъпна флаш памет. Това ви позволява да запазвате потребителски конфигурационни файлове, хост потребителски уеб страници, съхранявани в маршрутизатора и много други неща, които не са способни без JFFS.
За да активирате JFFS на вашия рутер, отидете в раздела „Администрация“ и намерете секцията JFFS. картинката по-долу показва къде ще намерите този раздел в раздела „Администриране“.
В раздела за поддръжка на JFFS2 щракнете върху бутоните “Enable” за “JFFS2” и (когато се появи) настройките “Clean JFFS2”. След като бъде избран, кликнете върху „Запазване“.
Когато настройките са запазени, все още в раздела “Администрация”, рестартирайте маршрутизатора с помощта на бутона “Reboot Router”. Това ще приложи настройките и ще извърши необходимия „формат“ на „дяла“ на JFFS.
Когато webGUI се върне от рестартирането в раздела „Администрация“, изчакайте още половин минута и опреснете страницата.
Ако успеете, трябва да видите, че монтирането на JFFS има малко свободно място, както на снимката.
Настройка на сървъра за пиксели
Изтеглете и извлечете антирекламния пакет за дд-wrt zip архива, който съдържа изпълнимия пиксел-сървър (ние не вземаме кредит, само избягвайки “горещо свързване”), скрипта за блокиране на реклами (написан от вас) и личния домейн-списък, създаден от „Митридат Вии Евпатор“ и аз.
Време е да получите файловете в JFFS монтирането на маршрутизатора. За да направите това, инсталирайте winSCP (това е тип "следващ -> следващ -> завърши") и го отворете.
В основния прозорец попълнете информацията по следния начин:
Име на хоста: IP адресът на маршрутизатора (по подразбиране е 192.168.1.1)
Номер на порта: оставете непроменен на 22
Потребителско име: корен (дори ако сте променили потребителското име за webGUI, потребителят на SSH винаги ще бъде * root *)
Файл с частен ключ: оставете празно (това е необходимо само когато създавате удостоверяване с двойка ключове, което не сме направили)
Файлов протокол: SCP
Също така трябва да деактивираме „потребителската група за търсене“, както е показано по-долу (благодарение на mstombs за това), защото winSCP очаква пълен Linux, от другата страна, който разработчиците на DD-WRT, въпреки всички отлични резултати, не успяха да осигурят (главно защото просто няма достатъчно място). Ако оставите тази отметка, ще се сблъскате със страшни съобщения, когато се свързвате и записвате редактирани файлове.
Изберете Адванс и махнете отметката от „Търсене на потребителски групи“.
Въпреки че е по избор, можете да изберете да запазите настройките сега за по-късна употреба. Ако решите да запазите препоръчаните настройки, препоръчваме ви също (въпреки откровените викове на „параноя на сигурността“, които оскверняваме самото съществуване на SSH), че запазвате паролата.
Тогава главният ви прозорец ще изглежда като на снимката, и всичко, което трябва да направите, за да се свържете с рутера е двойно щракване върху записа.
Тъй като това е първият път, когато ще се свързвате към рутера, winSCP ще ви попита дали сте готови да се доверите на пръстовия отпечатък от другата страна. Кликнете върху „Да“, за да продължите.
Разработчиците на DD-WRT са въвели поздравително съобщение за банер с информация за инсталирания фърмуер. веднъж червено, кликнете върху квадратчето „Никога не показвай отново този банер“ и „Продължи“.
Веднъж свързан, навигирайте по пътя си до папката на най-високо ниво (корен “/”) и след това се върнете на “/ jffs”, тъй като това е единственото постоянно място за записване във файловата система на маршрутизатора (“/ tmp” не оцелява) а останалите са само за четене).
Създайте нова папка, като натиснете F7 или щракнете с десния бутон върху празно място, задръжте курсора на мишката върху „Нов“ и кликнете върху „Директория“.
Назовете новата директория „dns“. създаваме тази директория, за да запазим нещата в директорията на jffs, организирани за бъдеща употреба и защото най-вече променяме начина на работа на DNS услугата.
Копирайте файловете “pixelserv” и “disable-adds.sh” от zip архива на anti-ads-pack-for-dd-wrt, като ги изберете (използвайте клавиша “insert”), натискайки “F5” и след това “Copy” \ t ".
Забележка: Ако вашият рутер е базиран на Atheros (можете да проверите това на wiki-DD-WRT), ще трябва да използвате pixelserv_AR71xx, предоставен от Oki и включен в пакета, и да го преименувате на “pixelserv”, преди да продължите.
След като файловете са на маршрутизатора, ние трябва да ги направим изпълними, като ги изберете (отново използвайте „вмъкни”), щракнете с десния бутон и след това върху „свойства”..
В прозореца със свойства щракнете върху “X” за реда “Собственик”. което ще даде на файловете изпълнителни разрешения.
Настройки на маршрутизатора
Сега, когато сцената е настроена, можем да кажем на рутера да стартира скрипта за блокиране на рекламата при стартиране.
За да направите това, в webGUI отидете в раздела “Администрация” и след това в раздела “Команди”.
В текстовото поле „Команди“ напишете местоположението на скрипта като „/jffs/dns/disable_adds.sh“, както е на картинката, след което кликнете върху „Запазване на стартирането“.
Ако успеете, трябва да видите, че скриптът е станал част от стартирането на рутера, както е показано на картинката по-горе.
Настройка на личния списък с блокирани домейни (по избор)
Този списък ви позволява да добавяте домейни към неодобрените списъци, ако установите, че двата динамични списъка не улавят нещо.
За да направите това, има две възможности и те работят заедно, така че можете да използвате и двете според това, което е по-удобно за вас.
Забележка: Най- синтаксисът е важен, Тъй като ние всъщност създаваме директиви за конфигуриране, демонът DNSMasq (процесът, който е отговорен за DNS име на IP преводи) ще използва директно. Като такъв, неправилен синтаксис тук ще доведе до срив на услугата и ще остави маршрутизатора неспособен да разреши IP адресите за имена на домейни (уведомени сте).
За да откриете престъпните имена на домейни, които да блокирате, може да искате да използвате нашето ръководство за търсене на тайни съобщения в заглавките на уебсайтове. Стъпките за намиране на имената на рекламните домейни на практика са едни и същи, само че в този случай търсите адрес вместо съобщение.
Първият и разбира се по-достъпен начин е да се постави списъкът в конфигурационната кутия “DNSMasq” в wegGUI. Това е така, защото за да добавите към този списък, можете просто да влезете в webGUI, вместо да се налага да правите „под капака“, за да правите промени.
Отидете в раздела „Услуги“, намерете секцията „DNSMasq“ и там ще намерите текстовото поле „Допълнителни опции за DNSMasq“.
В това текстово поле въведете списъците с домейни, които искате да бъдат блокирани с синтаксиса „address = / domain-name-to-block / pixel-server-ip“, както е показано на картинката по-долу:
Където в този пример "192.168.1.254" е IP, който е генериран за пиксел-сървъра въз основа на "мрежовия адрес" на вашата LAN. Ако вашият мрежов адрес е нещо друго, тогава 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 интерпретира нови линии… Съжалявам, че все още нямам работа.
Екзекуция
Това е, най-накрая е времето да извикате скрипта и да видите резултатите, като просто рестартирате рутера.
За да направите това от webGUI, под раздела “Администрация” се върнете към “Управление”, в долната част на страницата кликнете върху “Reboot router” и изчакайте маршрутизатора да се върне обратно.
Може да отнеме няколко минути, докато сценарийът изпълни задълженията си за първи път.
На WRT54Gx тип рутери, вие ще знаете кога скриптът е завършил изпълнението си, защото ще мига на оранжевия светодиод на Cisco отпред на рутера (други маршрутизатори трябва да имат подобен знак “казвам опашката”)..
Актуализация: Тази част бе премахната, след като се установи, че е неавтоматична агностична функция.
Тъй като се опитваме да видим липсата на елементи в мрежата, препоръчвам просто да сърфирате в няколко сайта, за да видите ефекта.
Ако обаче искате да се уверите, че процедурата е била успешна, първата стъпка за отстраняване на грешки в раздела за отстраняване на неизправности е чудесно място да започнете.
* Всъщност е коментиран, така че можете да го възстановите, ако сте сигурни, че няма да предизвика проблеми при настройката ви.
Наслади се!
Отстраняване на проблеми
Ако срещнете проблеми има няколко неща, които можете да направите, за да проверите какво се е объркало.
- Проверете дали рекламен домейн е разрешен за IP адреса на pixelserv.
Можете да направите това, като издадете командата nslookup срещу домейна "нарушител". Например „ad-emea.dubleclick.com“ е част от блокираните хостове от личния списък. Чрез издаване на „nslookup ad-emea.dubleclick.com“ в командния ред, резултатът трябва да изглежда така:
Където нормалният деблокиран отговор ще изглежда по следния начин: - Да свърши.
За да сте сигурни, че нищо с настройките на вашия рутер не е в конфликт с конфигурацията на рекламния блок, възстановете маршрутизатора на „Фабрични настройки“ и опитайте отново. След като успешното добавяне на потребителски промени с надеждата, че те не се сблъскват отново. - Уверете се, че вашият клиент използва рутера като DNS.
Особено когато използвате VPN или мрежа, която е по-сложна от обикновената рутер към компютърната настройка, възможно е клиентският ви компютър просто да не използва рутера като своя DNS. Много е лесно да се види в командата по-горе какво е DNS сървърът, който използва клиентът. Ако IP не е същият като маршрутизатора, вие сте намерили проблема.. - Изчистете DNS кеша на личните си машини.
Това е така, защото в противен случай все още можете да виждате рекламите на сайта, с които тествате, просто защото компютърът вече знае как да получи съдържанието на рекламата самостоятелно, без да се консултира с DNS за него. На прозорци това ще бъде „ipconfig / flushdns“. - Затворете браузъра.
Понякога браузърът съхранява кешираната информация, така че изчистването на DNS кеша, както е показано по-горе, не помага. - Когато се съмнявате, рестартирайте.
Понякога кешът може да продължи и най-добрият начин да се отървете от тях е да рестартирате. Започнете с маршрутизатора и ако проблемът продължава, клиентският компютър. - Използвайте syslog.
Можете да активирате демона на syslog на маршрутизатора и след това да прегледате съобщенията, за да видите дали скриптът среща някакви проблеми, като разгледа съобщенията му. Също така скриптът добавя някои командни псевдоними, за да улеснява отстраняването на грешки.
За да направите това, отидете в раздела „Услуги“ и активирайте демона на syslog както е показано на картинката по-долу:
Забележка: „Отдалеченият сървър“ се използва, когато имате друг служебен сървър на друг компютър (като например киви) ако нямате такъв, просто го оставете празно.
Веднъж активирана, можете да видите съобщенията за отстраняване на грешки, като погледнете в / VAR / трупи / съобщения файл в терминал.
* За да видите ВСИЧКИ съобщения от стартирането, можете да използвате „още / var / log / messages“.
* За да видите само съобщенията от скрипта в дневника използвайте псевдонима “clog”.
* За да видите съобщенията, които идват, в реално време, използвайте "tail -f / var / log / messages" или от неговия псевдоним "tlog". - Разберете скрипта.
Въпреки че направих този видеоклип в YouTube за по-стара версия на това ръководство и скрипта, все още има много истини и обяснения, които са приложими за начина, по който работи новата и подобрена версия..