Bisakah rute DHCP mengirim lalu lintas Anda keluar dari terowongan VPN?
Enkripsi melindungi paket hanya setelah paket masuk ke terowongan. Pemilihan rute menentukan paket mana yang masuk. Periksa rute DHCP, aturan, dan jalur yang diambil aplikasi.
Enkripsi dimulai pada sebuah batas, dan batas itu adalah keputusan perutean yang diambil titik akhir sebelum paket apa pun dienkapsulasi. Jaringan yang tidak pernah melihat kunci Anda tetap bisa memberi mesin Anda rute yang lebih disukainya daripada rute terowongan itu sendiri. Di sini dua kegagalan tertukar: membaca paket yang sudah berada di dalam terowongan, dan mengarahkan paket yang tidak pernah diletakkan di sana.
Pembedaan ini penting karena kegagalan kedua lebih murah diatur dan jauh lebih mudah terlewat. Ia muncul sebagai permintaan yang keluar lewat antarmuka yang salah sementara klien masih melaporkan koneksi yang sehat.
Dua cara jaringan dapat memengaruhi Anda
Paket yang mencapai terowongan memiliki muatannya tersembunyi dari setiap lompatan yang dilintasinya, dan perlindungan itu tetap berlaku bahkan ketika jalurnya mengejutkan Anda. Paket yang tidak pernah mencapai terowongan adalah permintaan biasa dari alamat Anda, dikirim ke mana pun tabel rute menunjuk. Kegagalan pertama memerlukan sandi yang rusak atau rekan yang disusupi, sedangkan yang kedua hanya memerlukan pesan konfigurasi yang dipilih mesin Anda untuk dipercaya. Asimetri itulah sebabnya separuh perutean layak mendapat tinjauannya sendiri.
Peralatan di jalur tidak memerlukan kunci Anda untuk memengaruhi kasus kedua. Ia hanya memerlukan titik akhir Anda menerima rute, resolver, atau aturan kebijakan yang menghasilkannya.
expected: app -> tunnel device -> encapsulation -> internet
observed: app -> wlan0 -> plaintext -> internet
Dari mana rute bisa datang sebelum terowongan ada
DHCP membagikan lebih dari sekadar sewa alamat. Opsi rute statis tanpa kelas dapat membawa prefiks tujuan dan lompatan berikutnya, dan RFC 3442 membahas konsekuensi keamanan dari alamat router yang salah: lalu lintas yang salah diarahkan, penolakan layanan, atau pengamat yang duduk di jalur. Klien yang menerima rute tersebut sebelum terowongan menyala bisa berakhir dengan jalur pilihan yang tidak ada hubungannya dengan penyedia Anda.
Tidak satu pun dari itu membuat injeksi rute menjadi universal. Klien harus menerima opsi itu, prefiks harus mencakup lalu lintas yang Anda pedulikan, lompatan berikutnya yang dipilih harus dapat dijangkau, dan kebijakan penegakan harus mengizinkan paket keluar lewat jalur itu. Hapus salah satunya dan respons yang sama menjadi tidak berbahaya. Itu juga sebabnya dua mesin di satu jaringan dapat berperilaku berbeda, karena keduanya tidak menjalankan klien yang sama, kebijakan yang sama, atau bahkan keluarga alamat yang sama.
IPv6 layak mendapat putaran sendiri, karena pengumuman router membawa rute default melalui kode yang berbeda dari opsi DHCPv4. Uji yang hanya memeriksa tabel v4 belum mencakupnya.
Periksa jalur yang sebenarnya dipilih kernel
Pencarian rute dapat dijawab, jadi tanyakanlah alih-alih menyimpulkan dari lampu status. Perintah di bawah ini menunjukkan rute dan sumber yang dipilih untuk satu tujuan, ditambah aturan yang dapat mengalahkan tabel utama. Jalankan saat terhubung dan lagi setelah menyambung ulang, karena pembaruan sewa dapat mengubah jawabannya.
ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com
Baca keluaran untuk dua hal: antarmuka yang disebut dalam rute dan alamat sumber yang dipilih. Rute terowongan menyebut perangkat terowongan, rute yang bocor menyebut perangkat fisik, dan perbedaannya terlihat tanpa mendekripsi apa pun. Jika jawabannya berubah antarpenjalanan, simpan kedua keluaran dan bandingkan aturan yang menghasilkannya.
Jangan berhenti pada rute default. Pengecualian aplikasi, prefiks terowongan terpisah, atau aturan kebijakan kedua dapat membawa tujuan tertentu mengelilingi terowongan sementara rute default masih menunjuk ke dalam.
Putuskan di mana penegakan harus berada
Tiga kondisi menentukan apakah penegakan di sisi klien cukup atau Anda memerlukan sesuatu di luarnya. Jika klien memasang dan mempertahankan rute untuk setiap keluarga alamat yang Anda gunakan, terowongan yang memiliki rute default biasanya cukup. Jika mesin harus menjangkau sumber daya lokal sementara semua yang lain tetap di dalam terowongan, pengecualian itu harus didaftar dan dimiliki alih-alih diserahkan kepada apa pun yang diiklankan jaringan akses. Dan jika platform dapat mengikat lalu lintas ke antarmuka per aplikasi, ikatan itu adalah jaminan yang lebih kuat daripada rute yang dapat dikalahkan apa pun.
Apa pun yang Anda pilih, tuliskan keputusannya di tempat konfigurasi berada. Aturan yang ada karena seseorang mengetiknya saat insiden tidak akan bertahan melewati boot berikutnya, jadi jaga pengecualian lokal dan pengecualian bootstrap tetap sempit dan catat mengapa masing-masing ada.
Jalankan ulang perintah pencarian setelah setiap peningkatan klien dan setiap perubahan jaringan, dan bandingkan dengan keluaran terakhir yang dicatat. Tabel rute adalah batas penegakan, jadi perlakukanlah sebagai batas.