Come rimuovere la pubblicità con Pixelserv su DD-WRT
Esistono numerosi modi per bloccare gli annunci nel tuo browser, ma cosa accadrebbe se potessi bloccarli sul router? Ecco come utilizzare il DD-WRT firmware e avvelenamento deliberato del 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-pubblicità con il più recente eseguibile del server pixel e un registro delle modifiche.
La prima domanda nella mente di tutti in questo momento è perché non usare semplicemente 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 ogni computer su cui stai eseguendo Chrome.
La risposta sta da qualche parte tra il sovraccarico ridotto di non dover insegnare a tutti gli utenti della tua rete su blocco degli annunci (Sto parlando con te mamma, sorella, nonna e segretaria d'ufficio) e la comodità di non essere disturbato su ogni computer che configuri. Ciò presuppone che ci saranno alcuni computer sulla rete su cui non configurerai il tuo ambiente personale (ad esempio server principali o VM).
Annuncio pubblicitarioNota : Anche se uso il metodo di seguito sul mio router di casa, ho trovato blocco degli annunci per essere un'aggiunta eccellente ad esso, e consiglio di usare entrambi i metodi insieme. anche se non hai un router DD-WRT usando blocco degli annunci è più loro abbastanza. In effetti, il programma mi piace così tanto, l'ho donato al suo sviluppatore e incoraggio tutti a farlo, per continuare lo sviluppo.
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à nomi di dominio di siti che sono responsabili esclusivamente della fornitura di contenuti pubblicitari, quindi non ci mancheranno molto.
Imposteremo un server HTTP secondario sul router per fornire un'immagine trasparente di un pixel, come risposta a qualsiasi richiesta URL. Insieme alla risoluzione errata del DNS, ciò farà sì che i client di rete richiedano il contenuto dal nostro server pixel interno e in risposta ottengano un'immagine vuota.
Per generare l'elenco non approvato, creeremo un elenco personale insieme a due elenchi scaricati dinamicamente. le liste dinamiche sono le MVPS file host e il Elenco domini Yoyo , insieme detengono un elenco molto ampio di siti pubblicitari. Sfruttando questi elenchi, ci rimane la responsabilità di aggiungere semplicemente il delta dei siti che non sono già in uno di essi, nel nostro elenco personale.
Imposteremo anche una whitelist per i domini che non vogliamo essere bloccati per nessun motivo.
Prerequisiti e presupposti
- Pazienza giovane, questa è una lettura lunga.
- Questa procedura è stata creata e testata su DD-WRT (v24pre-sp2 10/12/10 mini r15437 ), in quanto tale dovresti già avere questa versione o una versione successiva installata sul tuo router per usarla. Ulteriori informazioni sono finite sul Sito DD-WRT .
- Per semplicità di spiegazione, si presume che il router sia stato ripristinato ai suoi valori predefiniti di fabbrica o che le impostazioni utilizzate non siano cambiate rispetto alle preimpostazioni predefinite da allora.
- Il computer client utilizza il router come server DNS (questa è l'impostazione predefinita).
- Spazio per JFFS (in caso di dubbio, consiglio di utilizzare il mini versione di DD-WRT).
- Si presume che la tua rete sia * già impostata e che sia una classe C (una che ha una sottorete di 255.255.255.0) come ultimo IP su quella rete di classe C (x.y.z. 254 ) verrà assegnato al programma pixel-server.
- La volontà di installare winSCP .
*Lo script non sarà in grado di modificare gli elenchi di blocchi dopo la prima esecuzione fino al successivo ciclo di aggiornamento (3 giorni).
Crediti
Aggiornare : Un ringraziamento speciale a mstombs per l'ottimo pezzo di codice C senza il suo lavoro tutto questo non sarebbe stato possibile, Oki per aver compilato la versione compatibile con Atheros e citazione ;-) e Nate per l'aiuto con il QA-ing.
Annuncio pubblicitarioSebbene ci sia stato molto lavoro per perfezionare questa procedura da parte mia, l'ispirazione è stata innescata dai ragazzi del forum DD-WRT e alcune delle basi di questa guida possono essere trovate su 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.
Diamoci da fare
Abilita SSH per l'accesso SCP
Abilitando SSH, ci diamo a nostra volta la possibilità di connetterci al router utilizzando 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ò, utilizzando la webGUI, vai alla scheda Servizi. Trova la sezione Secure Shell e fai clic sul pulsante di opzione Abilita per l'impostazione SSHd.
Una volta fatto, la webGUI dovrebbe apparire come sotto e puoi fare clic su Salva ( non farlo applicare ancora).
Abilita JFFS
Per realizzare questa configurazione in un modo che sarebbe stabile , riproducibile e *essere un buon cittadino di Internet, utilizzeremo 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 trattati qui.
Annuncio pubblicitario*altri metodi prevedono che il router scarichi l'eseguibile del server pixel e gli elenchi dinamici ogni volta che viene eseguito lo script. poiché ciò mette a dura prova i server che contengono le liste e gli eseguibili e questo costa denaro a qualcuno, questo metodo cerca di evitarlo se possibile.
Se non sai già cos'è JFFS, questa spiegazione, tratta da Voce wiki di DD-WRT su JFFS dovrebbe chiarire le cose:
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.
Per abilitare JFFS sul tuo router, vai alla scheda Amministrazione e trova la sezione JFFS. l'immagine sotto mostra dove si trova questa sezione all'interno della scheda Amministrazione.
Nella sezione Supporto JFFS2, fare clic sui pulsanti di opzione Abilita per JFFS2 e (quando vengono visualizzati) sulle impostazioni Pulisci JFFS2. Una volta selezionato, fai clic su Salva.
Quando le impostazioni sono state salvate, sempre nella scheda Amministrazione, riavviare il router utilizzando il pulsante Riavvia Router. Questo applicherà le impostazioni ed eseguirà il formato necessario della partizione JFFS.
Quando la webGUI torna dal riavvio alla scheda Amministrazione, attendi ancora mezzo minuto e aggiorna la pagina.
Annuncio pubblicitario
In caso di successo, dovresti vedere che la tua 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 stiamo prendendo credito, evitando solo hot link), lo script di blocco degli annunci (scritto dal sottoscritto) e il dominio personale- elenco creato da Mitridate Vii Eupator e I.
È il momento di inserire i file nel supporto JFFS sul router. per farlo, installa winSCP (è un tipo successivo -> successivo -> fine di un'impostazione) e aprirlo.
Nella finestra principale, inserisci le informazioni in questo modo:
Nome host: l'IP del router (il valore predefinito è 192.168.1.1)
Numero 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 chiave privata: lascia vuoto (questo è necessario solo quando crei un'autenticazione basata su coppia di chiavi che non abbiamo)
Protocollo file: SCP
Annuncio pubblicitario
Abbiamo anche bisogno di disabilitare il gruppo utenti Lookup come mostrato di seguito (grazie mstombs per averlo sottolineato) perché winSCP si aspetta un Linux completo dall'altra parte che gli sviluppatori di DD-WRT, nonostante tutto l'ottimo lavoro, non sono stati in grado di fornire (principalmente perché semplicemente non c'è abbastanza spazio). Se lo lasci selezionato, incontrerai messaggi spaventosi quando ti connetti e salvi i file modificati.
Seleziona Avanzate, quindi deseleziona Cerca gruppi di utenti.
Sebbene sia facoltativo, puoi scegliere di salvare le impostazioni ora per un uso successivo. Se si sceglie di salvare le impostazioni consigliate, è anche consigliabile (nonostante le grida clamorose dell'asilo paranoico di sicurezza che stiamo dissacrando l'esistenza stessa di SSH) di salvare la password.
Quindi la tua finestra principale apparirà come nell'immagine e tutto ciò che dovrai fare per connetterti al router è fare doppio clic sulla voce.
Poiché questa è la prima volta che ti connetterai al router, winSCP ti chiederà se sei disposto a fidarti dell'impronta digitale dell'altro lato. Fare 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 su Continua.
Una volta connesso, vai alla cartella di livello superiore (AKA root /) e poi torna a /jffs poiché è l'unico posto scrivibile in modo permanente sul filesystem del router (/tmp non sopravvive ai riavvii e il resto viene letto- solo).
Annuncio pubblicitario
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 modo in cui funziona il servizio DNS.
Copia i file pixelserv e disable-adds.sh dall'archivio zip anti-ads-pack-for-dd-wrt, selezionandoli (usa il tasto di inserimento), premendo F5 e poi Copia.
Nota: se il tuo router è basato su Atheros (puoi verificarlo sul DD-WRT wiki ) dovrai utilizzare il pixelserv_AR71xx fornito da Oki e incluso nel pacchetto e rinominarlo in pixelserv prima di continuare.
Una volta che i file sono sul router, dobbiamo renderli eseguibili selezionandoli (usa ancora inserisci) tasto destro e poi proprietà.
Nella finestra delle proprietà fare clic sulla X per la riga Proprietario. che darà i permessi di esecuzione dei file.
Impostazioni del router
Annuncio pubblicitarioOra che lo scenario è pronto, possiamo dire al router di eseguire lo script di blocco degli annunci all'avvio.
Per fare ciò, nella webGUI vai alla scheda Amministrazione e poi alla scheda Comandi.
Nella casella di testo Comandi scrivi la posizione dello script come /jffs/dns/disable_adds.sh, come nell'immagine e quindi fai clic su Salva avvio.
In caso di successo, dovresti vedere che lo script è diventato parte dell'avvio del router come nell'immagine sopra.
Configurazione dell'elenco dei domini bloccati personali (facoltativo)
Questo elenco ti consente di aggiungere domini agli elenchi non approvati, se trovi che i due elenchi dinamici non rilevano qualcosa.
Per fare ciò, ci sono due opzioni e funzionano insieme, quindi puoi usarle entrambe in base a ciò che è più conveniente per te.
Nota: Il la sintassi è importante , Poiché stiamo effettivamente creando direttive di configurazione che il demone DNSMasq (il processo responsabile delle traduzioni da nome DNS a IP) utilizzerà direttamente. Pertanto, una sintassi errata qui causerà l'arresto anomalo del servizio e lascerà il router incapace di risolvere gli indirizzi IP per i nomi di dominio (sei stato ammonito).
Per trovare i nomi di dominio offensivi da bloccare potresti voler utilizzare il nostro Trova i messaggi segreti nelle intestazioni del sito web guida come primer. 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.
Annuncio pubblicitarioIl primo e certamente il modo più accessibile è inserire l'elenco nella casella di configurazione DNSMasq nella wegGUI. Questo perché per aggiungere a questo elenco 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 lì trova la casella di testo Additional DNSMasq Options.
In questa casella di testo inserisci gli elenchi di domini che vuoi bloccare con la sintassi address=/domain-name-to-block/pixel-server-ip come mostrato nell'immagine qui sotto:
Dove in questo esempio 192.168.1.254 è l'IP che viene generato per il pixel-server in base all'indirizzo di rete della tua LAN. Se il tuo indirizzo di rete è diverso da 192.168.1.x dovrai regolare di conseguenza l'indirizzo per il pixel-server.
Al termine, fai clic su Salva nella parte inferiore della pagina (non applicare ancora).
Il secondo l'opzione è di aggiungere l'elenco dei domini che si desidera bloccare al file personal-ads-list.conf che io e Mithridates Vii Eupator abbiamo assemblato. Questo file fa parte dell'archivio zip scaricato in precedenza ed è un ottimo inizio per entrambi i metodi.
Annuncio pubblicitarioPer usarlo, se necessario, usa il tuo editor di testo preferito per regolare l'IP del pixel-server (gli stessi vincoli di cui sopra si applicano qui). Quindi copialo semplicemente nella directory /jffs/dns come hai gli altri file. Una volta che è lì puoi usare winSCP per modificarlo e aggiungere domini.
Configurazione della whitelist
Questo è l'elenco dei domini che verranno omessi dagli elenchi di host dinamici e domini.
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 utilizzano facciano scaricare dal browser un JavaScript che viene eseguito su eventi come l'abbandono di una pagina. Ciò significa che per un sito del genere il tuo browser proverà a chiamare home contattando il dominio google, non capirà la risposta e dovrai attendere il timeout dello script per passare alla pagina successiva. Non è certo un'esperienza di navigazione piacevole ed è per questo che qualsiasi dominio contenente google-analytics e googleadservices è *hardcoded esente dal filtraggio.
Questo elenco viene creato per te con i domini sopra menzionati, quando lo script viene eseguito per la prima volta, nella directory /jffs/dns.
Per utilizzare la whitelist, apri il file con winSCP e ** perpendi alla lista i domini che si vogliono escludere, facendo attenzione a non lasciare nessuna riga vuota (lasciando una riga vuota si cancelleranno tutti i domini da tutte le liste).
Annuncio pubblicitario
*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 suddetti problemi, puoi rimuovere i domini dalla whitelist.
**Devi inserire i nuovi domini che desideri all'inizio della lista. Ciò è dovuto a un bug nel modo in cui bash interpreta le nuove righe... mi dispiace, non ho ancora una soluzione per questo.
Esecuzione
Ci siamo, è finalmente arrivato il momento di invocare lo script e vedere i risultati semplicemente riavviando il router.
Per farlo dalla webGUI, nella scheda Amministrazione torna su Gestione, in fondo alla pagina clicca su Riavvia router e attendi che il router si riattivi.
Potrebbero essere necessari un paio di minuti prima che lo script esegua i suoi compiti per la prima volta.
Sul tipo di router WRT54Gx, saprai quando lo script avrà terminato l'esecuzione perché lo farà far lampeggiare il LED arancione Cisco sulla parte anteriore del router (altri router dovrebbero avere un segno di coda simile).
Annuncio pubblicitarioAggiornamento: questa parte è stata *rimossa dopo che è stata scoperta essere una funzionalità non indipendente dall'hardware.
Poiché stiamo cercando di vedere l'assenza di elementi sul web, consiglio semplicemente di navigare in un paio di siti per vedere l'effetto.
Tuttavia, se vuoi assicurarti che la procedura sia andata a buon fine, il primo passaggio di debug nella sezione di risoluzione dei problemi è un ottimo punto di partenza.
*In realtà è commentato in modo che tu possa ripristinarlo se sei sicuro che non causerà problemi sulla tua configurazione.
Divertiti!
Risoluzione dei problemi
Se riscontri problemi, ci sono un paio di cose che puoi fare per verificare cosa è andato storto.
- Verificare che il dominio dell'annuncio sia risolto nell'IP di pixelserv.
Puoi farlo emettendo il comando nslookup contro il dominio offensivo. Ad esempio ad-emea.dubleclick.com fa parte degli host bloccati dall'elenco personale. Emettendo nslookup ad-emea.dubleclick.com in un prompt dei comandi, il risultato dovrebbe essere simile a:
Dove dovrebbe apparire una normale risposta sbloccata:
- Fallo.
Per assicurarti che nulla con la configurazione del tuo router sia in conflitto con la configurazione del blocco degli annunci, ripristina il router alle impostazioni di fabbrica e riprova. Una volta che hai avuto successo, aggiungi le tue modifiche personalizzate nella speranza che non si scontrino di nuovo. - Assicurati che il tuo client utilizzi il router come DNS.
Soprattutto quando si utilizza una VPN o una rete più complessa della normale configurazione da router a computer, è possibile che il computer client semplicemente non utilizzi il router come DNS. È molto facile vedere nel comando sopra qual è il server DNS utilizzato dal client, se l'IP non è lo stesso del router, hai trovato il problema. - Svuota la cache DNS delle tue macchine personali.
Questo perché altrimenti potresti ancora vedere gli annunci sul sito con cui stai testando, semplicemente perché il tuo computer sa già come ottenere il contenuto dell'annuncio da solo senza consultare il DNS per esso. Su Windows questo sarebbe ipconfig /flushdns. - Chiudi il browser.
A volte il browser conserva le informazioni nella cache, quindi svuotare la cache DNS come mostrato sopra non aiuta. - In caso di dubbio riavviare.
A volte le cache possono persistere e il modo migliore per sbarazzarsene è riavviare. Inizia con il router e, se il problema persiste, il computer client. - Usa syslog .
Puoi attivare il demone syslog del router e poi guardare i messaggi per vedere se lo script incontra dei problemi, esaminando i suoi messaggi. Inoltre lo script aggiunge alcuni alias di comando per rendere più semplice il debug.
Per fare ciò vai alla scheda Servizi e abilita il demone syslog come nell'immagine qui sotto:
Nota: il server remoto viene utilizzato quando si dispone di un server syslog in 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/messaggi file in a terminale .
*Per vedere TUTTI i messaggi dall'avvio puoi usare più /var/log/messages.
*Per vedere solo i messaggi dello script nel log usa l'alias clog.
*Per vedere i messaggi mentre arrivano, in tempo reale, usa tail -f /var/log/messages o dal suo alias tlog. - Comprendi il copione.
Anche se ho fatto questo video di YouTube per una versione precedente di questa guida e dello script, contiene ancora molte verità e spiegazioni applicabili al funzionamento della versione nuova e migliorata.
Possano gli dei del router essere a tuo favore
LEGGI SUCCESSIVO- & rsaquo; Come raccogliere in remoto gli eventi del server utilizzando Syslog
- & rsaquo; Monitoraggio della versione con Subversion (SVN) per principianti
- & rsaquo; Come installare software aggiuntivo sul router di casa (DD-WRT)
- & rsaquo; Come accedere alle tue macchine utilizzando i nomi DNS con DD-WRT
- & rsaquo; Trasforma il tuo router di casa in un router super potente con DD-WRT
- & rsaquo; Come potenziare il segnale della rete Wi-Fi e aumentare la portata con DD-WRT
- & rsaquo; Libera ancora più potenza dal tuo router di casa con DD-WRT Mod-Kit
- › Come trovare il tuo Spotify Wrapped 2021