Atasi Situs Terblokir Dengan DNS Over TLS (DoT) Melalui Systemd Resolved

Tahukah kamu bahwa ISP (Internet Service Provider) yang kamu pergunakan itu bisa melihat DNS yang kamu minta? Dengan hal itu ISP dapat mengetahui situs apa saja yang kamu kunjungi.

Latar Belakang

Hampir setiap aktifitas internet selalu dimulai dengan query DNS. DNS bekerja mengubah alamat situs yang yang terbaca oleh manusia ke IP, agar memudahkan kita.

Misal kamu berkunjung ke www.situsali.id, makad DNS akan mengubahnya menjadi alamat IP. Bayangkan jika kamu mengunjungi situsali, kamu mesti menghapal IP nya, ribet kan?

Query DNS didapat melalui teks menggunakan UDP atau TCP tanpa enkripsi, yang menjadikan rentan terhadap penyadapan dan pelanggaran privasi.

Secara asali, ISP akan resolve query DNS ke dalam peladen mereka. Jadi, ketika kamu menulis alamat situs, maka ISP akan mengecek ke dalam peladen untuk mencari apakah ada alamat IP dari situs tersebut, di mana hal ini berarti kita memberikan informasi metadata kepada ISP.

Mengenal DoT

Untuk mengatasi hal itu, Internet Engineering Task Force (IETF) mengajukan fitur eksperimental dengan nama DNS Over TLS (RFC 7858) atau disingkat dengan DoT, di mana prinsip kerjanya hampir sama dengan cara kerja HTTPS.

Sama seperti Transport Layer Security (TLS) di mana protokol yang mengenkripsi koneksi HTTPS menggunakan kriptografi, DNS over TLS meningkatkan privasi dan sekuri mengunakan otentikasi DNS lookup secara end-to-end.

Nah kalau sudah terenkrip, otomatis si ISP jadi gak tau situs apa yang kita buka, Dengan begitu, kita bisa mem-bypass situs yang diblokir oleh ISP.

Konfigurasi DoT di GNU/Linux

Beruntung jika kamu menggunakan sistem operasi GNU/Linux yang sudah menggunakan systemd. Karena kamu dapat menggunakn fitur DoT, yang sudah disediakan oleh systemd, tanpa perlu memasang lagi.

Langsung saja kita mulai.

Pertama-tama kamu sunting dulu berkas bernama systemd-resolved dengan aplikasi penyuntingan teks favoritmu.

$ sudoedit /etc/systemd/resolved.conf

PERHATIAN!
Saya menggunakan sudoedit, pastikan variable $EDITOR sudah kamu set di bashrc-mu.

Jika belum, kamu bisa mengganti perintah sudoedit, dengan sudo vim atau sudo gedit disesuaikan dengan aplikasi penyuntingan teks kesukaanmu.

Isi dengan skripnya seperti berikut:

[Resolve]
 DNS=94.140.14.14 94.140.15.15 2a10:50c0::ad1:ff 2a10:50c0::ad2:ff
 FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
 DNSOverTLS=yes
 DNSSEC=yes
 Domains=~.Code language: PHP (php)

Keterangan Konfigurasi

DNS. Kamu bisa meletakan IPv4 dan IPv6 sekaligus di sini dengan menambahkan spasi setelahnya. Contoh di atas saya menggunakan DNS AdGuard.

Kamu bisa menggunakan DNS apapun seperti DNS Google, CloudFlara, Quad9, dan lain sebagainnya.

Berikut ini contoh DNS lainnya yang bisa kamu pergunakan.

Cloudflare: 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001
Google:     8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Quad9:      9.9.9.9 2620:fe::feCode language: CSS (css)

FallbackDNS. Jangan lupa setelah kamu mengeset DNS, set pula fallbacknya, just in case, jika DNS ternyata terjadi masalah. FallbackDNS di atas, saya pakai DNSnya Google.

Untuk menulisnya sama seperti perintah DNS, yakni kamu bisa pakai IPv4 atau IPv6 dan setiap IP mesti dikasih pemisah berupa karakter spasi.

DNSOverTLS dan DNSSEC, opsi ini kita yes kan. Ya karena memang ini yang mau dipakai.

Domains, opsi ini untuk domain apa saja yang ingin pakai DoT, konfigurasi di atas menggunakan ~. yang berati untuk semua domain.

Cek Network Manager

Pastikan Network Manager-mu untuk penanganan DNS sudah menggunakan systemd-resolved. Kamu bisa mengeceknya dengan perintah berikut:

$ cat /etc/NetworkManager/conf.d/10-dns-systemd-resolved.conf

Jika belum kamu mesti membuat berkas tersebut, dengan perintah berikut:

$ sudoedit /etc/NetworkManager/conf.d/10-dns-systemd-resolved.conf

Lalu isi dengan skrip di bawah ini:

[main]
 dns=systemd-resolved
 systemd-resolved=falseCode language: JavaScript (javascript)

Restart Servicenya

Jika kamu sudah selesai mengkonfigurasi systemd-resolved, yang harus kamu lakukan adalah menyalakan ulang service-nya, agar ia dapat berjalan sebagai mana mestinya.

Perintahnya mudah, lakukan seperti perintah di bawah ini:

$ sudo systemctl restart systemd-resolved
$ sudo systemctl enable systemd-resolved
$ sudo systemctl restart NetworkManager

Cek Apakah Sudah Benar?

Langkah terakhir, untuk memastikan kamu sudah menggunakan DoT, kamu dapat mengeceknya menggunakan perintah berikut:

$ resolvectl status
DNS Status

Tambahan

Agar lebih yakin, kamu bisa cek lagi DNS-mu menggunakan DNS Leak Test, jika hasilnya sudah tidak mengarah ke ISP-mu, maka kamu sudah berhasil menggunakan DoT, dan situs yang diblokir tersebut bisa kamu lalui.

https://www.dnsleaktest.com/

Screenshot from 2020 12 21 13 51 37

Artikel Terkait

Leave a Reply

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