If-Koubou

Jak usunąć reklamy z Pixelserv na DD-WRT

Jak usunąć reklamy z Pixelserv na DD-WRT (Jak)

Istnieje wiele sposobów blokowania reklam w przeglądarce, ale co jeśli możesz zablokować je na routerze? Oto sposób korzystania z oprogramowania wbudowanego DD-WRT i celowe "zatruwanie DNS" w celu blokowania reklam dla każdego urządzenia w sieci.

Przegląd

Aktualizacja: Przewodnik zaktualizowany, aby odzwierciedlić opinie dostarczone przez komentujących i zaktualizował pakiet anty-ads nowszym plikiem wykonywalnym serwera pikseli i dziennikiem zmian.

Pierwszym pytaniem, które teraz wszyscy myślą, jest "dlaczego nie skorzystać z bloku reklam?"

Dla wielu ludzi po prostu nie ma powodu, szczególnie z nową funkcją chrome replikacji rozszerzeń, których używasz na każdym komputerze, na którym używasz chrome.

Odpowiedź leży gdzieś pomiędzy zredukowanym narzutem, że nie trzeba uczyć wszystkich użytkowników w twojej sieci o blokach reklamowych (mówię do ciebie mama, siostra, babcia i sekretarka biurowa) i wygodę, że nie przejmuję się tym na każdy skonfigurowany komputer. Zakłada to, że w sieci będą znajdować się komputery, na których nie skonfigurujesz osobistego środowiska (na przykład "serwery podstawowe" lub "maszyny wirtualne").

Uwaga: Mimo że używam poniższej metody na moim macierzystym routerze, znalazłem ad-blok, który jest doskonałym dodatkiem do tego i polecam używanie obu metod w połączeniu. również jeśli nie masz routera DD-WRT za pomocą bloku reklamowego, to im więcej. W rzeczywistości tak bardzo podoba mi się ten program, przekazałem go jego programistom i zachęcam wszystkich do tego, aby ten rozwój był kontynuowany.

Jak to działa?

Zasadniczo działa to poprzez celowe zatruwanie naszego DNS w celu zwrócenia konkretnego adresu IP dla domen na niezatwierdzonej liście. Ta niezatwierdzona lista będzie zawierać nazwy domen witryn, które są odpowiedzialne wyłącznie za dostarczanie treści reklamowych, więc nie będziemy za nimi tęsknić.

Skonfigurujemy dodatkowy serwer HTTP na routerze, aby wyświetlał przezroczysty obraz jednopikselowy, jako odpowiedź dla dowolnego żądania adresu URL. W połączeniu z "niewłaściwym" rozwiązaniem DNS spowoduje to, że klienci sieci zażądają treści z naszego wewnętrznego serwera pikseli i otrzymają pusty obraz w odpowiedzi.

Aby wygenerować niezatwierdzoną listę, utworzymy jedną osobistą listę w połączeniu z dwiema dynamicznie pobieranymi listami. listy dynamiczne to plik hosta MVPS i lista domen Yoyo, razem mają one bardzo obszerną listę witryn reklamowych. Korzystając z tych list, jesteśmy odpowiedzialni za dodanie delty witryn, które nie są jeszcze w jednym z nich, na naszej osobistej liście.

Ustanowimy także "białą listę" domen, z których nie chcemy być blokowani z jakiegokolwiek powodu.

Wymagania wstępne i założenia

  • Cierpliwość młoda, to jest długa lektura.
  • Ta procedura została stworzona i przetestowana na DD-WRT (v24pre-sp2 10/12/10 mini r15437), jako że powinieneś już mieć tę wersję lub później zainstalować na routerze, aby z niej korzystać. Więcej informacji znajduje się na stronie DD-WRT.
  • Dla ułatwienia wyjaśnienia, zakłada się, że router został przywrócony do "fabrycznych ustawień domyślnych" lub że użyte ustawienia nie zmieniły się od ich "gotowych" ustawień od tego czasu.
  • Komputer kliencki używa routera jako serwera DNS (jest to ustawienie domyślne).
  • Miejsce na JFFS (w razie wątpliwości polecam korzystanie z mini wersja DD-WRT).
  • Zakłada się, że twoja sieć jest już ustawiona i jest to klasa C (która ma podsieć 255.255.255.0) jako ostatnie IP w tej sieci klasy C (x.y.z.254) zostanie przypisany do programu serwera pikseli.
  • Gotowość do zainstalowania winSCP.

* Skrypt nie będzie w stanie dostosować list bloków po pierwszym uruchomieniu do następnego cyklu odświeżania (3 dni).

Kredyty

Aktualizacja: Specjalne podziękowania dla "mstombów" za świetny kawałek kodu C bez jego pracy to wszystko nie byłoby możliwe, "Oki" do kompilowania wersji kompatybilnej z Atheros i cytowania ;-) i "Nate" za pomoc przy QA-ing .

Podczas gdy było dużo pracy, aby udoskonalić tę procedurę po mojej stronie, inspiracja została wywołana przez chłopaków na forum DD-WRT, a niektóre z fundamentów tego przewodnika można znaleźć na stronie "ad-blocking with DD- WRT ponownie (prosty) "," pixelserv bez Perla, bez żadnych jffs / cifs / usb free "i" Flexion.Org Wiki na DNSmasq ", a także inne.

Do roboty

Włącz SSH dla dostępu SCP

Włączając SSH, dajemy sobie możliwość połączenia się z routerem za pomocą protokołu SCP. z włączoną opcją, możemy następnie użyć programu winSCP do wizualnej nawigacji w strukturze folderów routera (jak zobaczymy później).

Aby to zrobić, użyj webGUI, przejdź do zakładki "Usługi". Znajdź sekcję "Bezpieczna powłoka" i kliknij przycisk "Włącz" dla ustawienia SSHd.

Gdy to zrobisz, webGUI powinien wyglądać jak poniżej i możesz kliknąć "Zapisz" (nie rób tego zastosuj jeszcze).

Włącz JFFS

Aby dokonać tej konfiguracji w taki sposób, jaki byłby stabilny, odtwarzalny i * być "dobrym obywatelem internetu", użyjemy JFFS do przechowywania jak największej liczby konfiguracji. Istnieją inne sposoby, aby to zrobić bez włączania JFFS, jeśli nie możesz tego zrobić z powodu ograniczeń miejsca, ale nie są one tutaj omówione.

* inne metody powodują, że router pobiera pliki wykonywalne i dynamiczne listy pikseli za każdym razem, gdy skrypt jest uruchamiany. ponieważ obciąża to serwery przechowujące listy i pliki wykonywalne, a to kosztuje kogoś, ta metoda próbuje tego uniknąć, jeśli to możliwe.

Jeśli jeszcze nie wiesz, co to jest JFFS, to wyjaśnienie, zaczerpnięte z wpisu wiki DD-WRT o JFFS powinno wyjaśnić:

System plików rejestrujących (JFFS) umożliwia zapisywanie systemu plików Linux na routerze obsługującym DD-WRT. Służy do przechowywania programów użytkownika, takich jak Ipkg i danych, w niedostępnej w inny sposób pamięci flash. Umożliwia to zapisywanie niestandardowych plików konfiguracyjnych, hostowanie niestandardowych stron WWW przechowywanych na routerze i wiele innych rzeczy, które nie są dostępne bez JFFS.

Aby włączyć funkcję JFFS na routerze, przejdź do zakładki "Administracja" i znajdź sekcję JFFS. Poniższy rysunek pokazuje, gdzie można znaleźć tę sekcję w zakładce "Administracja".

W sekcji Wsparcie dla JFFS2 kliknij przyciski opcji "Włącz" dla "JFFS2" i (gdy pojawi się) ustawienia "Wyczyść JFFS2". Po wybraniu kliknij "Zapisz".

Po zapisaniu ustawień, wciąż na karcie "Administracja", zrestartuj router za pomocą przycisku "Ponownie uruchom router". Spowoduje to zastosowanie ustawień i wykonanie wymaganego "formatu" partycji "JFFS".

Gdy webGUI wróci z ponownego uruchomienia do zakładki "Administracja", odczekaj dodatkowe pół minuty i odśwież stronę.

Jeśli się powiedzie, powinieneś zobaczyć, że twój uchwyt JFFS ma trochę wolnego miejsca, jak na zdjęciu.

Konfiguracja serwera Pixel

Pobierz i wyodrębnij pakiet antydopingowy do archiwum zip w formacie dd-wrt, który zawiera plik wykonywalny serwera pikseli (nie przyjmujemy kredytów, unikając tylko "gorących linków"), skrypt blokujący reklamy (napisany przez ciebie naprawdę) i osobisty lista domen stworzona przez "Mithridates Vii Eupator" i I.

Nadszedł czas, aby pliki zostały umieszczone w gnieździe JFFS na routerze. w tym celu zainstaluj winSCP (jest to typ "next -> next -> finish") i otwórz go.

W głównym oknie wpisz następujące informacje:

Nazwa hosta: adres IP routera (domyślnie 192.168.1.1)

Numer portu: pozostaw niezmienione na 22

Nazwa Użytkownika: korzeń (nawet jeśli zmienisz nazwę użytkownika dla webGUI, użytkownik SSH zawsze będzie * root * )

Plik klucza prywatnego: pozostaw puste (jest to konieczne tylko w przypadku tworzenia uwierzytelniania opartego na parze kluczy, którego nie mamy)

Protokół pliku: SCP

Musimy także wyłączyć "Lookup user group", jak pokazano poniżej (dzięki mstombs za wskazanie tego), ponieważ winSCP oczekuje pełnej wersji Linuksa po drugiej stronie, której twórcy DD-WRT, mimo całej doskonałej pracy, nie byli w stanie dostarczyć (głównie dlatego, że po prostu nie ma wystarczająco dużo miejsca). Jeśli pozostawisz to zaznaczone, napotkasz przerażające wiadomości podczas łączenia i zapisywania edytowanych plików.

Wybierz opcję Zaawansowane, a następnie usuń zaznaczenie opcji "Wyszukaj grupy użytkowników".

Chociaż jest to opcja opcjonalna, możesz zapisać ustawienia teraz do późniejszego wykorzystania. Jeśli zdecydujesz się zapisać ustawienia, które są zalecane, jest również zalecane (pomimo jawnych okrzyków z "azylu bezpieczeństwa", że bezczeszczymy samo istnienie SSH), że zapiszesz hasło.

Wtedy twoje główne okno będzie wyglądało jak na zdjęciu, a wszystko, co musisz zrobić, aby połączyć się z routerem, to kliknąć dwukrotnie wpis.

Ponieważ po raz pierwszy łączysz się z routerem, winSCP zapyta, czy chcesz zaufać odciskowi palca drugiej strony. Kliknij "Tak", aby kontynuować.

Twórcy DD-WRT zaimplementowali komunikat powitalny Banner z pewnymi informacjami na temat zainstalowanego oprogramowania układowego. raz czerwony, kliknij pole wyboru "Nigdy nie pokazuj tego banera" i "Kontynuuj".

Po podłączeniu przejdź do folderu najwyższego poziomu (AKA root "/"), a następnie wróć do "/ jffs", ponieważ jest to jedyne miejsce do zapisu na stałe w systemie plików routera ("/ tmp" nie przetrwa restartu a reszta to tylko do odczytu).

Utwórz nowy folder, naciskając klawisz F7 lub klikając prawym przyciskiem myszy puste miejsce, najedź myszą na "Nowy" i kliknij "Katalog".

Nazwij nowy katalog "dns". tworzymy ten katalog, aby zachować porządek w katalogu jffs do przyszłego użytku i dlatego, że głównie zmieniamy sposób działania usługi DNS.

Skopiuj pliki "pixelserv" i "disable-adds.sh" z archiwum zip anty-ads-pack-for-dd-wrt, zaznaczając je (użyj klawisza "wstaw"), naciskając "F5", a następnie "Kopiuj ".

Uwaga: Jeśli twój router jest oparty na Atheros (możesz to sprawdzić na wiki DD-WRT), musisz użyć pixelserv_AR71xx dostarczonego przez Oki i zawartego w pakiecie i zmienić jego nazwę na "pixelserv", zanim przejdziesz dalej.

Gdy pliki znajdują się na routerze, musimy je ustawić jako wykonywalne, wybierając je (ponownie użyj "wstaw"), prawym przyciskiem myszy, a następnie "właściwości".

W oknie właściwości kliknij "X" dla wiersza "Właściciel". to da uprawnienia do wykonywania plików.

Ustawienia routera

Po ustawieniu etapu możemy nakazać routerowi uruchomienie skryptu blokującego reklamy podczas uruchamiania.
Aby to zrobić, w webGUI przejdź na zakładkę "Administracja", a następnie kartę "Polecenia".

W polu tekstowym "Polecenia" wpisz lokalizację skryptu jako "/jffs/dns/disable_adds.sh", jak na rysunku, a następnie kliknij "Zapisz start".

Jeśli się powiedzie, powinieneś zobaczyć, że skrypt stał się częścią uruchamiania routera, jak na powyższym obrazku.

Konfigurowanie listy zablokowanych osobistych domen (opcjonalnie)

Ta lista umożliwia dodawanie domen do niezatwierdzonych list, jeśli zauważysz, że dwie dynamiczne listy czegoś nie przechwytują.
Aby to zrobić, istnieją dwie opcje, które działają w połączeniu, więc możesz używać obu zgodnie z tym, co jest dla ciebie wygodniejsze.

Uwaga: The Składnia jest ważnaPonieważ faktycznie tworzymy dyrektywy konfiguracyjne, demon DNSMasq (proces, który jest odpowiedzialny za translację nazw DNS na IP) użyje bezpośrednio. W związku z tym niepoprawna składnia spowoduje awarię usługi i uniemożliwi routerowi rozwiązywanie adresów IP dla nazw domen (zostały upomniane).

Aby znaleźć obraźliwe nazwy domen, które chcesz zablokować, możesz skorzystać z przewodnika "Znajdź tajne wiadomości w nagłówkach witryn" jako podkładu. Kroki w celu znalezienia nazw domen reklamowych są praktycznie takie same, tyle tylko, że w tym przypadku szukasz adresu zamiast wiadomości.

Pierwszy i niewątpliwie bardziej dostępnym sposobem jest umieszczenie listy w polu konfiguracji "DNSMasq" w pliku wegGUI. Dzieje się tak, ponieważ aby dodać do tej listy, można po prostu uzyskać dostęp do webGUI, zamiast iść "pod maską", aby dokonać zmian.

Przejdź do zakładki "Usługi", znajdź sekcję "DNSMasq" i tam znajdź pole tekstowe "Dodatkowe opcje DNSMasq".

W tym polu tekstowym wpisz listę domen, które chcesz zablokować, używając składni "adres = / nazwa-domeny-do-bloku / piksel-serwer-ip", jak pokazano na poniższym obrazku:

Gdzie w tym przykładzie "192.168.1.254" jest adresem IP wygenerowanym dla serwera pikseli na podstawie "adresu sieciowego" twojej sieci LAN. Jeśli twój adres sieciowy jest czymś innym niż 192.168.1.x będziesz musiał odpowiednio dostosować adres dla serwera pikseli.

Po zakończeniu kliknij "Zapisz" u dołu strony (nie stosuj jeszcze).

Drugi opcja polega na złożeniu listy domen, które chcesz zablokować, do pliku "personal-ads-list.conf", który sam i i "Mithridates Vii Eupator" zebrał. Ten plik jest częścią archiwum zip pobranego wcześniej i jest świetnym początkiem dla obu metod.

Aby go użyć, w razie potrzeby użyj ulubionego edytora tekstu, aby dostosować adres IP serwera pikseli (obowiązują te same ograniczenia, co powyżej). Następnie po prostu skopiuj go do katalogu "/ jffs / dns", ponieważ masz inne pliki. Kiedy już tam będziesz, możesz użyć WinSCP do edycji i dodawania domen.

Konfigurowanie białej listy

Oto lista domen, które zostaną pominięte na dynamicznych listach "hostów" i "domen".

Jest to konieczne, ponieważ samo blokowanie niektórych domen powoduje nieprawidłowe działanie witryn. najbardziej godnym uwagi przykładem jest "google-analytics.com".

Jeśli zablokujemy domenę, nie zmieni to faktu, że witryny, które jej używają, mają przeglądarkę, która pobiera kod JavaScript, który działa w przypadku takich zdarzeń, jak opuszczenie strony. Oznacza to, że dla takiej witryny twoja przeglądarka spróbuje "zadzwonić do domu", kontaktując się z domeną google, nie zrozumie odpowiedzi i będziesz musiał poczekać, aż skrypt wygaśnie, aby przejść do następnej strony. Nie jest to przyjemne doświadczenie związane z surfowaniem i dlatego każda domena zawierająca "google-analytics" i "googleadservices" jest * bezwzględnie wyłączona z filtrowania.

Ta lista jest tworzona dla ciebie z wyżej wymienionymi domenami, kiedy skrypt jest uruchamiany po raz pierwszy, w katalogu "/ jffs / dns".

Aby użyć białej listy, otwórz plik z winSCP i **sięgacz do listy domen, które chcesz wyłączyć, zachowując ostrożność, aby nie pozostawiać pustych wierszy (pozostawienie pustego wiersza spowoduje usunięcie wszystkich domen ze wszystkich list).

* Chociaż skrypt tworzy białą listę z domenami w nim w pierwszym uruchomieniu, NIE nalega na ich prezenty dla przyszłych serii. więc jeśli uważasz, że Google powinno zostać zablokowane pomimo wyżej wymienionych problemów, możesz usunąć domeny z białej listy.

** Musisz wprowadzić nowe domeny, które chcesz na początku listy. Dzieje się tak z powodu błędu w interpretacji nowych linii przez basha ... przykro mi, nie mam jeszcze żadnej pracy.

Wykonanie

To jest to, nadszedł czas, aby wywołać skrypt i zobaczyć wyniki, po prostu restartując router.

Aby to zrobić z webGUI, w zakładce "Administracja" wróć do "Zarządzania", na dole strony kliknij "Uruchom ponownie router" i poczekaj na powrót routera.

Skrypt może wykonać swoje obowiązki po raz pierwszy po kilku minutach.

W przypadku routerów typu WRT54Gx będziesz wiedzieć, kiedy skrypt zakończył wykonywanie, ponieważ będzie migał pomarańczowa dioda LED Cisco z przodu routera (inne routery powinny mieć podobny znak "tell tail").

Aktualizacja: ta część została * usunięta po tym, jak została odkryta jako nie-sprzętowa funkcja agnostyczna.

Ponieważ próbujemy dostrzec brak elementów w sieci, polecam po prostu surfowanie do kilku stron, aby zobaczyć wpływ.

Jeśli jednak chcesz się upewnić, że procedura zakończyła się pomyślnie, pierwszy etap debugowania w sekcji rozwiązywania problemów jest doskonałym miejscem na początek.

* To jest rzeczywiście skomentowane, dzięki czemu można go przywrócić, jeśli na pewno nie spowoduje problemów w konfiguracji.

Cieszyć się!

Rozwiązywanie problemów

Jeśli napotkasz problemy, możesz zrobić kilka rzeczy, aby sprawdzić, co poszło nie tak.

  1. Sprawdź, czy domena reklamowa została rozstrzygnięta na adres IP pixelserv.
    Możesz to zrobić, wydając polecenie nslookup przeciwko domenie "obrażającej". Na przykład "ad-emea.dubleclick.com" jest częścią zablokowanych hostów z osobistej listy.Wydając polecenie "nslookup ad-emea.dubleclick.com" w wierszu polecenia, wynik powinien wyglądać następująco:

    Gdzie powinna wyglądać normalna odblokowana odpowiedź:

  2. Przerobić.
    Aby upewnić się, że nic z konfiguracją routera nie koliduje z konfiguracją bloku reklam, przywróć router do "Factory Defaults" i spróbuj ponownie. Po pomyślnym dodaniu niestandardowych zmian w nadziei, że nie będą one ponownie konfliktów.
  3. Upewnij się, że klient używa routera jako serwera DNS.
    Zwłaszcza w przypadku korzystania z sieci VPN lub sieci, która jest bardziej złożona niż normalna konfiguracja routera do komputera, możliwe jest, że komputer kliencki po prostu nie używa routera jako swojego DNS. W powyższym poleceniu bardzo łatwo jest zobaczyć, z jakiego serwera DNS korzysta klient, jeśli adres IP nie jest taki sam jak router, problem został znaleziony.
  4. Wyczyść pamięć podręczną DNS maszyn osobistych.
    Dzieje się tak dlatego, że w przeciwnym razie nadal możesz zobaczyć reklamy na stronie, na której testujesz, ponieważ twój komputer już wie, jak uzyskać treść reklamy samodzielnie, bez konsultacji z DNSem. W systemie Windows będzie to "ipconfig / flushdns".
  5. Zamknij przeglądarkę.
    Czasami przeglądarka przechowuje informacje w pamięci podręcznej, więc czyszczenie pamięci podręcznej DNS, jak pokazano powyżej, nie pomaga.
  6. W razie wątpliwości uruchom ponownie komputer.
    Czasami pamięci podręczne mogą się utrzymywać, a najlepszym sposobem na ich pozbycie się jest ponowne uruchomienie. Zacznij od routera i jeśli problem będzie się powtarzał, komputer kliencki.
  7. Użyj syslog.
    Możesz aktywować demona syslog routera, a następnie przejrzeć komunikaty, aby sprawdzić, czy skrypt napotkał jakiekolwiek problemy, sprawdzając jego komunikaty. Ponadto skrypt dodaje kilka aliasów poleceń, aby ułatwić debugowanie.
    Aby to zrobić, przejdź do zakładki "Usługi" i włącz demona syslog, jak na poniższym obrazku:

    Uwaga: "Serwer zdalny" jest używany, gdy masz odsłuchowy serwer syslog na innym komputerze (np kiwi) jeśli go nie masz, po prostu pozostaw to pole puste.

    Po włączeniu można zobaczyć komunikaty debugowania, patrząc na / var / logs / messages plik w terminalu.
    * Aby zobaczyć WSZYSTKIE wiadomości od rozruchu, możesz użyć "more / var / log / messages".
    * Aby zobaczyć tylko wiadomości ze skryptu w dzienniku, użyj aliasu "clog".
    * Aby zobaczyć wiadomości przychodzące w czasie rzeczywistym, użyj "tail -f / var / log / messages" lub jego alias "tlog".
  8. Zrozum skrypt.
    Mimo że zrobiłem ten film na YouTube dla starszej wersji tego przewodnika i skryptu, wciąż posiada on wiele prawd i objaśnień, które mają zastosowanie do sposobu, w jaki działa nowa i ulepszona wersja.
Pobierz pakiet anty-ads.

Niech bogowie routera będą na twoją korzyść