Zašto DNAT na 127.0.0.1 zahtijeva posebnu pažnju
Razumite route_localnet kad preusmjeravate vanjski promet na proxy komponentu vezanu uz loopback.
Usluga sluša na 127.0.0.1:1080. DNAT pravilo usmjerava dolazni promet 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 tijekom usmjeravanja. Zadana vrijednost čuva uobičajenu loopback granicu. Iznimka za pojedino sučelje može biti relevantna za namjeran dizajn lokalnog preusmjeravanja.
To objašnjava zašto ispravno pravilo s drugog računala može ovisiti o sysctl postavci koju niste kopirali. Ali ne opravdava uključivanje te opcije posvuda.
Sigurnosna pretpostavka mijenja se s rutom
Vezanje na loopback često se rabi jer pomoćna komponenta nema samostalnu autentifikaciju klijenata. Ako se promet s drugog sučelja može usmjeriti na nju, sama adresa vezanja više ne opisuje dostupnu publiku. Ograničite izvore ulaza, odredište i port u stvarnom skupu pravila, uključujući promet 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 sučelja 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 odnosi se na vezanje socketa 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 prometa na SOCKS port i dalje zahtijeva prevoditelja; iznimka u usmjeravanju ne može pružiti nedostajuće pregovaranje.