Usługa nasłuchuje na 127.0.0.1:1080. Reguła DNAT kieruje ruch przychodzący na ten adres, a jednak połączenie zawodzi. Usługa może być sprawna, a reguła NAT może pasować: adresy loopback IPv4 mają specjalne traktowanie w routingu.

route_localnet w Linuksie określa, czy adresy 127/8 są podczas routingu traktowane jako adresy marsjańskie. Wartość domyślna zachowuje zwykłą granicę loopbacku. Wyjątek dla konkretnego interfejsu może być istotny w zamierzonym projekcie lokalnego przekierowania.

To wyjaśnia, dlaczego działająca reguła z innej maszyny może zależeć od sysctl, którego nie skopiowano. Nie uzasadnia to jednak włączania tej opcji wszędzie.

Założenie bezpieczeństwa zmienia się wraz z trasą

Powiązanie z loopbackiem jest często stosowane, ponieważ komponent pomocniczy nie ma niezależnego uwierzytelniania klientów. Jeśli ruch z innego interfejsu może być tam kierowany, sam adres powiązania nie opisuje już osiągalnego odbiorcy. Ogranicz źródła wejścia, miejsce docelowe i port w rzeczywistym zestawie reguł, w tym ruch deklarujący loopbackowe adresy źródłowe lub docelowe, gdy jest to istotne.

Przejrzyj przestrzeń nazw sieci zawierającą usługę. Loopback kontenera nie jest loopbackiem hosta, a zmiana ustawienia interfejsu hosta nie tworzy automatycznie nasłuchującego procesu w kontenerze.

rp_filter odpowiada na inne pytanie dotyczące walidacji ścieżki źródłowej. Globalne wyłączenie nie jest ogólnym zamiennikiem zrozumienia routingu loopbacku. Podobnie ip_nonlocal_bind dotyczy wiązania gniazd z adresami nie-lokalnymi, a nie tego, by ta ścieżka DNAT była poprawna.

Na koniec przekierowany protokół musi pasować do nasłuchującego procesu. Wysyłanie surowego ruchu HTTP lub TLS do portu SOCKS nadal wymaga translatora; wyjątek w routingu nie zapewni brakującego uzgadniania.

Powiązane artykuły