Memasang kondom internet (Pi-hole + Cloudflared).

Di artikel Privacy zaman now – part 1, saya pernah menyinggung mengenai DNS.

DNS (Domain Name System) itu seperti buku telepon digital. Kita kan sudah terbiasa mengunjungi situs dengan alamat seperti https://www.google.com/, namun alamat sebenarnya Google (salah satunya) adalah 172.217.194.138. Namun angka-angka seperti itu kan susah diingat, jadi harus ada yang menghubungkan alamat google.com dengan alamat full angka tersebut, itulah fungsi DNS.

Kenyataannya adalah, koneksi DNS sekarang ini banyak sekali yang tidak terlindungi dengan baik. Penyedia layanan internet kita juga sebenarnya memiliki DNS mereka masing-masing dan mereka memiliki akses ke sejarah browsing kita semua dengan membaca kegiatan DNS ini.

Di artikel tersebut topik bahasannya lebih kepada enkripsi DNS di perangkat masing-masing pengguna internet.

Nah, sebenarnya ada cara untuk mengamankan DNS satu level di atas itu.

Caranya adalah dengan memasang program bernama Pi-hole dan Cloudflared di sebuah komputer mini yang tersambung langsung dengan router rumah. Dalam hal ini saya menggunakan Raspberry Pi (tipe 3B+), sebuah komputer kecil murah meriah seukuran kartu kredit yang bisa dibeli di toko online seperti Tokopedia, Bukalapak, Shopee, Lazada, dll

Raspberry Pi.

Beberapa hari yang lalu saya akhirnya ada waktu untuk memasang Pi-hole.

Apa itu Pi-hole?

Simplenya, Pi-hole adalah sebuah program yang memungkinkan semua orang untuk membuat DNS server sendiri yang bersifat sebagai sinkhole untuk mayoritas iklan dan tracker yang ada di internet.

Jika kita memasang adblocker di browser, maka yang terlindungi hanyalah aktifitas di browser tersebut. Namun dengan menggunakan Pi-hole di router, perlindungan itu akan mencakup semua traffic internet yang melalui router tersebut.

Bahkan ada yang menjuluki Pi-hole sebagai kondomnya internet 😂

Instalasi Pi-hole

Pemasangannya cukup mudah, ikuti saja panduan yang banyak bertebaran di Internet. Saya sendiri mengikuti yang ini:

  1. Download OS untuk Raspberry Pi. Saya sendiri pakai Raspbian.
  2. Download aplikasi Disk Imager, bisa menggunakan Etcher.
  3. “Tulis” image OS Raspbian ke microSD Card menggunakan Etcher.
  4. Masukkan microSD card ke Raspberry Pi, dan sambungkan juga ke router menggunakan kabel LAN. Pasang juga mouse, dan keyboard.
  5. Raspberry Pi akan melakukan initial setup
  6. Setelah masuk ke OS, buka command shell / terminal
  7. Ketik curl -sSL https://install.pi-hole.net | bash
  8. Pencet Enter, sistem akan secara otomatis meng-install pi-hole
  9. Pada menu Interface, akan ada pilihan antara eth0 (Raspberry Pi terhubung ke internet menggunakan kabel) atau wlan0 (Raspberry Pi terhubung menggunakan Wi-Fi). Untuk kecepatan dan kestabilan koneksi, saya menyarankan untuk menggunakan kabel, dan pilih eth0.
  10. Pilih penyedia DNS, saya sendiri menggunakan Cloudflare (1.1.1.1)
  11. Pilih protokol yang akan difilter oleh Pi-hole, saya pilih IPv4 DAN IPv6
  12. Set IP Address statik. Sebaiknya gunakan IP address di luar jangkauan DHCP (harus cek di settingan router), agar IP address Raspberry Pi/Pi-hole tidak akan diganti-ganti secara otomatis oleh sistem.
  13. Terakhir, akan ada pilihan untuk meng-install halaman web admin interface. Gunanya untuk memantau Pi-hole dari internet browser, saya pilih install.
  14. Ganti settingan DNS server di router rumah/kantor ke IP adresss yang dipilih pada langkah 12.

Tidak sulit dan tidak makan waktu lama. Prosesnya hanya sekitar 15-20 menit saja. Lebih lama nunggu download file dan nunggu installnya.

Setelah berhasil, kita akan bisa memonitor performa Pi-hole melalui web dashboard yang disediakan.


Dan berikut adalah daftar domain yang kena blok sejak saya pasang Pi-hole dalam 24 jam terakhir:

Namun ada satu masalah yang saya segera sadari dari penggunaan Pi-hole ini, ternyata traffic DNS-nya tidak terenkripsi jika hanya melakukan instalasi seperti biasa. Jadi saya tidak bisa membuka website seperti Reddit.

Related image

Jadi saya coba search lagi apakah bisa melakukan enkripsi DNS di Raspberry Pi. Ternyata bisa jika menggunakan Cloudflared.

Cloudflared

DNS adalah salah satu sistem internet yang paling penting, namun juga salah satu yang paling tidak aman. Salah satu upaya mengamankan DNS adalah dengan teknik DNS-over-HTTPS. HTTPS adalah protokol yang sudah umum digunakan untuk mengamankan komunikasi di internet.

Blog ini juga sudah HTTPS loh hehe

Cloudflared akan membantu kita untuk mengenkripsi DNS di Pi melalui HTTPS. Untuk cara instalasinya, saya menggunakan panduan ini:

https://docs.pi-hole.net/guides/dns-over-https/

Cara instalasinya mungkin akan terlihat lebih rumit, tapi ikuti saja langkahnya satu per satu dengan teliti. Jangan lupa, untuk Raspberry Pi, pilih yang versi ARM architecture.

Setelah selesai, akhirnya saya bisa kembali membuka Reddit, dan membuka banyak website juga menjadi lebih ringan. Kenapa demikian? karena request access dari iklan dan tracker yang jumlahnya buanyaaakkk itu, sudah dijegal di level router dan tidak sempat masuk ke dalam local network internet di rumah / kantor yang sudah dilengkapi dengan Pi-hole.

Saya akan mengutip salah satu perbandingan traffic dengan/tanpa Pi-hole yang dilakukan oleh Troy Hunt di blog pribadinya. Di contoh berikut Troy coba mengakses portal berita https://news.com.au

news.com.au network without pi-hole
news.com.au network with pi-hole.jpg

Whoa! That’s an 80% reduction in network requests and an 82% reduction in the number of bytes transferred. I’d talk about the reduction in load time too except it’s really hard to measure because as you can see from the waterfall diagrams, with no Pi-hole it just keeps going and going and, well, it all gets a bit silly.

Network request berkurang 80%, dan transfer data yang dibutuhkan juga berkurang 82%! Contoh website yang digunakan Troy adalah sebuah website berita. Jadi bisa dibilang kontennya 20%, tapi iklan dan trackernya 80%. Sinting juga kan. Load timenya juga berbeda sangat jauh (57.44 detik vs 1.95 detik).

Create meme "Tom cruise laughing meme, meme, laughing Tom cruise ...

Kalau kalian tertarik untuk install Pi-hole, ini bisa menjadi proyek weekend yang menyenangkan dan sangat berguna 🙂

P.S. Pi-hole mendukung sistem whitelist, jadi kalau kalian ingin mendukung content creator favorit kalian di internet, bisa memilih untuk menampilkan iklan di website-website tertentu.

P.P.S. Kalau merasa terbantu oleh Pi-hole, jangan lupa untuk memberikan donasi kepada mereka. Proyek-proyek keren seperti ini harus didukung.

Image result for give donation gif
Img sauce: http://www.slynyrd.com/

Update (2019-03-15) Jika ingin menambah daftar blokir, bisa gunakan website ini sebagai panduan: https://firebog.net/

Berikut adalah daftar blokir tambahan yang saya tambahkan melalui dashboard Pi-hole yang bisa diakses melalui Settings > Blocklists. Jangan lupa untuk klik “Save and Update” setelah itu.

https://hosts-file.net/grm.txt 
https://reddestdream.github.io/Projects/MinimalHosts/etc/MinimalHostsBlocker/minimalhosts https://raw.githubusercontent.com/StevenBlack/hosts/master/data/KADhosts/hosts
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Spam/hosts
https://v.firebog.net/hosts/static/w3kbl.txt
https://adaway.org/hosts.txt https://v.firebog.net/hosts/AdguardDNS.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://hosts-file.net/ad_servers.txt
https://v.firebog.net/hosts/Easylist.txt https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts;showintro=0
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/UncheckyAds/hosts
https://www.squidblacklist.org/downloads/dg-ads.acl
https://v.firebog.net/hosts/Easyprivacy.txt https://v.firebog.net/hosts/Prigent-Ads.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.2o7Net/hosts
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt
https://mirror1.malwaredomains.com/files/justdomains https://hosts-file.net/exp.txt
https://hosts-file.net/emd.txt
https://hosts-file.net/psh.txt
https://mirror.cedia.org.ec/malwaredomains/immortal_domains.txt
https://www.malwaredomainlist.com/hostslist/hosts.txt
https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt
https://v.firebog.net/hosts/Prigent-Malware.txt https://v.firebog.net/hosts/Prigent-Phishing.txt
https://phishing.army/download/phishing_army_blocklist_extended.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
https://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/CW_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/LY_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/TC_C2_DOMBL.txt
https://ransomwaretracker.abuse.ch/downloads/TL_C2_DOMBL.txt
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://v.firebog.net/hosts/Shalla-mal.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Risk/hosts
https://www.squidblacklist.org/downloads/dg-malicious.acl
https://zerodot1.gitlab.io/CoinBlockerLists/host

Block lists di atas dinyatakan kecil kemungkinannya untuk mengganggu aktifitas browsing seperti biasa, dan dengan tambahan tersebut, kini Pi-hole akan memblokir, dari sebelumnya hanya 100,000 domain, menjadi hampir 800,000 domains.

Update (2019-07-10) Kalau kalian ingin memiliki DNS sinkhole namun tidak ingin membuatnya sendiri menggunakan Raspberry Pi dan Pi-hole, kalian bisa menggunakan yang namanya NextDNS.

NextDNS ini bisa dibilang Pi-hole on the cloud. Jadi kalian bisa mendapat fungsi DNS sinkhole di lebih banyak perangkat, tidak terbatas pada network tertentu saja. Pelajari mengenai NextDNS di blogpost saya berikut ini: Kondom internet untuk umum (AdGuard DNS, NextDNS)

Update (2020-07-13) Alternatif lain jika kali baru ingin membeli router. Kalian bisa menggunakan router yang mendukung sistem operasi OpenWrt seperti GL.iNet Convexa-B (GL-B1300). Dengan OpenWrt, kalian bisa melakukan enkripsi DNS, install adblock, atau bisa juga menggunakan DNS sinkhole seperti NextDNS.


Sebelum kamu pergi

Kalau kamu suka dengan artikel ini, gunakan tombol-tombol di bawah untuk membagikan artikel ini ke teman-teman kamu, dan daftarkan email kamu untuk mendapatkan update jika ada artikel baru.

42 thoughts on “Memasang kondom internet (Pi-hole + Cloudflared).”

    1. Halo Mas Tommy, setahu saya beda hal. Mikrotik itu routernya kan? Pi-hole ini bukan untuk menggantikan fungsi router, tapi disambung ke router sebagai DNS server. Jadi settingan DNS di router diganti ke DNS Pi-hole.

      Seandainya Mas ingin coba punya DNS sinkhole tanpa harus beli Raspberry Pi, bisa coba gunakan NextDNS sebagai alternative. Untuk info lebih lanjut bisa coba baca di: https://ekawirya.com/kondom-internet-untuk-umum-adguard-dns-nextdns/

      1. apakah bisa blok iklan youtub soalnya sangat ganggu klo.lagi nonton tiba² ad iklan di hp

        1. YouTube memang sedikit lebih tricky kalau di aplikasi mobile-nya. Kalau pakai HP Android, saya sarankan pakai aplikasi yang namanya New Pipe atau YouTube Vanced saja.

          NewPipe: https://f-droid.org/en/packages/org.schabi.newpipe/

          YouTube Vanced: https://vanced.app/

          NewPipe lebih ringan, tidak bisa login tapi bisa nonton dan download audio dan/atau video dari YouTube. Sudah bisa background play juga.

          YouTube Vanced tampilannya seperti aplikasi YouTube biasa, dan bisa login jika menggunakan MicroG.

          1. Mas thx buat sharing. Saya juga udah install blocker di raspberry pi dan dikonek ke router. Banyak ads yang sudah ke blok.

            Tapi masalahnya tetep ini; memblokir youtube ads di ios app. Bahkan kadang masih ada kalo saya nonton di android tv.

            Saya udah cari kemana2 yang bahas youtube ads di pihole secara ampuh. Tetapi kayaknya memang belum ada yg final ya.

            Oiya mas, saya nemuin artikel yang bahas youtube di pihole, sayangnya saya pemula di linux dan juga networking. Mungkin mas bisa membahas artikel ini di blog post lainnya agar newbie seperti saya bisa mengerti lebih jauh.

            https://medium.com/@obutterbach/unlock-the-full-potential-of-pihole-e795342e0e36

            Regards

          2. > Tapi masalahnya tetep ini; memblokir youtube ads di ios app. Bahkan kadang masih ada kalo saya nonton di android tv.

            Untuk Android TV coba gunakan Smart YouTube TV.

            Untuk iOS coba gunakan AltStore + Cercube.

            > sayangnya saya pemula di linux dan juga networking.

            Saya juga pemula hehe. Thank you artikelnya, nanti saya baca-baca dulu 🙂

    2. mas mau tanya untuk list nya apa sudah mampu blokir ads / tracking secara optimal? ada list terbaru atau yang terupdate kah? terima kasih

      1. Saran saya, coba daftar di nextdns.io kemudian lihat daftar blocklist-nya 🙂 menurut saya cukup lengkap di sana.

    1. Kalau hanya untuk internet positif, harusnya tidak perlu sampai bikin pi-hole. Bisa dengan enkripsi DNS saja. (Namun pi-hole sangat berguna untuk mengelola DNS sendiri dan bisa untuk blokir iklan dan trackers)

      Coba baca artikel yang ini: https://ekawirya.com/kondom-internet-untuk-umum-adguard-dns-nextdns/

      Saran saya coba yang NextDNS. NextDNS sudah ada aplikasi untuk Windows, Mac, Android, dan iOS untuk penggunaan yang lebih mudah. NextDNS ini mendukung enkripsi DNS + blokir iklan dan trackers.

  1. mas, ini utk bypass bandwitdh limit Netflix apa bisa ya ? Kan kalo DNSCrypt bisa tuh buat Indihome akses Netflix tapi bandwidth nya tetep di limit jadi lemot parah.

    1. Ada kemungkinan tidak bisa, karena fungsi DNSCrypt seharusnya mirip namun menggunakan DNS yang disediakan orang lain, bukan host sendiri seperti halnya Raspberry Pi + Pi-Hole.

      Saya pernah baca juga kalau Indihome melakukan Deep Package Inspection. Dalam hal ini, yang bisa coba dilakukan adalah dengan menggunakan GoodbyeDPI.

      Saya pernah pakai di rumah orang yang menggunakan Indihome dan seingat saya sih cukup lancar bisa nonton Netflix.

      Semoga berhasil.

        1. Sepertinya tidak bisa, karena setahu saya goodbye DPI dibuat untuk Windows. Sedangkan Raspbian itu basisnya Linux.

  2. mas, mau tanya
    cara blokir website tertentu di pi-hole ini bagaimana ya?
    contoh ingin blok youtube dan facebook.

    terima kasih

    1. Dari web interface pi-hole, ada menu whitelist Dan blacklist. Tinggal ditambah saja di sana.

      Alternatifnya bisa menggunakan NextDNS juga. NextDNS punya fitur serupa.

  3. Mohon bertanya Mas, apakah dengan menggunakan ini bisa menangkal iklan sekaligus dapat mengakses web yang diblokir oleh ISP (misal akses netflix, reddit menggunakan indihome)?

      1. biar satu perangkat gan, kebetulan router bawaan internet saya ga bisa ngatur itu, kalo pi-hole ga bisa juga, brarti harus beli router, jadi 3 perangkat

        1. Wah I see, memang agak tricky kalau gt, karena pi-hole ini tujuannya untuk menjadi DNS dari router yang ada.

          Kebetulan saya sendiri di rumah juga jadinya pakai 2 router. Router bawaan ISP yang jangkauan wifi-nya lemah, jadi saya sambung ke router sendiri yang jangkauannya lebih besar. Nah di router kedua ini saya sambung dengan raspberry pi yang diinstall pi-hole.

          1. Gan, boleh tau merek dan tipe router yang udah berhasil di setup pi-hole? saya tertarik implement di rumah. Nuhun

          2. Pi-hole nya install di raspberry pi. Untuk router, seharusnya semua router bisa ganti DNS, saya pribadi pakai TP-Link Archer C9.

  4. cara redierect dns router Mikrotik ke Server DSN Pihole bagaimana?

    dan Untuk Blcok akses youtube dan facebook baik melalu web atau aplikasi di android dan iphone

  5. asik banget nih lihat website situ Bro

    baiknya memang memakai router yang suppport DD-WRT sehingga bisa lebih mantap lagi buat orang yang mau bikin homenetworking yang canggih dengan budget terbatas hehe….

    baru beli
    TP-LINK MR6400 -> 4G Router
    mau setting nextdns di router kaga bisa, karena dns nya di redirect ke dns ISP 😀

    next project raspi + pihole + nextdns

    keren bro website nya.

    1. Thanks 🙂

      Untuk DNS, coba cek di DD-WRT bisa encrypted DNS atau tidak. Harusnya sih bisa.

  6. Hallo,

    Artikelnya menarik, tapi saya sendiri malah susah kalau pakai CloudFlare DNS, beberapa iklan entah kenapa masih ke show up

    Saya lebih prefer pakai local DNS dari VPS / Dedicated, setup via ubound lalu konekin ke Pi-Hole via 127.0.0.1#5335

    Asiknya adalah ketika orang pakai service kita either DoT / DoH / OpenVPN dan ketika di cek via dnsleaktest nanti yg muncul adalah ISP yg kita pakai di server bukan ISP nya CloudFlare

    Just my another opinion aja sih hehe

    Tapi tetep aja tulisan ini bagus

    1. Thanks 🙂

      Setahu saya Cloudflare DNS itu memang tidak melakukan filter iklan. Saya pakai Cloudflare DNS dengan pihole itu agar mudah enkripsi DNS saja. Jadi Cloudflared untuk enkripsi, dan pihole sebagai sinkhole.

      Layanan DNS yang bisa langsung melakukan filter iklan itu seperti NextDNS dan AdGuard DNS.

  7. Baru pasang beberapa bulan lalu karena penasaran aja.
    Dipasang di virtualbox aja biar gak ada biaya buat penasaran wkwkwk
    Lumayan ok juga walau iklan google masih sakti nembus pihole. Database blacklist udah 1,5jtan karena ngambil gravity dari sana-sini.
    Seru juga ngopreknya. Selain menghadang iklan, speed juga bisa lebih stabil dan cepet.
    Mungkin ntar klo ada dana dan dapet sertifikat SNI ISO, mau beli raspi nya biar lebih proper dan hemat daya

    1. Mantab 🙂

      Iklan Google maksudnya di youtube ya? Kalau youtube memang penanganannya berbeda lagi caranya.

  8. di test menggunakan lebih dari 500 client sering service not respon, dan buat browsing juga sering muter2,dan server not found, kadang harus di refresh baru kebuka.
    apakah ada yg sama seperti itu ?

        1. Saya belum pernah pakai sampai client sebanyak itu, soalnya pernah pakai di jaringan rumah doang.

          Tapi kalau saya cek di website pi-hole, seharusnya pi-hole itu ringan sekali: https://pi-hole.net/2017/05/24/how-much-traffic-can-pi-hole-handle/

          Some others are less detailed in terms of documentation, but one person has it running with 100 clients. While another person uses a 2GB RAM, 2 CPU VM with 200 clients and it “doesn’t ever make a blip on the server’s resources radar“.

          Finally, 400 unique clients can connect to a VM with a single processor, 512MB RAM, but typically around 250 clients are connected at a single time.

Leave a Reply

Your email address will not be published. Required fields are marked *