Zašto DNAT na 127.0.0.1 zahtijeva posebnu pažnju
Razumite route_localnet kada preusmjeravate vanjski saobraćaj na proxy komponentu vezanu za loopback.
Usluga sluša na 127.0.0.1:1080. DNAT pravilo usmjerava dolazni saobraćaj na tu adresu, ali veza ipak ne uspijeva. Usluga može biti ispravna, a NAT pravilo može se podudarati: IPv4 loopback adrese imaju poseban tretman pri usmjeravanju.
Linuxov route_localnet određuje tretiraju li se adrese 127/8 kao marsovske tokom usmjeravanja. Zadana vrijednost čuva uobičajenu loopback granicu. Iznimka za određeni interfejs može biti relevantna za namjeran dizajn lokalnog preusmjeravanja.
To objašnjava zašto ispravno pravilo s drugog računala može zavisiti od sysctl postavke koju niste kopirali. Ali ne opravdava uključivanje te opcije svuda.
Sigurnosna pretpostavka mijenja se s rutom
Vezanje na loopback često se koristi jer pomoćni komponent nema samostalnu autentifikaciju klijenata. Ako se saobraćaj s drugog interfejsa može usmjeriti na njega, sama adresa vezanja više ne opisuje dostupnu publiku. Ograničite izvore ulaza, odredište i port u stvarnom skupu pravila, uključujući saobraćaj koji tvrdi loopback izvorišne ili odredišne adrese kada je to relevantno.
Pregledajte mrežni prostor imena koji sadrži uslugu. Loopback kontejnera nije loopback hosta, a promjena postavke interfejsa hosta ne stvara automatski slušatelja u kontejneru.
rp_filter odgovara na drugo pitanje o provjeri putanje izvora. Globalno isključivanje nije opća zamjena za razumijevanje loopback usmjeravanja. Isto tako, ip_nonlocal_bind se odnosi na vezanje soketa na nelokalne adrese, a ne na to da ovaj DNAT put bude ispravan.
Na kraju, preusmjereni protokol mora odgovarati slušatelju. Slanje sirovog HTTP ili TLS saobraćaja na SOCKS port i dalje zahtijeva prevoditelja; iznimka u usmjeravanju ne može pružiti nedostajuću pregovaranje.