127.0.0.1 adresine DNAT neden özel dikkat gerektirir
Dış trafiği loopback'e bağlı bir proxy bileşenine yönlendirirken route_localnet'i anlayın.
Bir hizmet 127.0.0.1:1080 üzerinde dinliyor. Bir DNAT kuralı gelen trafiği o adrese yönlendiriyor, ancak bağlantı yine de başarısız oluyor. Hizmet sağlıklı olabilir ve NAT kuralı eşleşebilir: IPv4 loopback adresleri yönlendirmede özel bir işlem görür.
Linux'un route_localnet ayarı, yönlendirme sırasında 127/8 adreslerinin Mars adresi olarak ele alınıp alınmayacağını denetler. Varsayılan değeri olağan loopback sınırını korur. Belirli bir arayüze özgü istisna, bilinçli bir yerel yönlendirme tasarımı için anlamlı olabilir.
Bu, başka bir makinede çalışan bir kuralın kopyalamadığınız bir sysctl'e bağlı olabileceğini açıklar. Ancak bu seçeneği her yerde açmayı haklı çıkarmaz.
Güvenlik varsayımı rota ile birlikte değişir
Loopback'e bağlama, genellikle bir yardımcı bileşenin bağımsız istemci kimlik doğrulaması olmadığı için kullanılır. Başka bir arayüzden gelen trafik oraya yönlendirilebiliyorsa, yalnızca bağlama adresi artık erişilebilir kitleyi tanımlamaz. Gerçek kural kümesinde giriş kaynaklarını, hedefi ve bağlantı noktasını sınırlayın; ilgili olduğunda loopback kaynak veya hedef adresi iddia eden trafiği de dahil edin.
Hizmeti içeren ağ ad alanını gözden geçirin. Bir konteynerin loopback'i ana makinenin loopback'i değildir ve ana makine arayüz ayarını değiştirmek konteynerde otomatik olarak bir dinleyici oluşturmaz.
rp_filter kaynak yol doğrulamasıyla ilgili farklı bir soruyu yanıtlar. Bunu genel olarak kapatmak, loopback yönlendirmesini anlamanın genel bir yerine geçeni değildir. Aynı şekilde ip_nonlocal_bind, soketlerin yerel olmayan adreslere bağlanmasıyla ilgilidir; bu DNAT yolunun doğru olmasıyla değil.
Son olarak, yönlendirilen protokol dinleyiciye uygun olmalıdır. Ham HTTP veya TLS trafiğini bir SOCKS bağlantı noktasına göndermek hâlâ bir çevirici gerektirir; yönlendirme istisnası eksik olan anlaşmayı sağlayamaz.