Nama VPN Peribadi Gagal? Perlindungan Rebinding DNS Menjadi Syak
Penyelesai yang menolak jawapan ruang peribadi merosakkan nama dalaman, bukan terowong. Baca jawapan, hadkan pengecualian, kekalkan perlindungan di tempat lain.
Di LAN pejabat, nama dalaman menjawab serta-merta. Sebaik VPN dihidupkan ia berhenti berfungsi, aplikasi melaporkan tamat masa, dan terowong itu sendiri masih membawa trafik tanpa rungutan. Yang berubah ialah penyelesai, dan penyelesai itu mempunyai pandangan sendiri tentang alamat peribadi.
Perlindungan rebinding wujud untuk menghentikan satu helah tertentu. Nama peribadi yang sengaja diterbitkan kelihatan cukup serupa sehingga pertahanan itu tercetus.
Baca Jawapan Sebelum Baca Dasar
Tanyakan nama itu kepada penyelesai yang benar-benar ditolak oleh VPN, bukan yang digunakan komputer riba anda di rumah. Bandingkan jawapan dengan rekod yang anda jangkakan, dan catat sama ada balasannya kosong, ditolak, atau penuh dengan alamat awam yang tidak dirancang sesiapa.
Gejalanya bertindih, jadi bentuk jawapan yang menentukan diagnosis. NXDOMAIN ialah rekod yang hilang, REFUSED ialah peraturan akses, alamat awam untuk nama dalaman ialah kesilapan dasar atau split-DNS, dan alamat peribadi yang betul tetapi tidak dapat digunakan oleh klien ialah masalah yang sama sekali berbeza. Sambungan yang ditolak atau permintaan yang tersekat tidak membuktikan apa-apa dengan sendirinya, sebab itulah arahan pertama dalam tiket sebegini sepatutnya carian nama, bukan mula semula. Tuliskan jawapan itu sebelum mengubah apa-apa.
Apa Yang Sebenarnya Dihalang oleh Pertahanan Itu
Rebinding DNS berfungsi dengan menukar ke alamat apa sesuatu nama diselesaikan selepas klien sudah mempercayainya. Halaman dimuatkan daripada nama yang dikawal penyerang, jawapan bertukar kepada alamat peribadi, dan pelayar diperdaya untuk bercakap dengan sesuatu di rangkaian setempat yang tidak akan pernah ia terima sambungan langsungnya. Pertahanannya ialah menolak jawapan yang menunjuk ke ruang peribadi apabila penyelesai tidak pernah diminta menyediakan ruang nama peribadi. Asimetri itulah keseluruhan serangan.
dnsmasq mendokumenkan tepat tingkah laku itu, bersama pengecualian setiap domain. Dalam halaman manualnya, ia menerangkan rebind-domain-ok sebagai cara menamakan domain yang boleh memulangkan alamat sedemikian secara sah. Bacalah ia sebagai isyarat bahawa pembetulan yang dimaksudkan ialah kebenaran terbatas, bukan suis global.
Hadkan Pengecualian kepada Ruang Nama
Betulkan ruang nama dahulu, kemudian pengecualian. Sahkan bahawa nama yang gagal itu milik domain yang dikawal organisasi dan rekodnya diselenggara dengan sengaja. Alamat tidak dijangka yang hanya menyerupai julat LAN biasa wajar disyaki, bukan diberi pengecualian, jadi periksa pemilik zon sebelum menulis sebarang kebenaran.
# ask the resolver the VPN pushed, and show the full answer
dig +noall +answer db.corp.example @10.40.0.1
dig +short db.corp.example @10.40.0.1
# dnsmasq: what does the running configuration already allow?
grep -R 'rebind' /etc/dnsmasq.d /etc/dnsmasq.conf
Kemudian tambah kebenaran paling sempit yang meliputi nama yang dimaksudkan: satu domain, atau satu subdomain yang diwakilkan, dalam konfigurasi penyelesai yang ditanya oleh klien VPN. Mematikan perlindungan untuk setiap nama pada penyelesai itu menghapuskan pertahanan bagi kesemuanya sekali gus, termasuk nama yang tidak pernah memerlukannya.
Split DNS tergolong dalam keputusan yang sama. Jika ruang nama peribadi sepatutnya hanya dijawab pada penyelesai dalaman, terbitkan di sana dan hentikan kebocorannya ke penyelesai awam, supaya pengecualian meliputi satu laluan dan bukan setiap laluan.
Uji Semula Sumber dan Pertahanan
Tanyakan lagi, kemudian sambung ke perkhidmatan dan periksa apa yang dilihat klien. Jawapan peribadi yang betul dengan sesi yang berjalan bermakna pengecualian telah berkuat kuasa. Jawapan betul dengan sesi tersekat bermakna laluan atau identiti perkhidmatan ialah syak yang seterusnya.
# the internal name and the public control should behave differently
dig +short db.corp.example @10.40.0.1
dig +short www.example.com @10.40.0.1
# and the service itself, with the certificate it presents
curl -sS -o /dev/null -w '%{http_code}\n' https://db.corp.example/health
Uji juga nama awam melalui penyelesai yang sama. Perlindungan sepatutnya masih berkelakuan betul untuk nama di luar pengecualian, dan jika semakan itu gagal, perubahan itu lebih luas daripada yang dimaksudkan. Jangan usik pengesahan sijil sepanjang masa, kerana nama yang diselesaikan dengan betul masih perlu sepadan dengan sijil yang dikemukakan perkhidmatan.
Catat jawapan yang ditolak, domain, penyelesai dan siapa pemilik dasar itu dalam tiket. Catatan itulah yang mengubah gangguan dalaman yang misteri menjadi perubahan konfigurasi yang boleh disemak seseorang.