Sebuah layanan mendengarkan pada 127.0.0.1:1080. Aturan DNAT mengarahkan lalu lintas masuk ke alamat itu, tetapi koneksi tetap gagal. Layanan bisa sehat dan aturan NAT bisa cocok: alamat loopback IPv4 mendapat perlakuan perutean khusus.

route_localnet di Linux menentukan apakah alamat 127/8 diperlakukan sebagai alamat Mars selama perutean. Nilai bawaannya mempertahankan batas loopback yang biasa. Pengecualian khusus antarmuka bisa relevan untuk rancangan pengalihan lokal yang disengaja.

Itu menjelaskan mengapa aturan yang berfungsi di mesin lain bisa bergantung pada sysctl yang tidak Anda salin. Namun itu tidak membenarkan pengaktifan opsi tersebut di mana-mana.

Asumsi keamanan berubah seiring rute

Pengikatan loopback sering dipakai karena komponen pembantu tidak memiliki autentikasi klien yang mandiri. Jika lalu lintas dari antarmuka lain dapat dirutekan ke sana, alamat pengikatan saja tidak lagi menggambarkan audiens yang dapat dijangkau. Batasi sumber masuk, tujuan, dan port dalam kumpulan aturan yang sebenarnya, termasuk lalu lintas yang mengklaim alamat sumber atau tujuan loopback bila relevan.

Tinjau ruang nama jaringan yang memuat layanan. Loopback kontainer bukan loopback host, dan mengubah pengaturan antarmuka host tidak otomatis membuat pendengar di dalam kontainer.

rp_filter menjawab pertanyaan berbeda tentang validasi jalur sumber. Mematikannya secara global bukan pengganti umum untuk memahami perutean loopback. Demikian pula, ip_nonlocal_bind menyangkut pengikatan soket ke alamat nonlokal, bukan menjadikan jalur DNAT ini benar.

Akhirnya, protokol yang dialihkan harus cocok dengan pendengar. Mengirim lalu lintas HTTP atau TLS mentah ke port SOCKS tetap memerlukan penerjemah; pengecualian perutean tidak dapat menyediakan negosiasi yang hilang.

Artikel terkait