Cara Hapus Iklan dengan Pixelserv di DD-WRT
Terdapat banyak cara untuk menyekat iklan dalam penyemak imbas anda, tetapi bagaimana jika anda boleh menyekatnya pada penghala? Inilah caranya menggunakan firmware DD-WRT dan sengaja "keracunan DNS" untuk menyekat iklan untuk setiap peranti pada rangkaian anda.
Gambaran keseluruhan
Kemas kini: Panduan dikemas kini untuk mencerminkan maklum balas yang disediakan oleh pengulas dan mengemas kini pek anti-iklan dengan lanjutan piksel-pelayan yang boleh dilaksanakan dan changelog.
Soalan pertama di minda semua orang sekarang adalah "mengapa tidak hanya menggunakan blok iklan?"
Kerana ramai orang di sana semata-mata bukan sebab, terutamanya dengan keupayaan baru chrome untuk meniru pelanjutan yang anda gunakan untuk setiap komputer yang anda sedang menjalankan krom.
Jawapannya terletak di suatu tempat di antara overhead yang dikurangkan tanpa perlu mengajar semua pengguna di rangkaian anda tentang blok iklan (saya bercakap dengan anda ibu, sis, nenek dan setiausaha pejabat) dan kemudahan tidak diganggu dengannya setiap komputer yang anda persediaan. Itu mengandaikan bahawa terdapat beberapa komputer di rangkaian anda yang anda tidak akan mengkonfigurasi persekitaran peribadi anda (contohnya "pelayan teras" atau VM).
Catatan: Walaupun saya menggunakan kaedah di bawah pada penghala rumah saya, saya dapati blok iklan menjadi tambahan yang bagus untuknya, dan saya mengesyorkan menggunakan kedua-dua kaedah bersama. juga jika anda tidak mempunyai router DD-WRT menggunakan blok iklan lebih banyak lagi. Sebenarnya, saya sangat menyukai program ini, saya menyumbangkan kepada pemajunya dan saya menggalakkan semua orang melakukannya, supaya ia terus berkembang.
Bagaimanakah ia berfungsi?
Pada dasarnya ini berfungsi dengan sengaja meracuni DNS kami untuk mengembalikan IP khusus untuk domain dalam senarai yang tidak disetujui. Senarai yang tidak diluluskan ini akan mengandungi nama domain tapak yang bertanggungjawab secara eksklusif untuk menyampaikan kandungan iklan, jadi kami tidak akan melewatkan mereka banyak.
Kami akan menyediakan pelayan HTTP sekunder pada penghala untuk memberikan imej piksel satu telus, sebagai jawapan untuk sebarang permintaan URL. Sempena resolusi DNS yang "salah", ini akan menyebabkan pelanggan rangkaian meminta kandungan dari pelayan pixel dalaman kami dan mendapatkan imej kosong sebagai tindak balas.
Untuk menjana senarai yang tidak diluluskan, kami akan membuat satu senarai peribadi bersama dua senarai dinamik yang dimuat turun. senarai dinamik adalah fail tuan rumah MVPS dan senarai domain Yoyo, bersama-sama mereka memegang senarai tapak iklan yang sangat luas. Dengan memanfaatkan senarai ini, kita dibiarkan dengan tanggungjawab hanya menambah delta tapak yang tidak ada dalam salah satu daripada mereka, dalam senarai peribadi kami.
Kami juga akan menyediakan "senarai putih" untuk domain yang kami tidak mahu disekat untuk apa-apa sebab.
Prasyarat dan andaian
- Kesabaran yang muda, inilah bacaan yang panjang.
- Prosedur ini dicipta dan diuji pada DD-WRT (v24pre-sp2 10/12/10 mini r15437), dengan itu anda sepatutnya mempunyai versi ini atau kemudian dipasang pada penghala anda untuk menggunakannya. Maklumat lanjut berakhir pada tapak DD-WRT.
- Untuk kemudahan penjelasan sake, ia diandaikan penghala telah dipulihkan kepada "default" kilang atau bahawa tetapan yang digunakan tidak berubah daripada pratet "keluar dari kotak" sejak itu.
- Komputer klien menggunakan penghala sebagai pelayan DNS (ini adalah lalai).
- Ruang untuk JFFS (apabila ragu-ragu, saya cadangkan menggunakan mini versi DD-WRT).
- Diandaikan bahawa rangkaian anda * telah ditetapkan dan bahawa ia adalah kelas C (satu yang mempunyai subnet 255.255.255.0) sebagai IP terakhir pada rangkaian kelas C (x.y.z.254) Akan ditugaskan untuk program pelayan-piksel.
- Kesediaan untuk memasang winSCP.
* Skrip tidak dapat menyesuaikan senarai blok selepas larian pertama hingga kitaran refresh seterusnya (3 hari).
Kredit
Kemas kini: Terima kasih kepada "mstombs" untuk sekeping kod C yang hebat tanpa karyanya semua ini tidak akan mungkin, "Oki" untuk menyusun versi dan kutipan Atheros yang serasi ;-) dan "Nate" untuk membantu dengan QA-ing.
Walaupun terdapat banyak kerja untuk menyempurnakan prosedur ini pada akhir saya, inspirasi untuk itu telah dinyalakan oleh orang-orang di forum DD-WRT dan beberapa asas panduan ini boleh didapati di "blok iklan dengan DD- WRT disemak semula (mudah) "," pixelserv tanpa Perl, tanpa sebarang jffs / cifs / usb free "dan" Flexion.Org Wiki di DNSmasq "serta lain-lain.
Mari dapatkan retak
Dayakan SSH untuk akses SCP
Dengan membolehkan SSH, kami seterusnya memberikan keupayaan untuk menyambung ke penghala menggunakan protokol SCP. dengan yang dibolehkan, kita boleh menggunakan program winSCP untuk menavigasi struktur folder router secara visual (seperti yang akan kita lihat kemudian).
Untuk melakukan ini, menggunakan webGUI, pergi ke tab "Perkhidmatan". Cari bahagian "Peti selamat" dan klik butang "Dayakan" radio untuk tetapan SSHd.
Setelah itu dilakukan, webGUI sepatutnya seperti di bawah dan anda boleh klik pada "Simpan" (jangan memohon lagi).
Dayakan JFFS
Untuk membuat persediaan ini dengan cara yang akan stabil, boleh direproduksi dan * menjadi "warganegara internet yang baik", kami akan menggunakan JFFS untuk menyimpan sebanyak mungkin konfigurasi yang mungkin. Terdapat cara lain untuk melakukan ini tanpa mengaktifkan JFFS, jika anda tidak dapat disebabkan oleh batasan ruang, tetapi mereka tidak dilindungi di sini.
* Kaedah lain mempunyai router anda memuat turun senarai pelayan eksekusi dan dinamik setiap kali skrip dijalankan. kerana ini meletakkan ketegangan pada pelayan yang memegang senarai dan boleh laku dan ini kos wang kepada seseorang, kaedah ini cuba untuk mengelakkannya jika mungkin.
Sekiranya anda belum tahu apa JFFS, penjelasan ini, yang diambil dari entri wiki DD-WRT tentang JFFS, harus menjelaskan perkara-perkara berikut:
Sistem Fail Flash Journaling (JFFS) membolehkan anda mempunyai Sistem Fail Linux yang boleh ditulis pada penghala DD-WRT yang dibolehkan. Ia digunakan untuk menyimpan program pengguna seperti Ipkg dan data ke memori kilat yang tidak boleh diakses. Ini membolehkan anda menjimatkan fail konfigurasi tersuai, laman web halaman tuan rumah yang tersimpan di penghala dan banyak perkara lain yang tidak mampu tanpa JFFS.
Untuk mendayakan JFFS pada penghala anda, pergi ke tab "Pentadbiran" dan cari bahagian JFFS. gambar di bawah menunjukkan di mana anda akan mencari bahagian ini dalam tab "Pentadbiran".
Dalam bahagian Sokongan JFFS2, klik butang "Dayakan" radio untuk "JFFS2" dan (apabila ia muncul) tetapan "Bersih JFFS2". Setelah dipilih, klik pada "Simpan".
Apabila tetapan telah disimpan, masih pada tab "Pentadbiran", reboot penghala dengan menggunakan butang "Reboot Router". Ini akan memohon tetapan dan melaksanakan "format" yang diperlukan daripada "partition JFFS".
Apabila webGUI kembali dari reboot ke tab "Pentadbiran", tunggu tambahan setengah minit dan muat semula halaman.
Sekiranya berjaya, anda harus melihat bahawa gunung JFFS anda mempunyai ruang kosong seperti dalam gambar.
Persediaan pelayan Pixel
Muat turun dan ekstrak pek anti iklan untuk arkib zip dd-wrt zip yang mengandungi lekapan piksel-pelayan (kami tidak mengambil kredit, hanya mengelakkan "pautan panas"), skrip penyekat iklan (yang ditulis oleh anda sebenarnya) senarai domain yang dicipta oleh "Mithridates Vii Eupator" dan saya.
Sudah tiba masanya untuk mendapatkan fail ke dalam JFFS mount pada router. untuk melakukan ini, pasang winSCP (ia adalah "seterusnya -> seterusnya -> selesai" jenis persediaan) dan membukanya.
Di tetingkap utama, isikan maklumat seperti ini:
Nama hos: IP router anda (lalai ialah 192.168.1.1)
Nombor pelabuhan: tidak berubah pada 22
Nama pengguna: akar (walaupun anda menukar nama pengguna untuk webGUI, pengguna SSH akan selalu menjadi * root *)
Fail kekunci persendirian: kosongkan (ini hanya perlu apabila anda membuat pengesahan berasaskan pasangan kunci yang kita tidak mempunyai)
Protokol fail: SCP
Kami juga perlu melumpuhkan "Cari pengguna kumpulan" seperti yang ditunjukkan di bawah ini (terima kasih mstombs untuk menunjukkan ini) kerana winSCP menjangkakan Linux yang penuh sesak di sisi lain yang mana pemaju DD-WRT, walaupun ada kerja yang sangat baik, tidak dapat menyediakan (terutamanya kerana tidak semestinya cukup ruang). Sekiranya anda meninggalkan ini diperiksa, anda akan menghadapi mesej menakutkan apabila anda menyambung dan menyimpan fail yang diedit.
Pilih Advance, dan kemudian hapus centang "Cari kumpulan pengguna".
Walaupun ia adalah pilihan, anda boleh memilih untuk menyimpan tetapan sekarang untuk kegunaan kemudian. Sekiranya anda memilih untuk menyimpan tetapan yang disyorkan, ia juga disyorkan (walaupun secara terang-terangan menangis dari suaka "paranoid keselamatan" yang kami merosakkan kewujudan SSH) bahawa anda menyimpan kata laluan.
Kemudian tetingkap utama anda akan kelihatan seperti dalam gambar, dan semua yang anda perlu lakukan untuk menyambung ke penghala ialah klik dua kali kemasukan.
Oleh kerana ini adalah kali pertama anda akan menyambung ke penghala, winSCP akan bertanya sama ada anda sanggup mempercayai cap jari sebelah yang lain. Klik "Ya" untuk meneruskan.
Pemaju DD-WRT telah melaksanakan mesej selamat datang Banner dengan beberapa maklumat mengenai firmware yang telah anda pasang. sekali merah, klik pada kotak semak "Tidak pernah tunjukkan lagi sepanduk ini" dan "Teruskan".
Setelah dihubungkan, arahkan jalan ke folder tingkat atas (AKA root "/") dan kemudian kembali ke "/ jffs" kerana itu adalah satu-satunya tempat yang boleh ditulis secara kekal pada sistem fail penghala ("/ tmp" dan selebihnya adalah bacaan sahaja).
Buat folder baru, dengan menekan F7 atau klik kanan kosong, tuding ke atas "Baru" dan klik "Direktori".
Namakan direktori baru "dns". kami mencipta direktori ini untuk memastikan perkara dalam direktori jffs dianjurkan untuk kegunaan masa depan dan kerana kami kebanyakan mengubah cara perkhidmatan DNS berfungsi.
Salin fail "pixelserv" dan "disable-adds.sh" dari arkib zip anti-iklan-pek-untuk-dd-wrt zip, dengan memilih mereka (gunakan kekunci "masukkan"), memukul "F5" ".
Nota: Jika penghala anda adalah berdasarkan Atheros (anda boleh menyemak ini pada wiki DD-WRT), anda perlu menggunakan pixelserv_AR71xx yang disediakan oleh Oki dan dimasukkan ke dalam pek dan menamakan semulanya menjadi "pixelserv" sebelum meneruskan.
Sebaik sahaja fail berada di penghala, kita perlu membuatnya boleh laku dengan memilihnya (sekali lagi menggunakan "insert") klik kanan kemudian "sifat".
Pada tetingkap sifat klik pada "X" untuk baris "Pemilik". yang akan memberikan kebenaran pelaksanaan fail.
Tetapan penghala
Sekarang bahawa pentas telah ditetapkan, kita boleh memberitahu router untuk menjalankan skrip penyekat iklan semasa permulaan.
Untuk melakukan ini, di webGUI pergi ke tab "Pentadbiran" dan kemudian tab "Perintah".
Dalam kotak teks "Perintah" tulis lokasi skrip sebagai "/jffs/dns/disable_adds.sh", seperti dalam gambar dan kemudian klik pada "Simpan Permulaan".
Jika berjaya, anda harus melihat skrip telah menjadi sebahagian daripada permulaan router seperti dalam gambar di atas.
Menyediakan senarai domain disekat peribadi (Pilihan)
Senarai ini membolehkan anda menambah domain ke senarai yang tidak diluluskan, jika anda mendapati bahawa dua senarai dinamik tidak menangkap sesuatu.
Untuk melakukan ini, terdapat dua pilihan, dan mereka berfungsi bersama supaya anda boleh menggunakan kedua-duanya mengikut apa yang lebih mudah untuk anda.
Catatan: The sintaks adalah penting, Oleh kerana kami sebenarnya mewujudkan arahan tatarajah bahawa daemon DNSMasq (proses yang bertanggungjawab untuk nama DNS kepada terjemahan IP) akan digunakan secara langsung. Oleh itu, sintaks yang tidak betul di sini akan menyebabkan perkhidmatan tersebut jatuh dan meninggalkan router tidak dapat menyelesaikan alamat IP untuk nama domain (anda telah diingatkan).
Untuk mencari nama domain yang menyinggung untuk menghalang anda mungkin mahu menggunakan panduan "Cari Mesej Rahsia di Pengetua Situs Web" sebagai buku primer. Langkah-langkah untuk mencari nama domain iklan hampir sama, hanya dalam hal ini anda mencari alamat bukannya mesej.
Yang pertama dan diakui cara yang lebih mudah ialah meletakkan senarai ke dalam kotak konfigurasi "DNSMasq" di wegGUI. Ini kerana untuk menambah senarai ini, seseorang boleh mengakses webGUI dan bukannya perlu "di bawah tudung" untuk membuat perubahan.
Pergi ke tab "Perkhidmatan", cari bahagian "DNSMasq" dan temukan kotak teks "Pilihan DNSMasq Tambahan".
Dalam kotak teks ini masukkan senarai domain yang ingin disekat dengan sintaks "address = / domain-name-to-block / pixel-server-ip" seperti yang ditunjukkan dalam gambar di bawah ini:
Di mana dalam contoh ini "192.168.1.254" adalah IP yang dihasilkan untuk pelayan piksel berdasarkan "alamat rangkaian" LAN anda. Jika alamat rangkaian anda adalah sesuatu yang lain maka 192.168.1.x anda perlu menyesuaikan alamat untuk pelayan pixel sesuai.
Apabila selesai, klik pada "Simpan" di bahagian bawah halaman (jangan pakai lagi).
Yang kedua pilihan adalah untuk mengkomersikan senarai domain yang anda hendak bloki, ke fail "peribadi-iklan-senarai.conf" yang saya dan "Mithridates Vii Eupator" telah dipasang. Fail ini adalah sebahagian daripada arkib zip yang anda muat turun sebelum ini dan permulaan yang baik untuk kedua-dua kaedah.
Untuk menggunakannya, jika perlu, gunakan editor teks kegemaran anda untuk melaraskan IP pelayan-piksel (kekangan yang sama seperti di atas yang terpakai di sini). Kemudian hantarkannya ke direktori "/ jffs / dns" kerana anda mempunyai fail lain. Setelah berada di sana, anda boleh menggunakan winSCP untuk mengeditnya dan menambah domain.
Menyediakan senarai putih
Ini adalah senarai domain yang akan ditinggalkan daripada senarai dinamik "hos" dan "domain".
Ini adalah perlu kerana hanya menghalang sesetengah domain menyebabkan laman web menggunakannya untuk rosak. Contoh yang paling penting ialah "google-analytics.com".
Jika kita menyekat domain itu, ia tidak akan mengubah hakikat bahawa laman web yang menggunakannya, mempunyai pelayar anda memuat turun JavaScript yang berjalan pada peristiwa seperti meninggalkan halaman. Ini bermakna bahawa untuk laman web sedemikian pelayar anda akan cuba "menghubungi rumah" dengan menghubungi domain google, tidak akan memahami jawapannya dan anda perlu menunggu sehingga masa skrip keluar untuk meneruskan ke halaman seterusnya. Itu bukan pengalaman melayari yang menyenangkan dan itulah sebabnya mengapa domain yang mengandungi "google-analytics" dan "googleadservices" * dikosongkan secara keras daripada penapisan.
Senarai ini dibuat untuk anda dengan domain yang disebutkan di atas, apabila skrip dijalankan untuk kali pertama, di bawah direktori "/ jffs / dns".
Untuk menggunakan senarai putih, buka fail dengan winSCP dan **perpaduan untuk menyenaraikan domain yang ingin dikecualikan, sambil berhati-hati untuk tidak meninggalkan sebarang baris kosong (meninggalkan garis kosong akan menghapus semua domain dari semua senarai).
* Walaupun skrip mencipta senarai putih dengan domain di dalamnya pada run pertama, TIDAK menegaskan hadiah mereka untuk masa depan. jadi jika anda merasakan google harus disekat walaupun masalah tersebut di atas, anda boleh mengeluarkan domain dari senarai putih itu.
** Anda mesti memasukkan domain baru yang anda mahu pada permulaan senarai. Ini kerana bug dengan cara bash menafsirkan baris baru ... maaf saya tidak mempunyai pekerjaan untuk itu lagi.
Pelaksanaan
Inilah ia, akhirnya adalah masa untuk memanggil skrip dan melihat keputusan dengan hanya memulakan semula penghala.
Untuk melakukan ini dari webGUI, Di bawah tab "Pentadbiran" kembali ke "Pengurusan", di bahagian bawah halaman klik pada "Reboot router" dan tunggu router kembali.
Ia mungkin mengambil masa beberapa minit untuk skrip untuk melaksanakan tugasnya untuk kali pertama.
Pada jenis router WRT54Gx, anda akan tahu apabila skrip selesai melaksanakan kerana ia akan mengedip Cisco orange LED di hadapan router (router lain harus mempunyai tanda "beritahu ekor" sama).
Kemas kini: Bahagian ini * dialih keluar selepas ia ditemui sebagai ciri agnostik bukan perkakasan.
Seperti yang kita cuba untuk melihat ketiadaan unsur-unsur di web, saya cadangkan hanya melayari ke beberapa laman web untuk melihat kesannya.
Walau bagaimanapun, jika anda ingin memastikan prosedur berjaya, langkah debug pertama dalam bahagian penyelesaian masalah adalah tempat yang bagus untuk bermula.
* Ia sebenarnya mengulas supaya anda boleh mengembalikannya jika anda pasti ia tidak akan menyebabkan masalah pada persediaan anda.
Nikmati!
Penyelesaian masalah
Jika anda menghadapi masalah terdapat beberapa perkara yang boleh anda lakukan untuk memeriksa apa yang salah.
- Uji bahawa domain iklan diselesaikan ke IP pixelserv.
Anda boleh melakukan ini dengan mengeluarkan arahan nslookup terhadap domain "yang menyinggung". Contohnya "ad-emea.dubleclick.com" adalah sebahagian daripada hos yang disekat dari senarai peribadi. Dengan mengeluarkan "nslookup ad-emea.dubleclick.com" dalam arahan arahan, hasilnya sepatutnya seperti:
Di mana jawapan yang tidak dijawab biasa akan kelihatan seperti: - Lakukan lebih dari itu.
Untuk memastikan tiada apa-apa dengan persediaan router anda bertembung dengan konfigurasi peletakan iklan, kembalikan penghala ke "Lalai Kilang" dan cuba lagi. Sebaik sahaja anda berjaya menambah perubahan tersuai anda dengan harapan bahawa mereka tidak akan bertempur lagi. - Pastikan pelanggan anda menggunakan penghala sebagai DNS.
Terutama apabila menggunakan VPN atau rangkaian yang lebih rumit maka penghala biasa ke persediaan komputer, adalah mungkin bahawa komputer klien anda semata-mata tidak menggunakan penghala sebagai DNS. Ia sangat mudah untuk melihat dalam arahan di atas apa yang pelayan DNS pelanggan menggunakan, Jika IP tidak sama dengan router, anda telah menemui masalah. - Kosongkan cache peribadi mesin DNS anda.
Ini kerana jika tidak, anda masih dapat melihat iklan di tapak ujian anda dengan, semata-mata kerana komputer anda sudah tahu cara untuk mendapatkan kandungan iklan dengan sendirinya tanpa merujuk DNS untuknya. Pada tingkap ini akan menjadi "ipconfig / flushdns". - Tutup penyemak imbas.
Kadang-kadang penyemak imbas memegang maklumat cache, jadi membersihkan cache DNS seperti ditunjukkan di atas tidak membantu. - Apabila ragu reboot.
Kadang-kadang cache dapat bertahan dan cara terbaik untuk menyingkirkannya adalah untuk reboot. Mulakan dengan penghala dan jika masalah berterusan, komputer klien. - Gunakan syslog.
Anda boleh mengaktifkan daemon syslog router dan kemudian melihat mesej untuk melihat apakah skrip menemui sebarang masalah, dengan memeriksa mesejnya. Juga skrip menambah beberapa alias perintah untuk membuat debugging lebih mudah.
Untuk melakukan ini pergi ke tab "Perkhidmatan" dan aktifkan daemon syslog seperti dalam gambar di bawah:
Nota: "Pelayan Jauh" digunakan apabila anda mempunyai pelayan syslog yang mendengar pada mesin lain (seperti dengan kiwi) jika anda tidak mempunyai satu, hanya tinggalkan kosong.
Setelah didayakan, anda dapat melihat mesej debug dengan melihat / var / log / mesej fail dalam terminal.
* Untuk melihat SEMUA mesej dari boot-up anda boleh menggunakan "lebih / var / log / mesej".
* Untuk melihat hanya mesej dari skrip dalam log menggunakan "menyumbat" alias.
* Untuk melihat mesej semasa mereka masuk, dalam masa nyata, gunakan "ekor -f / var / log / mesej" atau dengan alias "tlog". - Memahami skrip.
Walaupun saya telah membuat video YouTube ini untuk versi lama panduan ini dan skrip, ia masih memegang banyak kebenaran dan penjelasan yang berkenaan dengan bagaimana versi baru dan bertambah baik berfungsi.