Transparentný proxy DNAT: prečo záleží na spätnej trase
Pochopte, prečo DNAT môže doručiť požiadavku samostatnému proxy, zatiaľ čo odpoveď obíde bránu a spojenie sa preruší.
Presmerovaný SYN môže doraziť do Squidu, zatiaľ čo klient stále čaká na vypršanie. V nastavení DNAT musí spätný paket doraziť aj do brány, ktorá vlastní stav prekladu.
Uvažujme túto hypotetickú LAN:
client 192.168.40.25 → gateway 192.168.40.1
DNAT → proxy 192.168.40.10
proxy 192.168.40.10 → client 192.168.40.25 directlyKlient sa pôvodne pripojil k adrese webu. Po DNAT proxy vidí zdroj klienta a môže použiť trasu miestnej podsiete na priamu odpoveď. Táto odpoveď obíde spätný preklad brány a môže sa ku klientovi dostať z adresy proxy namiesto očakávanej adresy webu. Brána nedokáže opraviť pakety, ktoré nikdy nedostane.
| Prístup | Dôsledok |
|---|---|
| Viesť odpovede proxy cez prekladajúcu bránu | Prichádzajúce spojenie k proxy si môže zachovať zdrojovú adresu klienta |
| Použiť aj zodpovedajúci preklad zdroja | Proxy odpovedá bráne ako svojmu partnerovi, ale teraz vidí ten preložený zdroj namiesto pôvodného klienta |
Neodstraňujte SNAT pre krajšie logy bez overenia spätnej trasy. Široké nasadenie mení aj zdrojové ACL a priradenie; prijmite tento dôsledok ako súčasť návrhu.
Dôveryhodný HTTP skok môže preniesť metadáta klienta v odovzdávacej hlavičke, ale NAT túto hlavičku nevytvára ani z nej nerobí identitu partnera TCP. Zachovanie zdroja na spojení do Squidu ho nezachová ani na samostatnom spojení Squidu na web.
Napokon návrh zachytávania musí stále poskytnúť informácie o cieli, ktoré Squid vyžaduje. Symetrické spätné smerovanie rieši tento mechanizmus vypršania, nie celú konfiguráciu transparentného proxy.