Hjemmeside » hvordan » Sådan fjerner du annoncer med Pixelserv på DD-WRT

    Sådan fjerner du annoncer med Pixelserv på DD-WRT

    Der er mange måder at blokere annoncer i din browser på, men hvad hvis du kunne blokere dem på routeren? Sådan bruger du DD-WRT-firmwaren og bevidst "DNS-forgiftning" for at blokere annoncer for hver enhed på dit netværk.

    Oversigt

    Opdatering: Guide opdateret for at afspejle tilbagemeldinger fra kommentatorer og opdaterede anti-annoncer pakken med den nyere pixel-server eksekverbare og en changelog.

    Det første spørgsmål om alles sind lige nu er "hvorfor ikke bare bruge ad-block?"

    For mange mennesker er der simpelthen ikke en grund, især med chroms nye evne til at replikere de udvidelser, du bruger til hver computer, du kører krom på.

    Svaret ligger et eller andet sted mellem den reducerede overhead for ikke at skulle undervise alle brugere på dit netværk om ad-block (jeg taler til dig mor, sis, granny og kontorsekretær) og bekvemmeligheden ved ikke at blive generet af det på hver computer du opsætter. Det antages, at der vil være nogle computere på dit netværk, at du ikke vil konfigurere dit personlige miljø på (for eksempel "core servers" eller VM's).

    Bemærk: Selvom jeg bruger metoden nedenfor på min hjemme router, fandt jeg ad-block til at være et glimrende supplement til det, og jeg anbefaler at bruge begge metoder i forbindelse. også hvis du ikke har en DD-WRT-router ved hjælp af ad-blok, er de mere nok. Faktisk kan jeg lide programmet så meget, jeg donerede til sin udvikler, og jeg opfordrer alle til at gøre det for at holde det videre.

    Hvordan virker det?

    Dette virker hovedsageligt ved forsætlig forgiftning af vores DNS for at returnere en bestemt IP for domæner i en ikke godkendt liste. Denne ikke godkendte liste indeholder domænenavne på websteder, der udelukkende er ansvarlige for at levere annonceindhold, så vi vil ikke savne dem meget.

    Vi vil opsætte en sekundær HTTP-server på routeren for at kunne tilbyde et gennemsigtigt pixelbillede som svaret på en hvilken som helst URL-anmodning. I forbindelse med DNS'en "forkert" -loesning vil dette få netværksklienterne til at anmode om indholdet fra vores interne pixel-server og få et tomt billede som reaktion.

    For at generere den ikke godkendte liste opretter vi en personlig liste sammen med to dynamisk downloadede lister. De dynamiske lister er MVPS-værtsfilen og Yoyo-domænelisten, sammen indeholder de en meget omfattende liste over annoncesider. Ved at udnytte disse lister er vi ansvarlige for blot at tilføje deltagerne af websteder, der ikke allerede findes i en af ​​dem, på vores personlige liste.

    Vi vil også opsætte en "hvidliste" for domæner, vi ikke ønsker at blive blokeret af nogen grund.

    Forudsætninger og forudsætninger

    • Tålmodighed ung en, dette er en lang læsning.
    • Denne procedure blev oprettet og testet på DD-WRT (v24pre-sp2 10/12/10 mini r15437). Som sådan skal du allerede have denne version eller senere installeret på din router for at bruge den. Flere oplysninger findes på DD-WRT-webstedet.
    • For at lette forklaringer skyldes det, at routeren er blevet restaureret til at være "fabriksindstillinger", eller at de anvendte indstillinger ikke er ændret fra deres "ud af kassen" forudindstillinger siden da.
    • Klientcomputeren bruger routeren som DNS-serveren (dette er standard).
    • Plads til JFFS (når du er i tvivl, anbefaler jeg at bruge mini version af DD-WRT).
    • Det antages, at dit netværk er * allerede indstillet, og at det er en klasse C (en som har et undernet på 255.255.255.0) som den sidste IP på det klasse C-netværk (x.y.z.254) Tildeles til pixel-server-programmet.
    • Villigheden til at installere winSCP.

    * Skriptet vil ikke kunne justere bloklisterne efter første gang til næste opdateringscyklus (3 dage).

    credits

    Opdatering: Særlig tak til "mstombs" for det store stykke C-kode uden hans arbejde alt dette ville ikke være muligt, "Oki" til at udarbejde Atheros-kompatible version og citat ;-) og "Nate" for at hjælpe med QA-ing.

    Mens der var en masse arbejde for at fuldføre denne procedure i min ende, blev inspirationen til det antændt af gutterne på DD-WRT forumet, og nogle af grundene til denne vejledning findes på "ad-blocking with DD- WRT revisited (simple) "," pixelserv uden Perl, uden nogen jffs / cifs / usb gratis "og" Flexion.Org Wiki on DNSmasq "såvel som andre.

    Lad os få revner

    Aktivér SSH til SCP-adgang

    Ved at aktivere SSH, giver vi os selv mulighed for at oprette forbindelse til routeren ved hjælp af SCP-protokollen. med det aktiveret, kan vi derefter bruge winSCP programmet til visuelt at navigere routerns mappestruktur (som vi vil se senere).

    For at gøre dette, skal du bruge webGUI til fanen "Tjenester". Find sektionen "Sikker skal" og klik på "Aktiver" -knappen for SSHd-indstillingen.

    Når det er gjort, skal webGUI se nedenfor, og du kan klikke på "Gem" (gør ikke gælder endnu).

    Aktivér JFFS

    For at gøre denne opsætning på en måde, der ville være stabil, reproducerbare og * være en "god internetborger", vil vi bruge JFFS til at gemme så mange af konfigurationerne som muligt. Der er andre måder at gøre dette på uden at aktivere JFFS, hvis du ikke kan på grund af pladsbegrænsninger, men de er ikke dækket her.

    * andre metoder har din router hente pixel-server eksekverbare og dynamiske lister hver gang scriptet køres. da dette lægger en belastning på serverne, der holder listerne og eksekverbare og det koster penge til nogen, forsøger denne metode at undgå det, hvis det er muligt.

    Hvis du ikke allerede ved, hvad der er JFFS, bør denne forklaring taget fra DD-WRTs wiki-post om JFFS rydde op:

    Journals Flash File System (JFFS) giver dig mulighed for at få et skrivbart Linux-filsystem på en DD-WRT-aktiveret router. Det bruges til at gemme brugerprogrammer som Ipkg og data i ellers utilgængelig flashhukommelse. Dette gør det muligt at gemme brugerdefinerede konfigurationsfiler, være vært på brugerdefinerede websider, der er gemt på routeren og mange andre ting, der ikke er i stand uden JFFS.

    For at aktivere JFFS på din router skal du gå til fanen Administration og finde JFFS-sektionen. nedenstående billede viser, hvor du ville finde dette afsnit på fanen "Administration".

    I JFFS2 Support sektionen skal du klikke på "Aktiver" radioknapperne for "JFFS2" og (når det vises) "Clean JFFS2" indstillingerne. Når du er valgt, skal du klikke på "Gem".

    Når indstillingerne er gemt, skal du genstarte routeren på fanen "Administration" ved at bruge knappen "Reboot Router". Dette vil anvende indstillingerne og udføre det nødvendige "format" for JFFS "partitionen".

    Når webGUI kommer tilbage fra genstart til fanen "Administration", skal du vente i yderligere et halvt minut og opdatere siden.

    Hvis det lykkes, skal du se, at din JFFS-mount har lidt ledig plads som i billedet.

    Pixelserveropsætning

    Download og hent anti-annoncepakken til dd-wrt zip-arkiv, der indeholder ekspeditionsbilledet til pixel-serveren (vi tager ikke kredit, undgår kun "hot linking"), ad-blocking scriptet (skrevet af dine virkelig) og det personlige- domæne-liste oprettet af "Mithridates Vii Eupator" og jeg.

    Det er på tide at få filerne til JFFS-mount på routeren. For at gøre dette skal du installere winSCP (det er en "næste -> næste -> finish" type af en opsætning) og åbne den.

    I hovedvinduet udfyldes oplysningerne som denne:

    Værtsnavn: din routerens IP (standard er 192.168.1.1)

    Havnummer: Forlad uændret kl. 22

    Brugernavn: rod (selvom du har ændret brugernavnet til webGUI, vil SSH-brugeren altid være * root *)

    Privat nøglefil: Forlad blank (dette er kun nødvendigt, når du opretter en nøgleparbaseret godkendelse, som vi ikke har)

    Filprotokol: SCP

    Vi skal også deaktivere "Lookup user group" som vist nedenfor (tak mstombs for at pege på dette), fordi winSCP forventer en fuldblæst Linux på den anden side, som DD-WRT's udviklere trods alt fremragende arbejde ikke kunne levere (primært fordi der simpelthen ikke er nok plads). Hvis du forlader dette markeret, vil du støde på skræmmende beskeder, når du tilslutter og gemmer redigerede filer.

    Vælg Advance, og fjern derefter markeringen "Opslag brugergrupper".

    Mens det er valgfrit, kan du vælge at gemme indstillingerne nu til senere brug. Hvis du vælger at gemme de indstillinger, der anbefales, anbefales det også (på trods af de direkte skrig fra den "sikkerhedsparanoide" asyl, som vi desecrerer selve eksistensen af ​​SSH), at du gemmer adgangskoden.

    Derefter ser dit hovedvindue ud på billedet, og alt hvad du skal gøre for at oprette forbindelse til routeren, er dobbeltklik på posten.

    Da dette er første gang, du vil oprette forbindelse til routeren, vil winSCP spørge, om du er villig til at stole på fingeraftryk på den anden side. Klik på "Ja" for at fortsætte.

    DD-WRTs udviklere har implementeret en Banner-velkomstmeddelelse med nogle oplysninger om den firmware, du har installeret. når du er rød, skal du klikke på afkrydsningsfeltet "Vis aldrig dette banner igen" og "Fortsæt".

    Når du er tilsluttet, skal du navigere til topmappen (AKA root "/") og derefter gå tilbage til "/ jffs", da det er det eneste permanent skrivbare sted på routers filsystem ("/ tmp" overlever ikke genstarter og resten er skrivebeskyttet).

    Opret en ny mappe ved at trykke på F7 eller højreklik på et tomt punkt, svæv over "Ny" og klik på "Directory".

    Navngiv den nye mappe "dns". vi opretter denne mappe for at holde tingene i jffs-biblioteket organiseret til fremtidig brug, og fordi vi for det meste ændrer, hvordan DNS-tjenesten virker.

    Kopier "pixelserv" og "disable-adds.sh" -filer fra anti-ads-pack-for-dd-wrt zip-arkivet ved at vælge dem (brug "insert" -tasten), trykke "F5" og derefter "Kopier ”.

    Bemærk: Hvis din router er Atheros-baseret (du kan tjekke dette på DD-WRT wiki) skal du bruge pixelserv_AR71xx fra Oki og inkluderet i pakken og omdøbe den til "pixelserv", inden du fortsætter.

    Når filerne er på routeren, skal vi gøre dem eksekverbare ved at vælge dem (brug igen "insert") højreklik og derefter "egenskaber".

    På egenskabsvinduet klik på "X" for "Owner" rækken. der vil give filerne eksekveringsrettigheder.

    Router indstillinger

    Nu hvor scenen er indstillet, kan vi fortælle routeren at køre adblokerende script ved opstart.
    For at gøre dette, gå i webGUI til fanen "Administration" og derefter på "Kommandoer" fanen.

    I tekstboksen "Kommandoer" skal du skrive scriptets placering som "/jffs/dns/disable_adds.sh" som i billedet og derefter klikke på "Gem startup".

    Hvis det lykkes, skal du se scriptet er blevet en del af routerens opstart som i ovenstående billede.

    Opsætning af listen over personlige blokerede domæner (valgfrit)

    Denne liste giver dig mulighed for at tilføje domæner til de ikke godkendte lister, hvis du opdager, at de to dynamiske lister ikke fanger noget.
    For at gøre dette er der to muligheder, og de arbejder sammen, så du kan bruge begge i henhold til, hvad der er mere praktisk for dig.

    Bemærk: Det syntaks er vigtig, Da vi rent faktisk opretter konfigurationsdirektiver, vil DNSMasq daemon (processen der er ansvarlig for DNS-navn til IP-oversættelser) bruge direkte. Som sådan vil en ukorrekt syntaks her medføre, at tjenesten går i stykker, og lad routeren ikke kunne løse IP-adresser for domænenavne (du er blevet adopteret).

    For at finde de lovovertrædende domænenavne til at blokere, kan du bruge vores vejledning "Find de hemmelige meddelelser i webstedsoverskrifter" som en primer. Trinnene til at finde navnene på annoncens domæner er stort set ens, kun i dette tilfælde søger du en adresse i stedet for en besked.

    Den første og ganske vist mere tilgængelig måde er at sætte listen i konfigurationsboksen "DNSMasq" i wegGUI. Dette er fordi at tilføje til denne liste kan man simpelthen få adgang til webGUI i stedet for at skulle gå "under emhætten" for at foretage ændringer.

    Gå til fanen "Tjenester", find afsnittet "DNSMasq" og find "Yderligere DNSMasq Options" tekstboks.

    I denne tekstboks indtastes de lister over domæner, som du vil blokere med syntaxen "address = / domain-name-to-block / pixel-server-ip" som vist på billedet nedenfor:

    Hvor i dette eksempel er "192.168.1.254" den IP, der genereres for pixel-serveren baseret på "netværksadressen" på dit LAN. Hvis din netværksadresse er noget andet end 192.168.1.x bliver du nødt til at justere adressen til pixel-serveren i overensstemmelse hermed.

    Når du er færdig, klik på "Gem" nederst på siden (gælder ikke endnu).

    Sekundet mulighed er at sammensætte listen over domæner, du vil blokere, til den "personlige-annoncer-list.conf" -fil, som mig og og "Mithridates Vii Eupator" har samlet. Denne fil er en del af zip-arkivet, du downloadede tidligere, og det er en god start for begge metoder.

    For at bruge det, brug om nødvendigt din favoritteksteditor til at justere pixel-serverens IP (de samme begrænsninger som ovenfor gælder her). Derefter skal du blot kopiere den til "/ jffs / dns" -kataloget, som du har de andre filer. Når det er derinde kan du bruge winSCP til at redigere det og tilføje domæner.

    Opsætning af hvidlisten

    Dette er listen over domæner, der udelades fra de dynamiske "værter" og "domæner" lister.

    Dette er nødvendigt, fordi blot blokering af nogle domæner forårsager websteder, der bruger dem til funktionsfejl. det mest bemærkelsesværdige eksempel er "google-analytics.com".

    Hvis vi blokerer det domæne, ændrer det ikke, at websteder, der bruger det, har din browser download et JavaScript, der kører på begivenheder som at forlade en side. Dette betyder, at for et sådant websted vil din browser forsøge at "ringe hjem" ved at kontakte google domænet, forstår ikke svaret, og du bliver nødt til at vente, indtil scriptet ikke længere kan fortsætte til næste side. Det er næppe en behagelig surfingoplevelse, og det er derfor, at ethvert domæne, der indeholder "google-analytics" og "googleadservices", er * hardcoded fritaget for filtrering.

    Denne liste er oprettet til dig med ovenstående omtale domæner, når scriptet køres for første gang under "/ jffs / dns" biblioteket.

    For at bruge hvidlisten skal du åbne filen med winSCP og **overligger til listen de domæner, du ønsker udelukket, mens du er forsigtig med ikke at forlade nogen tomme linjer (efterlader en tom linje vil slette alle domæner fra alle listerne).

    * Mens scriptet opretter hvidlisten med domænerne inden for det på første løb, insisterer det IKKE på deres gaver til fremtidige kørsler. så hvis du mener, at Google skal blokeres på trods af de ovennævnte problemer, kan du fjerne domænerne fra hvidlisten.

    ** Du skal indtaste de nye domæner, du ønsker i starten af ​​listen. Dette er på grund af en fejl med, hvordan bash fortolker nye linjer ... undskyld jeg har ikke noget arbejde for det endnu.

    Udførelse

    Dette er det, det er endelig tid til at påberåbe scriptet og se resultaterne ved blot at genstarte routeren.

    For at gøre dette fra webGUI, under fanen "Administration", gå tilbage til "Management", nederst på siden klik på "Reboot router" og vent på, at routeren skal komme op igen..

    Det kan tage et par minutter for scriptet at udføre sine opgaver for første gang.

    På WRT54Gx-typen af ​​routere vil du vide, hvornår scriptet er færdiggjort, fordi det vil blinke Cisco orange-lysdioden på forsiden af ​​routeren (andre routere skal have et lignende "fortællehale" tegn).

    Opdatering: Denne del blev * fjernet, efter at det blev opdaget at være en agnostisk funktion uden hardware.

    Da vi forsøger at se fraværet af elementer på nettet, anbefaler jeg blot at surfe på et par steder for at se påvirkningen.

    Men hvis du vil sikre dig, at proceduren var succesfuld, er det første debug-trin i afsnittet fejlfinding et godt sted at starte med.

    * Det er faktisk kommenteret, så du kan gendanne det, hvis du er sikker på, at det ikke vil medføre problemer med din opsætning.

    god fornøjelse!


    Fejlfinding

    Hvis du løber ind i problemer, er der et par ting, du kan gøre for at kontrollere, hvad der gik galt.

    1. Test, at annoncen domænet er løst til pixelserv IP.
      Du kan gøre dette ved at udstede kommandoen nslookup mod domænet "krænkende". For eksempel er "ad-emea.dubleclick.com" en del af de blokerede værter fra den personlige liste. Ved at udstede "nslookup ad-emea.dubleclick.com" i en kommandoprompt, skal resultatet se ud:

      Hvor et normalt unblocked svar ville se ud:

    2. Gør det igen.
      For at sikre dig, at intet med din router opsætning er i konflikt med annonceblokkonfigurationen, skal du gendanne routeren til "Fabriksindstillinger" og prøv igen. Når din succes er tilføjet dine tilpassede ændringer i håb om, at de ikke kolliderer igen.
    3. Sørg for, at din klient bruger routeren som DNS.
      Især når du bruger en VPN eller et netværk, der er mere komplekst end den normale router til computeropsætning, er det muligt, at din klientcomputer simpelthen ikke bruger routeren som dens DNS. Det er meget nemt at se i kommandoen ovenfor, hvilken DNS-server klienten bruger. Hvis IP'en ikke er den samme som routeren, har du fundet problemet.
    4. Ryd dine personlige maskiner DNS-cache.
      Dette skyldes, at ellers kan du stadig se annoncerne til det websted, du tester med, simpelthen fordi din computer allerede ved, hvordan man får annonceindholdet alene uden at konsultere DNS for det. På windows ville det være "ipconfig / flushdns".
    5. Luk browseren.
      Nogle gange holder browseren informationen cachelagret, så det kan ikke hjælpe at rydde DNS-cachen som vist ovenfor.
    6. Når du er i tvivl genstart.
      Nogle gange kan cacherne fortsætte, og den bedste måde at slippe af med dem er at genstarte. Start med routeren, og hvis problemet fortsætter, klientcomputeren.
    7. Brug syslog.
      Du kan aktivere routerens syslog-dæmon og derefter se på meddelelserne for at se, om scriptet møder eventuelle problemer ved at undersøge dets meddelelser. Også scriptet tilføjer nogle kommandoaliaser for at gøre fejlfinding lettere.
      For at gøre dette skal du gå til fanen "Tjenester" og aktivere syslog-dæmonen som i billedet nedenfor:

      Bemærk: "Fjernserveren" bruges, når du har en lyttende syslog-server på en anden maskine (som med kiwi) Hvis du ikke har en, skal du blot lade den være tom.

      Når aktiveret, kan du se fejlretningsmeddelelserne ved at se på / var / logs / beskeder fil i en terminal.
      * For at se ALLE meddelelser fra opstart kan du bruge "mere / var / log / messages".
      * For kun at se beskederne fra scriptet i logfilen, brug "clog" alias.
      * For at se beskederne som de kommer ind i realtid, brug "hale -f / var / log / messages" eller ved dens alias "tlog".
    8. Forstå scriptet.
      Selvom jeg har lavet denne YouTube-video til en ældre version af denne vejledning og scriptet, indeholder den stadig en masse sandheder og forklaringer, der gælder for, hvordan den nye og forbedrede version virker.
    Download anti-annoncer pakken.

    Må router guderne være til din fordel