Pernah dengar DNS Google? 8.8.8.8 ?
Biasanya sih digunakan untuk mengakses situs-situs yang di blokir dengan apapun alasannya.
Padahal banyak situs-situs yang tidak seharusnya di block misalnya, hamsterimut.com.
Beberapa ISP memblokir nya dengan memaksa DHCP OFFER nya memberikan alamat DNS milik mereka dan memblokir dengan unresolve domain nya
Cara tradisional mengatasinya adalah dengan menyuruh komputer kita untuk tidak menaati dynamic addressing dari DHCP OFFER dengan cara…
set static DNS Google (8.8.8.8) di interface yang kita inginkan.
Tapi itu dulu…
Sekarang beberapa ISP seperti telkomsel dan indosat mengubah sistem blokir DNS nya menjadi apa yang disebut dengan Transparent DNS….
Penjelasan singkat nya, Firewall di ISP mengarahkan dengan paksa request ke port 53 ke DNS lokal mereka.
Yah, sudah dipaksa pakai DNS Server mereka lewat DHCP OFFER kini maksa lagi di ujung firewall mereka, hadeehh…
Sulitkah meredirect traffic? Di Linux itu gampang dengan iptables, 3 langkah
1. Aktifin IPv4 forwarding :
echo “1” > /proc/sys/net/ipv4/ip_forward
2. Add rule buat forward traffic udp port 53 ke IP DNS Server lokal misalnya 69.50.232.52
iptables -t nat -A PREROUTING -p udp –dport 53-j DNAT –to-destination 69.50.232.52:53
3. Jadiin masquarade
iptables -t nat -A POSTROUTING -j MASQUERADE
Okay bar, semuanya udah redirect, terus gue harus pakai VPN gitu?
Jawabannya:
VPN bisa saja melewati nya dan pasti jika dan hanya jika ALL TRAFFIC goes to VPN Server termasuk requet DNS.
Yah, aman sih tapi tidak memberikan koneksi yang lega selega-leganya.
Mana ada sih cerita pakai pengaman itu menyenangkan, ya ga? hehehe..
Sebenarnya ada beberapa kasus kenapa VPN bisa menyebabkan kecepatan Internet meningkat:
1. Karena ISP merazia unencrypted traffic berdasarkan IP sehingga beberapa website di throttle, ketika pakai VPN jadi encrypted dan bebas dari throttling.
2. Karena Routing yang biasa digunakan untuk ke website tersebut bottleneck sehingga pas pakai VPN kebetulan routingnya beda.
Tapi ingat tujuan awal VPN bukanlah mempercepat koneksi Internet! tapi untuk keamanan!
Wong nambah “satu hop”, Jadi jangan heran kalau internet jadi lemot tergantung server VPN nya.
Apalagi dengan semua trafik melewati satu server VPN yang antah berantah.
Oh ya, beberapa orang bertanya, udah pakai VPN kenapa masih kena Internet Sehat ya?
Jawabannya karena Trafik DNS ente bocor bocor bocoorr tidak lewat VPN interface!
DNSCrypt
Nah kita sudah tahu cara untuk melewati Packet Inspection sang ISP. Apalagi kalau bukan encrypted traffic.
VPN melakukan enkripsi total semua trafik, dan itu nambah delay karena lewat server VPN.
Instead of using all traffic, kita hanya enkripsi DNS traffic kita saja. YAP! Dari ide tersebut lah maka metode DNSCrypt terlahir.
Bagaimana prosesnya DNSCrypt? Sama halnya SSL yang mengubah HTTP menjadi HTTPS, DNSCrypt mengubah DNS request menjadi encrypted DNS request.
Hostingan dari OpenDNS
Download DNSCrypt untuk Windows: https://github.com/opendns/dnscrypt-win-client
Download DNSCrypt untuk Mac: http://opendns.github.com/dnscrypt-osx-client/
Hostingan dari dnscrypt.org
Download DNSCrypt untuk Windows: https://github.com/Noxwizard/dnscrypt-winclient
Download DNSCrypt untuk Windows sebagai service: http://simonclausen.dk/projects/dnscrypt-winservicemgr/
Download DNSCrypt untuk Mac: https://github.com/alterstep/dnscrypt-osxclient
Download DNSCrypt untuk Linux/Android: http://opendesktop.org/content/show.php/DNScrypt+Tools?content=164488
Jujur sih paling sering dipakai buat Android karena PirateBay Browser tidak dapat digunakan di jaringan Telkomsel, padahal banyak film-film baru yang harus diupdate.
Tutorial Singkat DNSCrypt di Windows
1. Download https://github.com/opendns/dnscrypt-win-client dari OpenDNS
2. Run as Admiistrator untuk file dnscrypt-proxy.exe
3. Set static DNS IP address ke 127.0.0.1
4. Jangan lupa ipconfig/flushdns untuk hilang dns cache. Dan semua DNS request sudah di encrypt deh
Kalau di Wireshark kira-kira begini…. keliatan di encrypt ya meskipun kita udah decode 443 as DNS.
Seperti yang dikatakan OpenDNS sendiri diakui tidak menggunakan SSL melainkan elliptic-curve cryptography dimana diklaim lebih aman daripada RSA yg digunakan SSL.
Tutorial Singkat DNSCrypt di Android:
1. Rooting Android
2. Instal BusyBox
3. Download DNSCrypt buat ARM sesuaiin dengan Android kamu (misalnya ARMv7 buat XperiaZ1). https://copy.com/M6r38z6g3iyj
4. Install SSHDroid buat login ke sistem dan Init.d Universal untuk buat init.d otomatis start DNSCryptnya
5. Mount System as RW, mount -o remount,rw /system
6. Unzip file dan copy ke /system/xbin/ serta file daemonnya ke folder /system/etc/init.d
7. Check /etc/resolv.conf, pastikan nameserver 127.0.0.1
hasil akhir:
root@C6903:/system/etc/init.d # ls
dnscrypt found no script
root@C6903:/system/xbin # ls dnsc*
dnscrypt dnscrypt-proxy
Bagaimana sih prosesnya:
Mari lihat file init.d
root@C6903:/system/etc/init.d # cat dnscrypt
#!/system/bin/sh
dnscrypt-proxy –daemonize –resolver-address=208.67.220.220:443 –provider-name=2.dnscrypt-cert.opendns.com –provider-key=B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
iptables -t nat -A OUTPUT -p udp –dport 53 -j DNAT –to-destination 127.0.0.1
Kelihatan lah ya, dnscrypt daemon resolver address ke port 443 (HTTPS) yang akan dikira sebagai traffic HTTPS biasa oleh ISP.
Terus iptables digunakan untuk memaksa semua DNS request diarahin ke 127.0.0.1 yap itu ke arah DNSCrypt Daemon.
Result
Dapat di cek dengan mengakses http://www.opendns.com/welcome
Kalau gagal Hasilnya begini
Kalau berhasil hasilnya begini
Sumber:
https://www.dnsleaktest.com/what-is-transparent-dns-proxy.html