Come rimuovere pubblicità con Pixelserv su DD-WRT
Esistono numerosi modi per bloccare la pubblicità nel tuo browser, ma cosa succede se potresti bloccarli sul router? Ecco come utilizzare il firmware DD-WRT e deliberare "avvelenamento DNS" per bloccare gli annunci per ogni dispositivo sulla rete.
Panoramica
Aggiornare: Guida aggiornata per riflettere il feedback fornito dai commentatori e aggiornato il pacchetto anti-annunci con il più recente eseguibile pixel-server e un log delle modifiche.
La prima domanda sulla mente di tutti in questo momento è "perché non usare semplicemente il blocco degli annunci?"
Per molte persone semplicemente non c'è una ragione, specialmente con la nuova capacità di chrome di replicare le estensioni che usi su tutti i computer su cui stai lavorando.
La risposta sta da qualche parte tra il ridotto sovraccarico di non dover insegnare a tutti gli utenti della tua rete sul blocco degli annunci (sto parlando con te, mamma, sorella, nonna e segretaria dell'ufficio) e la comodità di non essere disturbato con ogni computer che hai impostato. Ciò presuppone che ci saranno alcuni computer sulla tua rete che non hai intenzione di configurare il tuo ambiente personale (per esempio "core server" o VM).
Nota: Anche se uso il metodo qui sotto sul mio router di casa, ho trovato ad-block un'aggiunta eccellente ad esso, e consiglio di utilizzare entrambi i metodi insieme. anche se non hai un router DD-WRT usando il blocco degli annunci è più che sufficiente. Infatti, mi piace così tanto il programma, ho donato al suo sviluppatore e incoraggio tutti a farlo, per mantenere il suo sviluppo in corso.
Come funziona?
Essenzialmente questo funziona avvelenando deliberatamente il nostro DNS per restituire un IP specifico per i domini in un elenco non approvato. Questo elenco non approvato conterrà i nomi di dominio dei siti che sono responsabili esclusivamente della pubblicazione di contenuti pubblicitari, quindi non ci mancheranno molto.
Configureremo un server HTTP secondario sul router per fornire un'immagine trasparente a un pixel, come risposta per qualsiasi richiesta di URL. Insieme alla risoluzione "errata" del DNS, ciò farà sì che i client di rete richiedano il contenuto dal nostro server pixel interno e ottengano un'immagine vuota in risposta.
Per generare l'elenco non approvato, creeremo un elenco personale insieme a due elenchi scaricati in modo dinamico. gli elenchi dinamici sono il file host MVPS e l'elenco dei domini Yoyo, insieme contengono una lista molto ampia di siti pubblicitari. Sfruttando questi elenchi, abbiamo la responsabilità di aggiungere solo il delta di siti che non sono già in uno di essi, nella nostra lista personale.
Imposteremo anche una "lista bianca" per domini che non vogliamo essere bloccati per nessuna ragione.
Prerequisiti e ipotesi
- Pazienza giovane, questa è una lunga lettura.
- Questa procedura è stata creata e testata su DD-WRT (v24pre-sp2 10/12/10 mini r15437), come tale dovresti già avere questa versione o successiva installata sul tuo router per usarla. Ulteriori informazioni sono finite sul sito DD-WRT.
- Per ragioni di chiarezza, si presume che il router sia stato ripristinato alle sue "impostazioni di fabbrica" o che le impostazioni utilizzate non siano cambiate dai loro preset "out of the box" da allora.
- Il computer client utilizza il router come server DNS (questo è l'impostazione predefinita).
- Spazio per JFFS (in caso di dubbio, consiglio di usare il mini versione di DD-WRT).
- Si presume che la rete sia * già impostata e che sia una classe C (una che ha una sottorete di 255.255.255.0) come ultimo IP su tale rete di classe C (x.y.z.254Verrà assegnato per il programma pixel-server.
- La volontà di installare winSCP.
* Lo script non sarà in grado di regolare gli elenchi dei blocchi dopo la prima esecuzione fino al successivo ciclo di aggiornamento (3 giorni).
Titoli di coda
Aggiornare: Un ringraziamento speciale a "mstombs" per il grande pezzo di codice C senza il suo lavoro tutto questo non sarebbe possibile, "Oki" per compilare la versione compatibile Atheros e citare ;-) e "Nate" per aiutare con il QA-ing.
Mentre c'era molto lavoro per perfezionare questa procedura da parte mia, l'ispirazione per questo è stata accesa dai ragazzi sul forum DD-WRT e alcune delle basi di questa guida sono state trovate in "blocco degli annunci con DD- WRT rivisitato (semplice) "," pixelserv senza Perl, senza jffs / cifs / usb free "e" Flexion.Org Wiki su DNSmasq "così come altri.
Lasciamo scoppiare
Abilita SSH per l'accesso SCP
Abilitando SSH, a nostra volta ci diamo la possibilità di connetterci al router usando il protocollo SCP. con quello abilitato, possiamo quindi utilizzare il programma winSCP per navigare visivamente nella struttura delle cartelle del router (come vedremo in seguito).
Per fare ciò, usando la webGUI, vai alla scheda "Servizi". Trova la sezione "Secure shell" e fai clic sul pulsante di opzione "Enable" per l'impostazione SSHd.
Una volta fatto, la webGUI dovrebbe apparire come sotto e puoi cliccare su "Salva" (non si applicano ancora).
Abilita JFFS
Al fine di rendere questa installazione in un modo che sarebbe stabile, riproducibile e * essere un "buon cittadino di internet", useremo JFFS per memorizzare il maggior numero possibile di configurazioni. Ci sono altri modi per farlo senza abilitare JFFS, se non puoi a causa di limiti di spazio, ma non sono coperti qui.
* altri metodi hanno il tuo router scaricare l'eseguibile pixel-server e gli elenchi dinamici ogni volta che viene eseguito lo script. poiché questo mette a dura prova i server che tengono le liste e gli eseguibili e questo costa denaro a qualcuno, questo metodo cerca di evitarlo se possibile.
Se non sai già cosa sia JFFS, questa spiegazione, presa dalla voce wiki di DD-WRT su JFFS, dovrebbe chiarire le cose:
Il Journaling Flash File System (JFFS) consente di avere un file system Linux scrivibile su un router abilitato per DD-WRT. È usato per memorizzare programmi utente come Ipkg e dati in una memoria flash altrimenti inaccessibile. Ciò consente di salvare file di configurazione personalizzati, ospitare pagine Web personalizzate memorizzate sul router e molte altre cose non in grado di funzionare senza JFFS.
Per abilitare JFFS sul tuo router, vai alla scheda "Amministrazione" e trova la sezione JFFS. l'immagine qui sotto mostra dove troverai questa sezione nella scheda "Amministrazione".
Nella sezione Supporto JFFS2, fare clic sui pulsanti di opzione "Attiva" per "JFFS2" e (quando appare) sulle impostazioni "Pulisci JFFS2". Una volta selezionato, clicca su "Salva".
Quando le impostazioni sono state salvate, ancora nella scheda "Amministrazione", riavviare il router utilizzando il pulsante "Riavvia router". Questo applicherà le impostazioni ed eseguirà il "formato" necessario della "partizione" JFFS.
Quando il webGUI torna dal riavvio alla scheda "Amministrazione", attendi un ulteriore mezzo minuto e aggiorna la pagina.
In caso di successo, dovresti vedere che la montatura JFFS ha dello spazio libero come nell'immagine.
Configurazione del server Pixel
Scarica ed estrai il pacchetto anti-ads per l'archivio zip dd-wrt che contiene l'eseguibile pixel-server (non ci stiamo prendendo in considerazione, evitando solo "hot linking"), lo script di blocco degli annunci (scritto da te stesso) e il personale- elenco-dominio creato da "Mitridate Vii Eupator" e io.
È tempo di inserire i file nel supporto JFFS sul router. per fare questo, installa winSCP (è un "next -> next -> finish" tipo di un setup) e aprilo.
Nella finestra principale, inserisci le informazioni in questo modo:
Nome host: IP del router (l'impostazione predefinita è 192.168.1.1)
Numero di porta: lasciare invariato a 22
Nome utente: radice (anche se hai cambiato il nome utente per la webGUI, l'utente SSH sarà sempre * root *)
File di chiavi private: lascia vuoto (è necessario solo quando crei un'autenticazione basata su una coppia di chiavi che non abbiamo)
Protocollo di file: SCP
Abbiamo anche bisogno di disabilitare "Lookup user group" come mostrato di seguito (grazie a mstombs per averlo indicato) perché winSCP si aspetta un completo Linux dall'altra parte, che gli sviluppatori di DD-WRT, nonostante tutto il loro eccellente lavoro, non sono stati in grado di fornire (principalmente perché semplicemente non c'è abbastanza spazio). Se lo lasci selezionato, incontrerai messaggi spaventosi quando colleghi e salvi i file modificati.
Seleziona Avanzamento, quindi deseleziona "Cerca gruppi di utenti".
Mentre è facoltativo, puoi scegliere di salvare le impostazioni ora per un uso successivo. Se si sceglie di salvare le impostazioni raccomandate, si raccomanda anche (nonostante le grida dirette del manicomio "paranoico della sicurezza" che stiamo dissacrando l'esistenza stessa di SSH) che si salva la password.
Quindi la tua finestra principale apparirà nell'immagine e tutto quello che dovrai fare per connetterti al router è fare doppio clic sulla voce.
Poiché questa è la prima volta che ti connetti al router, winSCP ti chiederà se sei disposto a fidarti dell'impronta digitale dell'altro lato. Fai clic su "Sì" per continuare.
Gli sviluppatori di DD-WRT hanno implementato un messaggio di benvenuto Banner con alcune informazioni sul firmware che hai installato. una volta rosso, fai clic sulla casella di controllo "Non mostrare più questo banner" e "Continua".
Una volta connesso, naviga verso la cartella di primo livello (radice di AKA "/") e poi torna indietro a "/ jffs" poiché questo è l'unico posto permanentemente scrivibile sul filesystem del router ("/ tmp" non sopravvive ai riavvii e il resto sono di sola lettura).
Crea una nuova cartella, premendo F7 o facendo clic con il pulsante destro del mouse su un punto vuoto, passa con il mouse su "Nuovo" e fai clic su "Directory".
Assegna un nome alla nuova directory "dns". creiamo questa directory per mantenere le cose nella directory jffs organizzate per un uso futuro e perché stiamo principalmente cambiando il funzionamento del servizio DNS.
Copia i file "pixelserv" e "disable-adds.sh" dall'archivio zip anti-ads-pack-for-dd-wrt, selezionandoli (usa il tasto "insert"), premendo "F5" e poi "Copia" ”.
Nota: se il tuo router è basato su Atheros (puoi verificarlo sul wiki DD-WRT) dovrai usare gli pixelserv_AR71xx forniti da Oki e inclusi nel pacchetto e rinominarlo in "pixelserv" prima di continuare.
Una volta che i file sono sul router, dobbiamo renderli eseguibili selezionandoli (di nuovo usa "insert"), quindi fai clic con il tasto destro del mouse su "properties".
Nella finestra delle proprietà fai clic sulla "X" per la riga "Proprietario". che darà i permessi di esecuzione dei file.
Impostazioni del router
Ora che lo stage è impostato, possiamo dire al router di eseguire lo script di blocco degli annunci all'avvio.
Per fare ciò, nella webGUI andare sulla scheda "Amministrazione" e quindi sulla scheda "Comandi".
Nella casella di testo "Comandi" scrivi la posizione dello script come "/jffs/dns/disable_adds.sh", come nell'immagine e poi fai clic su "Salva avvio".
In caso di successo, dovresti vedere che lo script è diventato parte dell'avvio del router come nella foto sopra.
Impostazione dell'elenco dei domini personali bloccati (facoltativo)
Questo elenco ti consente di aggiungere domini agli elenchi non approvati, se trovi che i due elenchi dinamici non catturano qualcosa.
Per fare questo, ci sono due opzioni, e funzionano insieme in modo da poter usare entrambi in base a ciò che è più conveniente per te.
Nota: Il la sintassi è importante, Poiché stiamo effettivamente creando direttive di configurazione, il demone DNSMasq (il processo che è responsabile del nome DNS nelle traduzioni IP) verrà utilizzato direttamente. Pertanto, la sintassi errata causerà il crash del servizio e il router non sarà in grado di risolvere gli indirizzi IP per i nomi di dominio (siete stati ammoniti).
Per trovare i nomi di domini offensivi da bloccare, potresti utilizzare la nostra guida "Trova i messaggi segreti nelle intestazioni dei siti Web" come guida. I passaggi per trovare i nomi dei domini pubblicitari sono praticamente gli stessi, solo che in questo caso stai cercando un indirizzo invece di un messaggio.
Il primo e, ammettiamolo, il modo più accessibile è di mettere la lista nella casella di configurazione "DNSMasq" nel wegGUI. Questo perché per aggiungere a questa lista si può semplicemente accedere alla webGUI invece di dover andare "sotto il cofano" per apportare modifiche.
Vai alla scheda "Servizi", trova la sezione "DNSMasq" e trova la casella di testo "Opzioni DNSMasq aggiuntive".
In questa casella di testo inserisci gli elenchi dei domini che vuoi bloccare con la sintassi "address = / domain-name-to-block / pixel-server-ip" come mostrato nella figura seguente:
In questo esempio, "192.168.1.254" è l'IP generato per il server pixel in base all '"indirizzo di rete" della LAN. Se il tuo indirizzo di rete è qualcosa di diverso da 192.168.1.x dovrai modificare di conseguenza l'indirizzo per il pixel-server.
Al termine, fai clic su "Salva" nella parte inferiore della pagina (non si applicano ancora).
Il secondo l'opzione consiste nel comporre l'elenco dei domini che si desidera bloccare, nel file "personal-ads-list.conf" che io stesso e "Mitridate Vii Eupator" abbiamo assemblato. Questo file fa parte dell'archivio zip scaricato in precedenza ed è un ottimo inizio per entrambi i metodi.
Per usarlo, se necessario, usa il tuo editor di testo preferito per regolare l'IP del server pixel (qui si applicano gli stessi vincoli di cui sopra). Quindi copialo semplicemente nella directory "/ jffs / dns" dato che hai gli altri file. Una volta lì, puoi usare winSCP per modificarlo e aggiungere domini.
Impostazione della whitelist
Questa è la lista dei domini che saranno omessi dagli elenchi "host" e "domini" dinamici.
Ciò è necessario perché il semplice blocco di alcuni domini causa il malfunzionamento dei siti che li utilizzano. l'esempio più degno di nota è "google-analytics.com".
Se blocchiamo il suo dominio, non cambierà il fatto che i siti che lo usano, hanno il tuo browser scaricare un JavaScript che gira su eventi come uscire da una pagina. Ciò significa che per un sito di questo tipo il tuo browser proverà a "chiamare casa" contattando il dominio google, non capirà la risposta e dovrai aspettare che lo script scada per continuare alla pagina successiva. Non è certo una piacevole esperienza di navigazione ed è per questo che qualsiasi dominio contenente "google-analytics" e "googleadservices" è * esente da filtri.
Questo elenco viene creato per te con i domini di cui sopra, quando lo script viene eseguito per la prima volta, nella directory "/ jffs / dns".
Per utilizzare la lista bianca, apri il file con winSCP e **perpend alla lista i domini che vuoi escludere, facendo attenzione a non lasciare righe vuote (lasciando una riga vuota cancellerai tutti i domini da tutti gli elenchi).
* Mentre lo script crea la whitelist con i domini al suo interno alla prima esecuzione, NON insiste sui loro regali per le esecuzioni future. quindi, se ritieni che google debba essere bloccato nonostante i problemi di cui sopra, puoi rimuovere i domini dalla whitelist.
** Devi inserire i nuovi domini desiderati all'inizio della lista. Questo a causa di un bug con il modo in cui bash interpreta nuove righe ... mi spiace di non averne ancora una soluzione.
Esecuzione
Questo è, è finalmente il momento di invocare lo script e vedere i risultati semplicemente riavviando il router.
Per fare ciò dalla webGUI, nella scheda "Amministrazione" torna a "Gestione", in fondo alla pagina clicca su "Riavvia router" e attendi che il router ritorni.
Potrebbero essere necessari un paio di minuti prima che la sceneggiatura esegua i suoi compiti per la prima volta.
Sul tipo di router WRT54Gx, si saprà quando lo script ha terminato l'esecuzione perché lampeggerà il LED arancione Cisco sulla parte anteriore del router (altri router dovrebbero avere un segno simile "tell tail").
Aggiornamento: questa parte è stata * rimossa dopo che è stata rilevata una funzionalità non hardware agnostica.
Mentre stiamo cercando di vedere l'assenza di elementi sul web, ti consiglio semplicemente di navigare su un paio di siti per vedere l'effetto.
Tuttavia, se si vuole assicurarsi che la procedura abbia avuto successo, il primo passo di debug nella sezione di risoluzione dei problemi è un ottimo punto di partenza.
* In realtà è commentato in modo da poterlo ripristinare se è sicuro che non causerà problemi sulla configurazione.
Godere!
Risoluzione dei problemi
Se incontri dei problemi ci sono un paio di cose che puoi fare per verificare cosa è andato storto.
- Verifica che il dominio pubblicitario sia stato risolto sull'IP pixelserv.
Puoi farlo inviando il comando nslookup al dominio "offendente". Ad esempio, "ad-emea.dubleclick.com" fa parte degli host bloccati dall'elenco personale. Con l'emissione di "nslookup ad-emea.dubleclick.com" in un prompt dei comandi, il risultato dovrebbe essere simile a:
Dove dovrebbe apparire una normale risposta non bloccata: - Fare oltre.
Per assicurarsi che nulla con la configurazione del router sia in contrasto con la configurazione del blocco annunci, ripristinare il router su "Impostazioni predefinite" e riprovare. Una volta che hai avuto successo, aggiungi le modifiche personalizzate nella speranza che non si scontrino ancora. - Assicurati che il tuo client stia utilizzando il router come DNS.
Soprattutto quando si utilizza una rete VPN o una rete che è più complessa della normale configurazione da router a computer, è possibile che il proprio computer client stia semplicemente utilizzando il router come DNS. È molto facile vedere nel comando sopra quale è il server DNS che sta usando il client, se l'IP non è lo stesso del router, hai trovato il problema. - Cancella la cache DNS delle macchine personali.
Questo perché altrimenti potresti vedere gli annunci sul sito con cui stai testando, semplicemente perché il tuo computer sa già come ottenere i contenuti pubblicitari da solo senza consultare il DNS. Su Windows questo sarebbe "ipconfig / flushdns". - Chiudi il browser.
A volte il browser conserva le informazioni nella cache, quindi cancellare la cache DNS come mostrato sopra non aiuta. - In caso di dubbio riavviare.
A volte le cache possono persistere e il modo migliore per eliminarle è riavviare. Inizia con il router e se il problema persiste, il computer client. - Usa syslog.
È possibile attivare il daemon syslog del router e quindi osservare i messaggi per vedere se lo script riscontra problemi, esaminando i suoi messaggi. Inoltre lo script aggiunge alcuni alias di comando per facilitare il debugging.
Per fare questo vai alla scheda "Servizi" e abilita il demone syslog come nella seguente immagine:
Nota: il "Remote Server" viene utilizzato quando si dispone di un server syslog di ascolto su un'altra macchina (come con Kiwi) se non ne hai uno, lascia semplicemente vuoto.
Una volta abilitato, puoi vedere i messaggi di debug guardando il / var / log / messages file in un terminale.
* Per vedere TUTTI i messaggi dal boot-up puoi usare "more / var / log / messages".
* Per vedere solo i messaggi dallo script nel log usa l'alias "clog".
* Per vedere i messaggi mentre arrivano, in tempo reale, usa "tail -f / var / log / messages" o il suo alias "tlog". - Capire lo script.
Anche se ho realizzato questo video di YouTube per una versione precedente di questa guida e dello script, contiene ancora molte verità e spiegazioni applicabili a come funziona la versione nuova e migliorata.