Oversikt
Oppdater: Guide oppdatert for å reflektere tilbakemeldingen fra kommentatorer og oppdaterte anti-annonsepakken med den nyere piksel-serveren kjørbar og en changelog.
Det første spørsmålet om alles sinn akkurat nå er "hvorfor ikke bare bruk ad-blokk?"
For mange mennesker er det ganske enkelt ikke en grunn, spesielt med Chrome's nye evne til å replikere utvidelsene du bruker til hver datamaskin du kjører krom på.
Svaret ligger et sted mellom det reduserte overheadet av å ikke lære alle brukerne på nettverket ditt om ad-blokk (jeg snakker med deg mor, sis, bestemor og kontorsekretær) og det praktiske å ikke bli plaget med det på hver datamaskin du konfigurerer. Det antas at det kommer til å være noen datamaskiner på nettverket ditt at du ikke skal konfigurere ditt personlige miljø på (for eksempel "kjerne servere" eller VM).
Merk: Selv om jeg bruker metoden nedenfor på min hjemmebryter, fant jeg ad-blokk for å være et utmerket tillegg til det, og jeg anbefaler å bruke begge metodene i forbindelse. også hvis du ikke har en DD-WRT-ruter som bruker ad-blokk, er det mer dem nok. Faktisk, jeg liker programmet så mye, jeg donerte til utvikleren sin, og jeg oppfordrer alle til å gjøre det for å holde utviklingen gått.
Hvordan virker det?
I hovedsak fungerer dette ved å forsøke å forbytte DNS-en vår for å returnere en bestemt IP for domener i en ikke-godkjent liste. Denne ikke godkjente listen inneholder domenenavn på nettsteder som er ansvarlige utelukkende for å levere annonseinnhold, så vi vil ikke savne dem mye.
Vi vil konfigurere en sekundær HTTP-server på ruteren for å betjene et gjennomsiktig en pikselbilde, som svaret for en hvilken som helst URL-forespørsel. I forbindelse med DNS-feilen "feil" -løsning vil dette føre til at nettverksklienterne ber om innholdet fra vår interne pixel-server og får et tomt bilde som svar.
For å generere den ikke godkjente listen, oppretter vi en personlig liste sammen med to dynamisk nedlastede lister. De dynamiske lister er MVPS-vertsfilen og Yoyo-domenelisten, sammen har de en svært omfattende liste over annonsesider. Ved å utnytte disse lister, har vi ansvaret for bare å legge til deltaet på nettsteder som ikke allerede er i en av dem, i vår personlige liste.
Vi vil også sette opp en "hvitliste" for domener vi ikke vil bli blokkert av noen grunn.
Forutsetninger og forutsetninger
- Tålmodighet ung, dette er en lang lesning.
- Denne prosedyren ble opprettet og testet på DD-WRT (v24pre-sp2 10/12/10 mini r15437). Som sådan bør du allerede ha denne versjonen eller senere installert på ruteren din for å bruke den. Mer informasjon er over på DD-WRT-siden.
- For å forenkle forklaringer skyldes det at ruteren har blitt gjenopprettet til det er "fabrikkinnstillinger" eller at innstillingene som er brukt, ikke er endret fra forhåndsinnstillingene "ut av boksen" siden da.
- Klientmaskinen bruker ruteren som DNS-serveren (dette er standard).
- Plass til JFFS (når du er i tvil, anbefaler jeg at du bruker mini versjon av DD-WRT).
- Det antas at nettverket ditt er * allerede satt og at det er en klasse C (en som har et delnett på 255.255.255.0) som den siste IP på det klasse C-nettverket (x.y.z. 254) vil bli tildelt for piksel-serverprogrammet.
- Villigheten til å installere winSCP.
* Skriptet vil ikke kunne justere blokklister etter første gang til neste oppdateringsperiode (3 dager).
studiepoeng
Oppdater: Spesiell takk til "mstombs" for det store stykket C-kode uten sitt arbeid alt dette ville ikke være mulig, "Oki" for å kompilere Atheros-kompatible versjonen og sitatet;-) og "Nate" for å hjelpe med QA-ing.
Mens det var mye arbeid for å perfeksjonere denne prosedyren på slutten, ble inspirasjonen for den antatt av gutta over på DD-WRT forumet, og noen av grunnene til denne veiledningen kan bli funnet på "ad-blokkering med DD- WRT revisited (simple) "," pixelserv uten Perl, uten noen jffs / cifs / usb gratis "og" Flexion.Org Wiki på DNSmasq ", så vel som andre.
Lar deg sprekke
Aktiver SSH for SCP-tilgang
Ved å aktivere SSH, gir vi oss selv muligheten til å koble til ruteren ved hjelp av SCP-protokollen. Med det aktiverte, kan vi da bruke winSCP-programmet til å navigere visuelt i rutestrukturen til ruteren (som vi vil se senere).
For å gjøre dette, bruk webGUI, gå til "Tjenester" -fanen. Finn "Sikkert skall" -delen og klikk på "Aktiver" -knappen for SSHd-innstillingen.
Når det er gjort, må webGUI se nedenfor og du kan klikke på "Lagre" (ikke gjelder ennå).
Aktiver JFFS
For å gjøre dette oppsettet på en måte som ville være stabil, reproduserbar og * være en "god Internett-borger", vil vi bruke JFFS til å lagre så mye av konfigurasjonene som mulig.Det finnes andre måter å gjøre dette på uten å aktivere JFFS, hvis du ikke kan på grunn av begrensninger i rommet, men de er ikke dekket her.
* andre metoder har ruteren din laste ned pixel-serveren kjørbare og dynamiske lister hver gang skriptet kjøres. da dette legger en belastning på serverne som holder lister og kjørbare og dette koster penger til noen, forsøker denne metoden å unngå det hvis det er mulig.
Hvis du ikke allerede vet hva som er JFFS, bør denne forklaringen, tatt fra DD-WRTs wiki-oppføring om JFFS, rydde opp ting:
The Journaling Flash File System (JFFS) allows you to have a writable Linux File System on a DD-WRT enabled router. It is used to store user programs like Ipkg and data into otherwise inaccessible flash memory. This allows you to save custom configuration files, host custom Web pages stored on the router and many other things not capable without JFFS.
For å aktivere JFFS på ruteren din, gå til "Administrasjon" -fanen og finn JFFS-delen. bildet nedenfor viser hvor du finner denne delen i kategorien Administrasjon.
Oppsett av piksel server
Last ned og hent ut anti-annonsepakken for dd-wrt zip-arkiv som inneholder kjørelisten for eksempelserveren (vi tar ikke kreditt, bare unngår "hot linking"), ad-blokkeringskriptet (skrevet av deg selv) og den personlige domeneliste opprettet av "Mithridates Vii Eupator" og I.
Det er på tide å få filene til JFFS-monteringen på ruteren. For å gjøre dette, installer winSCP (det er en "next -> next -> finish" type et oppsett) og åpne det.
I hovedvinduet fyller du inn informasjonen slik:
Vertsnavn: ruteren din IP (standard er 192.168.1.1)
Havnummer: La uendret være klokken 22
Brukernavn: rot (selv om du endret brukernavnet for webGUI, vil SSH-brukeren alltid være * root * )
Privat nøkkelfil: la være tom (dette er bare nødvendig når du oppretter en nøkkelparbasert godkjenning som vi ikke har)
Fil protokoll: SCP
Velg Advance, og fjern deretter merket "Oppsøk brukergrupper".
Kopier "pixelserv" og "disable-adds.sh" -filene fra anti-ads-pack-for-dd-wrt zip-arkivet ved å velge dem (bruk "insert" -tasten), trykke "F5" og deretter "Kopier”.
Når filene er på ruteren, må vi gjøre dem kjørbare ved å velge dem (igjen bruk "insert") høyreklikk deretter "egenskaper".
Ruterinnstillinger
Nå som scenen er satt, kan vi fortelle ruteren å kjøre ad-blokkeringskriptet ved oppstart. For å gjøre dette, gå i webGUI til "Administrasjon" -fanen og deretter på "Kommandoer" -fanen.
Sette opp listen Personlige blokkerte domener (Valgfritt)
Denne listen lar deg legge til domener på de ikke godkjente lister, hvis du finner ut at de to dynamiske lister ikke fanger noe. For å gjøre dette, er det to alternativer, og de jobber sammen, slik at du kan bruke begge etter hva som er mer praktisk for deg.
Merk: De syntaks er viktig, Siden vi faktisk oppretter konfigurasjonsdirektiver som DNSMasq daemon (prosessen som er ansvarlig for DNS-navn til IP-oversettelser), vil bruke direkte. Som sådan vil feil syntaks her føre til at tjenesten krasjer og lar ruteren ikke klare å løse IP-adresser for domenenavn (du har blitt admonished).
For å finne de krenkende domenenavnene for å blokkere, kan du bruke guiden "Finn de hemmelige meldingene i websideoverskrifter" som en grunnleggende. Fremgangsmåten for å finne navnene på annonsedomenene er praktisk talt det samme, bare det er i dette tilfellet du leter etter en adresse i stedet for en melding.
Den første og admittedly mer tilgjengelig måte er å sette listen inn i "DNSMasq" konfigurasjonsboksen i veienGUI. Dette er fordi å legge til denne listen kan man bare få tilgang til webGUI i stedet for å måtte gå "under hetten" for å gjøre endringer.
Gå til kategorien "Tjenester", finn "DNSMasq" -delen, og finn tekstboksen "Ytterligere DNSMasq-alternativer".
I denne tekstboksen skriver du inn lister over domener som du vil bli blokkert med syntaksen "adresse = / domenenavn-til-blokk / pixel-server-ip" som vist på bildet nedenfor:
Når du er ferdig, klikker du på "Lagre" nederst på siden (gjelder ikke ennå).
Den andre Alternativet er å sammensatte listen over domener du vil blokkere, til filen "personal-ads-list.conf" som jeg og Mithridates Vii Eupator har samlet. Denne filen er en del av zip-arkivet du lastet ned tidligere, og det er en god start for begge metodene.
For å bruke den, bruk om nødvendig din favoritt tekstredigerer for å justere IP-piksel serveren (de samme begrensningene som ovenfor gjelder her). Så kopier det bare til "/ jffs / dns" katalogen som du har de andre filene. Når det er der inne kan du bruke winSCP til å redigere det og legge til domener.
Setter opp hvitelisten
Dette er listen over domener som vil bli utelatt fra de dynamiske "vertene" og "domener" -lister.
Dette er nødvendig fordi bare blokkering av noen domener forårsaker at nettsteder bruker dem til feil. Det mest bemerkelsesverdige eksempelet er "google-analytics.com".
Hvis vi blokkerer det domenet, vil det ikke endre det faktum at nettsteder som bruker det, må nettleseren laste ned et JavaScript som kjører på hendelser som å forlate en side. Dette betyr at for et slikt nettsted vil nettleseren din prøve å "ringe hjem" ved å kontakte google-domenet, forstår ikke svaret, og du må vente til skriptet går ut for å fortsette til neste side. Det er neppe en hyggelig surfingopplevelse, og det er derfor et hvilket som helst domene som inneholder "google-analytics" og "googleadservices" er * hardkodt unntatt fra filtrering.
Denne listen er opprettet for deg med de ovennevnte nevnte domener, når skriptet kjøres for første gang, under katalogen "/ jffs / dns".
For å bruke hvitelisten, åpne filen med winSCP og ** perpend til listen de domenene du vil ekskludere, mens du er forsiktig med å ikke la noen tomme linjer (etterlater en tom linje vil slette alle domenene fra alle lister).
* Mens skriptet oppretter whitelisten med domenene i den på første runde, insisterer det IKKE på gaver til fremtidige løp. så hvis du føler at Google burde bli blokkert til tross for de nevnte problemene, kan du fjerne domenene fra hvitelisten.
** Du må legge inn de nye domenene du vil ha i starten av listen. Dette er på grunn av en feil med hvordan bash tolker nye linjer … beklager, jeg har ikke noe arbeid for det ennå.
Henrettelse
Dette er det, det er endelig tid til å påkalle skriptet og se resultatene ved å bare starte ruteren på nytt.
For å gjøre dette fra webGUI, under "Administrasjon" -fanen, gå tilbake til "Management", nederst på siden, klikk på "Reboot router" og vent på at ruteren kommer tilbake.
Det kan ta et par minutter for skriptet å utføre sine oppgaver for første gang.
På WRT54Gx-typen rutere vil du vite når skriptet er ferdig med å kjøre fordi det vil blinke Cisco oransje-LED på forsiden av ruteren (andre rutere skal ha et lignende "tell tail" -skilt).
Oppdatering: Denne delen ble * fjernet etter at det ble oppdaget å være en ikke-hardware agnostisk funksjon.
Når vi prøver å se fraværet av elementer på nettet, anbefaler jeg bare å surfe til et par steder for å se påvirkningen.
Men hvis du vil sørge for at prosedyren var vellykket, er det første feilsøkingssteget i feilsøkingsdelen et flott sted å begynne med.
* Det er faktisk kommentert, slik at du kan gjenopprette det hvis du er sikker på at det ikke vil føre til problemer med oppsettet ditt.
Nyt!
Feilsøking
Hvis du får problemer, er det et par ting du kan gjøre for å sjekke hva som gikk galt.
-
Test at annonsedomenet er løst til Pixelserv IP. Du kan gjøre dette ved å utstede kommandoen nslookup mot "overveldende" domenet. For eksempel er "ad-emea.dubleclick.com" en del av de blokkerte vertene fra den personlige listen. Ved å utstede "nslookup ad-emea.dubleclick.com" i en ledetekst, bør resultatet se ut som:
Hvor et normalt ublockert svar vil se ut:
- Gjør over. For å være sikker på at ingenting med ruterenes oppsett er i konflikt med adblokkekonfigurasjonen, må du gjenopprette ruteren til "Fabrikkstandard" og prøve igjen. Når du har lykkes, legger du til dine egendefinerte endringer i håp om at de ikke kommer i konflikt igjen.
- Pass på at klienten bruker ruteren som DNS. Spesielt når du bruker et VPN eller et nettverk som er mer komplekst enn den normale ruteren til datamaskinoppsett, er det mulig at klientdatamaskinen din rett og slett ikke bruker ruteren som sin DNS. Det er veldig enkelt å se i kommandoen over hva som er DNS-serveren klienten bruker, hvis IP ikke er det samme som ruteren, har du funnet problemet.
- Fjern dine personlige maskiner DNS-cache. Dette er fordi ellers kan du fortsatt se annonsene til nettstedet du tester med, ganske enkelt fordi datamaskinen din allerede vet hvordan du får reklameinnholdet selv uten å konsultere DNS for det. På windows ville dette være "ipconfig / flushdns".
- Lukk nettleseren. Noen ganger holder nettleseren informasjonen cached, slik at det ikke hjelper å rydde DNS-bufferen som vist ovenfor.
- Når du er i tvil omstart. Noen ganger kan cachene vedvare og den beste måten å kvitte seg med er å starte på nytt. Start med ruteren og hvis problemet vedvarer, klientdatamaskinen.
-
Bruk syslog. Du kan aktivere rutens syslog-demon og deretter se på meldingene for å se om skriptet støter på problemer ved å undersøke meldingene. Også skriptet legger til noen kommandoaliaser for å gjøre debugging enklere. For å gjøre dette, gå til kategorien "Tjenester" og aktiver syslog-demonen som på bildet nedenfor:
Merk: "Ekstern server" brukes når du har en lytte-syslog-server på en annen maskin (som med kiwi) Hvis du ikke har en, bare la den stå tom. Når aktivert, kan du se feilsøkingsmeldingene ved å se på / var / logger / meldinger fil i en terminal. * For å se ALLE meldinger fra oppstart kan du bruke "mer / var / log / messages". * For å se bare meldingene fra skriptet i loggen, bruk "clog" alias. * Hvis du vil se meldingene når de kommer inn, bruker du i sanntid "hale -f / var / log / meldinger" eller ved aliaset "tlog".
- Forstå skriptet. Selv om jeg har laget denne YouTube-videoen for en eldre versjon av denne håndboken og skriptet, har den fortsatt mange sannheter og forklaringer som gjelder for hvordan den nye og forbedrede versjonen fungerer.
Last ned anti-annonsepakken.