Jak číst chybu Squid SO_ORIGINAL_DST
Ověřte, zda explicitně nastavený klient dosáhl odposlouchávajícího listeneru, než začnete řešit selhání hledání původního cíle v Squidu.
NF getsockopt(SO_ORIGINAL_DST) ukazuje na hledání původního cíle. Při zachytávání musí Squid zjistit, kam přesměrované spojení původně směřovalo.
Explicitně nastavený prohlížeč posílá požadavky na proxy záměrně. Takové spojení nezíská historii zachytávání NAT jen proto, že je u portu Squid listeneru napsáno intercept.
Tento nesoulad proto může selhat dřív, než začne hrát roli certifikát cíle.
Začněte tím, jak spojení dorazilo
- Pokud má aplikace nastavenou adresu proxy, určete obvyklý listener dopředné proxy, který má použít.
- Pokud brána přesměrovává jinak přímý provoz, ověřte, že dorazí k zamýšlenému zachytávajícímu listeneru a že podporované uspořádání NAT zachovává potřebné informace o cíli.
- Pokud existují oba režimy, zjistěte, na kterou adresu a port se selhávající klient skutečně připojil.
Dokumentace Squidu k http_port to říká jasně: vynechání přepínače režimu volí režim dopředné proxy; intercept očekává zachytávání NAT na IP vrstvě.
Potom řešte bezpečnost přenosu odděleně. HTTP proxy umí přenášet HTTPS přes CONNECT. Spojení TLS k proxy vyžaduje kompatibilní listener a nastavení klienta. Dešifrování provozu k cíli je další volitelná možnost.
Nekopírujte staré “řešení HTTPS”, které zapíná generování certifikátů jen proto, že adresa cíle začíná na HTTPS. Nejprve opravte soulad mezi klientem a listenerem. Pokud pak zůstane skutečná chyba TLS, bude to užitečnější chyba k vyšetření.