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.
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.
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.
* Skrypt nie będzie w stanie dostosować list bloków po pierwszym uruchomieniu do następnego cyklu odświeżania (3 dni).
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.
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.
Jeśli napotkasz problemy, możesz zrobić kilka rzeczy, aby sprawdzić, co poszło nie tak.