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 esso 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 (ad esempio "core server" o VM).
Nota: Anche se io uso il metodo qui sotto sul mio router di casa, ho trovato ad-block per essere un'aggiunta eccellente ad esso, e mi raccomando di utilizzare entrambi i metodi in congiunzione. anche se non hai un router DD-WRT utilizzando il blocco degli annunci è più che sufficiente. In effetti, 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 state modificate 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 ha 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 esplorare visivamente la 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:
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 qui sotto mostra dove troverai questa sezione nella scheda "Amministrazione".
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 credito, evitando solo "hot linking"), lo script di blocco degli annunci (scritto da te stesso) e il personale- domain-list creato da "Mitridate Vii Eupator" e I.
È 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 alle 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 (questo è necessario solo quando crei un'autenticazione basata su una coppia di chiavi che non abbiamo)
Protocollo di file: SCP
Seleziona Avanzamento, quindi deseleziona "Cerca gruppi utenti".
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".
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"”.
Una volta che i file si trovano sul router, è necessario renderli eseguibili selezionandoli (utilizzare nuovamente "insert"), quindi fare clic con il pulsante destro del mouse su "properties".
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".
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 ciò, ci sono due opzioni, che funzionano in congiunzione in modo da poter utilizzare entrambe in base a ciò che è più conveniente per te.
Nota: Il la sintassi è importantePoiché stiamo effettivamente creando direttive di configurazione, il demone DNSMasq (il processo che è responsabile del nome DNS nelle traduzioni IP) verrà utilizzato direttamente. Pertanto, una sintassi errata causerà il crash del servizio e il router non sarà in grado di risolvere gli indirizzi IP per i nomi di dominio (è stato ammonito).
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:
Al termine, fare 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 poterlo utilizzare, se necessario, utilizzare l'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 attendere lo scadere dello script per passare 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 summenzionati, 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 le nuove linee … mi spiace di non avere ancora un problema.
Esecuzione
Questo è, è finalmente il momento di invocare lo script e vedere i risultati semplicemente riavviando il router.
Per fare ciò dalla webGUI, sotto la scheda "Amministrazione" tornare a "Gestione", in fondo alla pagina cliccare su "Riavvia router" e attendere 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 in 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 nella configurazione.
Godere!
Risoluzione dei problemi
Se incontri dei problemi ci sono un paio di cose che puoi fare per controllare 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 di nuovo.
- 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 la cancellazione della 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 esaminare i messaggi per vedere se lo script rileva 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 ha un server syslog in ascolto su un'altra macchina (come con Kiwi) se non ne hai uno, lascia semplicemente in bianco. 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.
Scarica il pacchetto anti-annunci.