Cara Menghapus Iklan dengan Pixelserv di DD-WRT
Ada banyak cara untuk memblokir iklan di browser Anda, tetapi bagaimana jika Anda bisa memblokirnya di router? Berikut cara menggunakan firmware DD-WRT dan “Keracunan DNS” yang disengaja untuk memblokir iklan untuk setiap perangkat di jaringan Anda.
Ikhtisar
Memperbarui: Panduan diperbarui untuk mencerminkan umpan balik yang disediakan oleh komentator dan memperbarui paket anti-iklan dengan server pixel yang lebih baru yang dapat dieksekusi dan changelog.
Pertanyaan pertama yang ada di benak semua orang saat ini adalah "mengapa tidak hanya menggunakan blok iklan?"
Bagi banyak orang, tidak ada alasan, terutama dengan kemampuan baru chrome untuk meniru ekstensi yang Anda gunakan untuk setiap komputer tempat Anda menjalankan chrome..
Jawabannya ada di suatu tempat antara pengurangan overhead karena tidak harus mengajar semua pengguna di jaringan Anda tentang blok iklan (saya berbicara kepada Anda ibu, kakak, nenek dan sekretaris kantor) dan kenyamanan untuk tidak diganggu dengan hal itu di setiap komputer yang Anda setup. Itu dengan asumsi bahwa akan ada beberapa komputer di jaringan Anda yang Anda tidak akan mengkonfigurasi lingkungan pribadi Anda (misalnya "server inti" atau VM).
Catatan: Meskipun saya menggunakan metode di bawah ini di router rumah saya, saya menemukan blok iklan menjadi tambahan yang sangat baik untuk itu, dan saya merekomendasikan menggunakan kedua metode bersamaan. juga jika Anda tidak memiliki router DD-WRT menggunakan blok iklan lebih dari cukup. Sebenarnya, saya sangat menyukai program ini, saya menyumbang kepada pengembangnya dan saya mendorong semua orang untuk melakukannya, agar pengembangannya tetap berjalan.
bagaimana cara kerjanya?
Pada dasarnya ini bekerja dengan sengaja meracuni DNS kami untuk mengembalikan IP spesifik untuk domain dalam daftar yang tidak disetujui. Daftar yang tidak disetujui ini akan berisi nama domain dari situs yang bertanggung jawab secara eksklusif untuk mengirimkan konten iklan, jadi kami tidak akan terlalu merindukannya.
Kami akan menyiapkan server HTTP sekunder pada router untuk menyajikan gambar satu piksel transparan, sebagai jawaban untuk setiap permintaan URL. Sehubungan dengan tekad DNS "salah", ini akan menyebabkan klien jaringan meminta konten dari server piksel internal kami dan mendapatkan gambar kosong sebagai respons.
Untuk menghasilkan daftar yang tidak disetujui, kami akan membuat satu daftar pribadi bersama dengan dua daftar yang diunduh secara dinamis. daftar dinamis adalah file host MVPS dan daftar domain Yoyo, bersama-sama mereka memegang daftar situs iklan yang sangat luas. Dengan memanfaatkan daftar ini, kita bertanggung jawab untuk hanya menambahkan delta situs yang belum ada di salah satunya, dalam daftar pribadi kita.
Kami juga akan menyiapkan "daftar putih" untuk domain yang tidak ingin kami blokir karena alasan apa pun.
Prasyarat dan asumsi
- Sabar yang muda, ini sudah lama dibaca.
- Prosedur ini dibuat dan diuji pada DD-WRT (v24pre-sp2 10/12/10 mini r15437), karena itu Anda harus sudah menginstal versi ini atau yang lebih baru di router Anda untuk menggunakannya. Informasi lebih lanjut ada di situs DD-WRT.
- Demi memudahkan penjelasan, diasumsikan router telah dipulihkan ke "default pabrik" atau bahwa pengaturan yang digunakan tidak berubah dari preset "out of the box" sejak saat itu.
- Komputer klien menggunakan router sebagai server DNS (ini adalah default).
- Ruang untuk JFFS (bila ragu, saya sarankan menggunakan mini versi DD-WRT).
- Diasumsikan bahwa jaringan Anda * sudah disetel dan itu adalah kelas C (yang memiliki subnet 255.255.255.0) sebagai IP terakhir pada jaringan kelas C itu (x.y.z.254) Akan ditugaskan untuk program server piksel.
- Kesediaan untuk menginstal winSCP.
* Skrip tidak akan dapat menyesuaikan daftar blokir setelah putaran pertama hingga siklus penyegaran berikutnya (3 hari).
Kredit
Memperbarui: Terima kasih khusus kepada "mstombs" untuk bagian besar dari kode C tanpa pekerjaannya, semua ini tidak akan mungkin, "Oki" untuk mengkompilasi versi dan kutipan yang kompatibel dengan Atheros ;-) dan "Nate" untuk membantu dengan QA.
Meskipun ada banyak pekerjaan untuk menyempurnakan prosedur ini pada saya, inspirasi untuk itu dinyalakan oleh orang-orang di forum DD-WRT dan beberapa dasar dari panduan ini dapat ditemukan di "pemblokiran iklan dengan DD- WRT ditinjau kembali (sederhana) "," pixelerv tanpa Perl, tanpa jffs / cifs / usb gratis "dan" Flexion.Org Wiki di DNSmasq "serta yang lain.
Mari kita mulai retak
Aktifkan SSH untuk akses SCP
Dengan mengaktifkan SSH, kami pada gilirannya memberi diri kami kemampuan untuk terhubung ke router menggunakan protokol SCP. dengan itu diaktifkan, kita kemudian dapat menggunakan program winSCP untuk secara visual menavigasi struktur folder router (seperti yang akan kita lihat nanti).
Untuk melakukan ini, menggunakan webGUI, buka tab "Layanan". Temukan bagian "Secure shell" dan klik tombol radio "Enable" untuk pengaturan SSHd.
Setelah selesai, webGUI akan terlihat seperti di bawah ini dan Anda dapat mengklik "Simpan" (jangan belum mendaftar).
Aktifkan JFFS
Untuk melakukan pengaturan ini dengan cara seperti itu stabil, direproduksi dan * menjadi "warga internet yang baik", kami akan menggunakan JFFS untuk menyimpan sebanyak mungkin konfigurasi. Ada cara lain untuk melakukan ini tanpa mengaktifkan JFFS, jika Anda tidak dapat karena keterbatasan ruang, tetapi mereka tidak dibahas di sini.
* Metode lain membuat router Anda mengunduh daftar pixel-server yang dapat dieksekusi dan dinamis setiap kali skrip dijalankan. karena hal ini menyebabkan server memegang daftar dan dapat dieksekusi dan ini membutuhkan uang untuk seseorang, metode ini mencoba menghindarinya jika memungkinkan.
Jika Anda belum tahu apa itu JFFS, penjelasan ini, yang diambil dari entri wiki DD-WRT tentang JFFS akan menghapus semuanya:
Sistem File Flash Jurnal (JFFS) memungkinkan Anda untuk memiliki Sistem File Linux yang dapat ditulis pada router berkemampuan DD-WRT. Ini digunakan untuk menyimpan program pengguna seperti Ipkg dan data ke dalam memori flash yang tidak dapat diakses. Ini memungkinkan Anda untuk menyimpan file konfigurasi khusus, host halaman Web khusus yang disimpan pada router dan banyak hal lain yang tidak dapat dilakukan tanpa JFFS.
Untuk mengaktifkan JFFS di router Anda, buka tab "Administrasi" dan temukan bagian JFFS. gambar di bawah ini menunjukkan di mana Anda akan menemukan bagian ini dalam tab "Administrasi".
Di bagian Dukungan JFFS2, klik tombol radio "Aktifkan" untuk "JFFS2" dan (ketika muncul) pengaturan "Bersihkan JFFS2". Setelah dipilih, klik "Simpan".
Ketika pengaturan telah disimpan, masih pada tab "Administrasi", reboot router dengan menggunakan tombol "Reboot Router". Ini akan menerapkan pengaturan dan melakukan "format" yang diperlukan dari "partisi" JFFS.
Ketika webGUI kembali dari reboot ke tab "Administrasi", tunggu setengah menit tambahan dan segarkan halaman.
Jika berhasil, Anda akan melihat bahwa mount JFFS Anda memiliki beberapa ruang kosong seperti pada gambar.
Penyiapan server piksel
Unduh dan ekstrak paket anti iklan untuk arsip zip dd-wrt yang berisi pixel-server executable (kami tidak mengambil kredit, hanya menghindari "hot linking"), skrip pemblokiran iklan (ditulis oleh Anda benar-benar) dan personal- daftar domain yang dibuat oleh "Mithridates Vii Eupator" dan saya.
Saatnya untuk memasukkan file ke dalam JFFS mount di router. untuk melakukan ini, instal winSCP (ini adalah tipe setup "next -> next -> finish") dan buka.
Di jendela utama, isi informasi seperti ini:
Nama host: IP router Anda (standarnya adalah 192.168.1.1)
Nomor port: biarkan tidak berubah pada 22
Nama pengguna: akar (bahkan jika Anda mengubah nama pengguna untuk webGUI, pengguna SSH akan selalu menjadi * root *)
File kunci pribadi: biarkan kosong (ini hanya diperlukan ketika Anda membuat otentikasi berbasis pasangan kunci yang belum kami miliki)
Protokol file: SCP
Kita juga perlu menonaktifkan "Grup pengguna pencarian" seperti yang ditunjukkan di bawah ini (terima kasih mstombs untuk menunjukkan ini) karena winSCP mengharapkan Linux yang penuh sesak di sisi lain yang pengembang DD-WRT, meskipun semua ada pekerjaan yang sangat baik, tidak dapat menyediakan (terutama karena tidak ada cukup ruang). Jika Anda membiarkan ini dicentang, Anda akan menjumpai pesan menakutkan ketika Anda terhubung dan menyimpan file yang diedit.
Pilih Advance, lalu hapus centang “Grup pengguna pencarian”.
Meskipun bersifat opsional, Anda dapat memilih untuk menyimpan pengaturan sekarang untuk digunakan nanti. Jika Anda memilih untuk menyimpan pengaturan yang direkomendasikan, itu juga dianjurkan (meskipun teriakan langsung dari suaka "keamanan paranoid" bahwa kami menodai keberadaan SSH) bahwa Anda menyimpan kata sandi.
Maka jendela utama Anda akan terlihat seperti pada gambar, dan yang harus Anda lakukan untuk terhubung ke router adalah klik dua kali entri.
Karena ini adalah pertama kalinya Anda menghubungkan ke router, winSCP akan bertanya apakah Anda bersedia mempercayai sidik jari dari sisi lain. Klik "Ya" untuk melanjutkan.
Pengembang DD-WRT telah menerapkan pesan sambutan Banner dengan beberapa info tentang firmware yang telah Anda instal. sekali merah, klik kotak centang "Jangan tampilkan spanduk ini lagi" dan "Lanjutkan".
Setelah terhubung, arahkan jalan Anda ke folder tingkat atas (AKA root "/") dan kemudian kembali ke "/ jffs" karena itu adalah satu-satunya tempat yang dapat ditulis secara permanen pada sistem file router ("/ tmp" tidak selamat dari reboot. dan sisanya hanya baca-saja).
Buat folder baru, dengan menekan F7 atau mengklik kanan tempat kosong, arahkan kursor ke "Baru" dan klik "Direktori".
Beri nama direktori baru "dns". kami membuat direktori ini untuk menjaga hal-hal di direktori jffs terorganisir untuk penggunaan masa depan dan karena kami sebagian besar mengubah cara kerja layanan DNS.
Salin file "pixelserv" dan "disable-adds.sh" dari arsip zip anti-ads-pack-for-dd-wrt, dengan memilihnya (gunakan kunci "masukkan"), tekan "F5" dan kemudian "Salin" ”.
Catatan: Jika router Anda berbasis Atheros (Anda dapat memeriksanya di wiki DD-WRT), Anda harus menggunakan pikselerv_AR71xx yang disediakan oleh Oki dan disertakan dalam paket dan ganti namanya menjadi "pikselerv" sebelum melanjutkan.
Setelah file berada di router, kita perlu membuatnya dapat dieksekusi dengan memilihnya (lagi menggunakan "masukkan") klik kanan lalu "properti".
Pada jendela properti klik pada "X" untuk baris "Pemilik". yang akan memberikan izin eksekusi file.
Pengaturan router
Sekarang setelah tahap ditetapkan, kita dapat memberi tahu router untuk menjalankan skrip pemblokiran iklan saat startup.
Untuk melakukan ini, di webGUI buka tab "Administrasi" dan kemudian tab "Perintah".
Dalam kotak teks "Perintah" tulis lokasi skrip sebagai "/jffs/dns/disable_adds.sh", seperti pada gambar dan kemudian klik "Simpan Startup".
Jika berhasil, Anda akan melihat skrip telah menjadi bagian dari startup router seperti pada gambar di atas.
Menyiapkan daftar Domain pribadi yang diblokir (Opsional)
Daftar ini memungkinkan Anda untuk menambahkan domain ke daftar yang tidak disetujui, jika Anda menemukan bahwa dua daftar dinamis tidak menangkap sesuatu.
Untuk melakukan ini, ada dua opsi, dan mereka bekerja bersama sehingga Anda dapat menggunakan keduanya sesuai dengan apa yang lebih nyaman bagi Anda.
catatan: Itu sintaks itu penting, Karena kami benar-benar membuat arahan konfigurasi yang daemon DNSMasq (proses yang bertanggung jawab untuk DNS-name to IP translation) akan digunakan secara langsung. Dengan demikian, sintaks yang salah di sini akan menyebabkan layanan macet dan membuat router tidak dapat menyelesaikan alamat IP untuk nama domain (Anda telah diperingatkan).
Untuk menemukan nama domain yang menyebalkan untuk diblokir, Anda mungkin ingin menggunakan panduan "Temukan Pesan Rahasia di Web Site Headers" sebagai primer. Langkah-langkah untuk menemukan nama domain iklan secara praktis sama, hanya saja dalam hal ini Anda mencari alamat alih-alih pesan.
Pertama dan diakui cara yang lebih mudah adalah dengan memasukkan daftar ke dalam kotak konfigurasi "DNSMasq" di wegGUI. Ini karena untuk menambahkan ke daftar ini orang hanya dapat mengakses webGUI daripada harus "di bawah tenda" untuk membuat perubahan.
Buka tab "Layanan", cari bagian "DNSMasq" dan di sana temukan kotak teks "Opsi DNSMasq Tambahan".
Dalam kotak teks ini masukkan daftar domain yang Anda ingin diblokir dengan sintaks "address = / domain-name-to-block / pixel-server-ip" seperti yang ditunjukkan pada gambar di bawah ini:
Di mana dalam contoh ini "192.168.1.254" adalah IP yang dihasilkan untuk server piksel berdasarkan "alamat jaringan" LAN Anda. Jika alamat jaringan Anda adalah sesuatu yang lain maka 192.168.1.x Anda harus menyesuaikan alamat untuk server piksel.
Setelah selesai, klik "Simpan" di bagian bawah halaman (belum berlaku).
Kedua opsinya adalah menambahkan daftar domain yang ingin Anda blokir, ke file "personal-ads-list.conf" yang saya dan saya dan "Mithridates Vii Eupator" telah kumpulkan. File ini adalah bagian dari arsip zip yang Anda unduh sebelumnya dan ini merupakan awal yang baik untuk kedua metode.
Untuk menggunakannya, jika perlu, gunakan editor teks favorit Anda untuk menyesuaikan IP server piksel (kendala yang sama seperti di atas berlaku di sini). Kemudian cukup salin ke direktori "/ jffs / dns" karena Anda memiliki file lain. Setelah itu ada di sana Anda dapat menggunakan winSCP untuk mengeditnya dan menambahkan domain.
Menyiapkan daftar putih
Ini adalah daftar domain yang akan dihapus dari daftar "host" dan "domain" dinamis.
Ini diperlukan karena hanya memblokir beberapa domain menyebabkan situs menggunakannya untuk kegagalan fungsi. contoh yang paling penting adalah "google-analytics.com".
Jika kami memblokir domainnya, itu tidak akan mengubah fakta bahwa situs yang menggunakannya, minta browser Anda mengunduh JavaScript yang berjalan pada acara seperti meninggalkan halaman. Ini berarti bahwa untuk situs seperti itu browser Anda akan mencoba untuk “menelepon ke rumah” dengan menghubungi domain google, tidak akan mengerti balasannya dan Anda harus menunggu sampai skrip habis untuk melanjutkan ke halaman berikutnya. Itu bukan pengalaman berselancar yang menyenangkan dan itulah sebabnya setiap domain yang mengandung "google-analytics" dan "googleadservices" * tidak dapat disaring dengan susah payah dari pemfilteran.
Daftar ini dibuat untuk Anda dengan domain yang disebutkan di atas, ketika skrip dijalankan untuk pertama kalinya, di bawah direktori "/ jffs / dns".
Untuk menggunakan daftar putih, buka file dengan winSCP dan **berdiri tegak ke daftar domain yang ingin Anda kecualikan, sambil berhati-hati untuk tidak meninggalkan baris kosong (meninggalkan baris kosong akan menghapus semua domain dari semua daftar).
* Sementara skrip membuat daftar putih dengan domain di dalamnya pada proses pertama, itu TIDAK bersikeras pada hadiah mereka untuk berjalan di masa depan. jadi jika Anda merasa bahwa Google harus diblokir meskipun ada masalah di atas, Anda dapat menghapus domain dari daftar putih.
** Anda harus memasukkan domain baru yang Anda inginkan di awal daftar. Ini karena bug dengan bagaimana bash menginterpretasikan baris baru ... maaf saya belum bekerja untuk itu.
Eksekusi
Ini dia, akhirnya saatnya untuk memanggil skrip dan melihat hasilnya hanya dengan me-restart router.
Untuk melakukan ini dari webGUI, Di bawah tab "Administrasi" kembali ke "Manajemen", di bagian bawah halaman klik "Reboot router" dan tunggu sampai router kembali..
Mungkin diperlukan beberapa menit bagi skrip untuk melakukan tugasnya untuk pertama kalinya.
Pada jenis router WRT54Gx, Anda akan tahu kapan script telah selesai dieksekusi karena itu akan mengedipkan LED oranye Cisco di bagian depan router (router lain harus memiliki tanda "kirim ekor" yang sama).
Pembaruan: Bagian ini * dihapus setelah ditemukan sebagai fitur agnostik non-perangkat keras.
Saat kami mencoba melihat tidak adanya elemen di web, saya sarankan hanya berselancar ke beberapa situs untuk melihat pengaruhnya.
Namun jika Anda ingin memastikan prosedur berhasil, langkah debug pertama di bagian pemecahan masalah adalah tempat yang bagus untuk memulai.
* Ini sebenarnya dikomentari sehingga Anda dapat mengembalikannya jika Anda yakin itu tidak akan menyebabkan masalah pada pengaturan Anda.
Nikmati!
Penyelesaian masalah
Jika Anda mengalami masalah, ada beberapa hal yang dapat Anda lakukan untuk memeriksa apa yang salah.
- Uji bahwa domain iklan diselesaikan ke IP pikselervas.
Anda dapat melakukan ini dengan mengeluarkan perintah nslookup terhadap domain "menyinggung". Misalnya "ad-emea.dubleclick.com" adalah bagian dari host yang diblokir dari daftar pribadi. Dengan mengeluarkan "nslookup ad-emea.dubleclick.com" di prompt perintah, hasilnya akan terlihat seperti:
Di mana jawaban yang tidak diblokir akan terlihat seperti: - Mengulangi.
Untuk memastikan bahwa tidak ada pengaturan router Anda yang berbenturan dengan konfigurasi blok iklan, kembalikan router ke “Default Pabrik” dan coba lagi. Setelah Anda berhasil, tambahkan perubahan kustom Anda dengan harapan tidak akan berbenturan lagi. - Pastikan klien Anda menggunakan router sebagai DNS.
Terutama ketika menggunakan VPN atau jaringan yang lebih kompleks dari router normal ke pengaturan komputer, ada kemungkinan bahwa komputer klien Anda sama sekali tidak menggunakan router sebagai DNS-nya. Sangat mudah untuk melihat dalam perintah di atas apa server DNS yang digunakan klien, Jika IP tidak sama dengan router, Anda telah menemukan masalah. - Bersihkan cache DNS mesin pribadi Anda.
Ini karena jika tidak, Anda mungkin masih melihat iklan ke situs pengujian Anda, hanya karena komputer Anda sudah tahu cara mendapatkan konten iklan sendiri tanpa berkonsultasi dengan DNS untuk itu. Di windows ini akan menjadi "ipconfig / flushdns". - Tutup browser.
Terkadang browser menyimpan informasi dalam cache, jadi membersihkan cache DNS seperti yang ditunjukkan di atas tidak membantu. - Jika ragu, reboot.
Terkadang cache bisa bertahan dan cara terbaik untuk menghilangkannya adalah dengan reboot. Mulai dengan router dan jika masalah berlanjut, komputer klien. - Gunakan syslog.
Anda dapat mengaktifkan daemon syslog router dan kemudian melihat pesan untuk melihat apakah skrip menemukan masalah, dengan memeriksa pesannya. Script juga menambahkan beberapa alias perintah untuk mempermudah proses debug.
Untuk melakukan ini, pergi ke tab "Layanan" dan aktifkan daemon syslog seperti pada gambar di bawah ini:
Catatan: "Remote Server" digunakan ketika Anda memiliki server syslog yang mendengarkan di komputer lain (seperti dengan Kiwi) jika Anda tidak memilikinya, biarkan kosong.
Setelah diaktifkan, Anda dapat melihat pesan debug dengan melihat / var / logs / messages file di terminal.
* Untuk melihat SEMUA pesan dari boot-up Anda dapat menggunakan "lebih / var / log / pesan".
* Untuk melihat pesan dari skrip di log, gunakan alias “clog”.
* Untuk melihat pesan saat masuk, secara real time, gunakan "tail -f / var / log / messages" atau dengan alias "tlog". - Pahami skripnya.
Meskipun saya telah membuat video YouTube ini untuk versi yang lebih lama dari panduan dan skrip ini, video ini masih menyimpan banyak kebenaran dan penjelasan yang dapat diterapkan pada cara kerja versi yang baru dan lebih baik.