Pada artikel sebelumnya saya membahas mengenai encrypted DNS. Dimana request DNS dienkripsi sehingga sulit untuk ditrace oleh internet Provider. Ada 2 metode Encrypted DNS yang populer digunakan yaitu DoH (DNS Over HTTPS) dan DoT (DNS Over TLS). DoH menggunakan standard port 443 sementara DoT menggunakan port 853. Penggunaan DoT mungkin akan lebih mudah diblock dengan melakukan block pada port 853 dibanding dengan DoH yang menggunakan port 443. Hampir pasti port 443 ini tidak diblock karena port ini sudah menjadi standard untuk koneksi HTTPS.
Pada tutorial ini saya menggunakan AdGuardHome sebagai web server yang akan menerima request DNS dalam bentuk HTTPS maupun TLS. Sedangkan untuk Resolvernya saya menggunakan Unbound sehingga request DNS murni dilakukan oleh Server kita sendiri, tidak menggunakan DNS Resolver seperti Cloudflare, Google, Cisco, dll.
Disini saya menggunakan VPS cloud dari AWS dan untuk DoH menggunakan STB Indihome yang sudah dimodifikasi dengan Armbian.
- Installasi Unbound di VPS Cloud
Unbound digunakan untuk melakukan request DNS atau sebagai DNS Resolver. Sebagai contoh jika mengakses domain .com maka unbound akan request ke Domain registrant .com secara langsung. Dengan menggunakan unbound dapat dibilang request DNS dilakukan pure dari server kita, tidak melewati DNS Google, Cloudflare, dll. Di ubuntuk 20.04 installasi unbound bisa langsung menggunakan apt install unbound. Lakukan test resolver dengan perintah dig menggunakan dns unbound. di sini saya menggunakan localhost ip 127.0.0.1:53 yang saya install sebagai DNS Resolver unbound
2. Installasi AdGuard Home
selanjutnya setelah unbound berfungsi dengan baik. Saya menggunakan AdGuard Home yang berfungsi sebagai portal untuk DNS Over HTTPS dan DNS Over TLS. Untuk dapat menggunakan DNS Encrypt kita harus memiliki Domain name dan SSL certificate yang terinstall. Kita bisa menggunakan Lets encrypt maupun SSL commercial seperti dari Digicert, gogetssl, dsb. Install cerfitikan di AdGuard Home. Setelah itu pada AdGuard Home rubah DNS Resolvernya menggunakan alamat IP dari DNS Unbound yang tadi dibuat dalam hal ini saya menggunakan 127.0.0.1:53. Test upstream DNS pastikan berjalan sukses/
3. Configurasi DoH di STB
STB di sini akan berfungsi sebagai DNS yang relay request ke server VPS AWS. saya menggunakan AdGuard yang diinstall di STB. Pada bagian DNS Upstream saya masukan url DOH dari Adguard yang tadi diinstall di AWS Cloud. Dengan cara ini STB akan melakukan request DNS secara encrypt ke Server AWS.
4. Configurasi di Router
Di WIFI Router masukan IP STB Local dalam hal ini IP STB saya di local adalah 192.168.1.3 sebagai DNS server. Dengan configurasi ini maka semua request dari client yang terhubung ke Wifi akan request DNS melalui IP 192.168.1.3 yang kemudian diteruskan ke server AWS menggunakan DNS Over HTTPS via AdGuard Home di STB. Lalu request diproses oleh server AWS menggunakan unbound.
Dengan cara ini kita tidak perlu menggunakan Public DNS seperti google, cloudflare, dll. Tetapi bisa menggunakan DNS server kita sendiri