Prečo DNAT na 127.0.0.1 vyžaduje osobitnú starostlivosť
Pochopte route_localnet pri presmerovaní externého provozu na proxy komponent viazaný na loopback.
Služba počúva na 127.0.0.1:1080. Pravidlo DNAT smeruje prichádzajúcu prevádzku na túto adresu, no spojenie napriek tomu zlyhá. Služba môže byť v poriadku a pravidlo NAT môže sedieť: adresy loopback IPv4 majú pri smerovaní osobitné zaobchádzanie.
route_localnet v Linuxe určuje, či sa adresy 127/8 pri smerovaní považujú za marsovské adresy. Predvolená hodnota zachováva obvyklú hranicu loopback. Výnimka pre konkrétne rozhranie môže byť relevantná pre zámerný návrh lokálneho presmerovania.
To vysvetľuje, prečo funkčné pravidlo z iného stroja môže závisieť od sysctl, ktorý ste neskopírovali. Neodôvodňuje to však zapnutie tejto voľby všade.
Bezpečnostný predpoklad sa mení s trasou
Väzba na loopback sa často používa preto, lebo pomocný komponent nemá nezávislé overovanie klientov. Ak sa naň dá smerovať prevádzka z iného rozhrania, samotná adresa väzby už neopisuje dosiahnuteľné publikum. Obmedzte zdroje vstupu, cieľ a port v skutočnom súbore pravidiel, vrátane prevádzky, ktorá tvrdí zdrojové alebo cieľové adresy loopback, ak je to relevantné.
Preskúmajte sieťový menný priestor obsahujúci službu. Loopback kontajnera nie je loopback hostiteľa a zmena nastavenia rozhrania hostiteľa automaticky nevytvorí poslucháča v kontajneri.
rp_filter odpovedá na inú otázku týkajúcu sa overovania zdrojovej cesty. Jeho globálne vypnutie nie je všeobecnou náhradou za pochopenie smerovania loopback. Rovnako ip_nonlocal_bind sa týka viazania socketov na nelokálne adresy, nie toho, aby táto cesta DNAT bola správna.
Napokon presmerovaný protokol musí sedieť s poslucháčom. Odosielanie surovej prevádzky HTTP alebo TLS na port SOCKS stále vyžaduje prekladač; výnimka v smerovaní nemôže dodať chýbajúce vyjednávanie.