Den Host äntwert weider op SSH, nodeems eng VPN mat vollem Tunnel eropgeet, awer en Docker-publizéierte Service op derselwechter Maschinn gëtt stëll. Um Lauschterer ass näischt falsch: de Container leeft, d'Portmap existéiert, an de Paket kënnt un. De Container ass gesond an d'Ufro erreecht en tatsächlech. Wat anescht ass, ass wou d'Äntwert ufänkt, wann Linux seng Route wielt, an deen Ënnerscheed entscheet, wéi ee vun den zwou Designen hei drënner du brauchs.

Folg der Tuple duerch den Destinatiouns-NAT

Huelt en Host op 192.0.2.10, deen TCP 2222 op e Container op 172.30.240.5:22 publizéiert. Eng Ufro vun 198.51.100.25 gëtt iwwersat, ier se den Container erreecht, an de Container äntwert als sech selwer.

WAN request:      198.51.100.25 -> 192.0.2.10:2222
after DNAT:       198.51.100.25 -> 172.30.240.5:22
container reply:  172.30.240.5:22 -> 198.51.100.25

Bei der Route-Entscheedung vum Host dréit d'Äntwert nach ëmmer d'Quelladress vum Container. D'Reversiwwersetzung stellt déi publizéiert Tuple méi spéit erëm hier, an dofir gesäit de Paket genee an deem Abléck falsch aus, wou d'Route gewielt gëtt.

Firwat eng Regel just fir den Host dat verpasst

Eng Regel, déi d'WAN-Tabell just fir Paketen vun 192.0.2.10 auswielt, deckt dem Host seng eege Daemone of a verpasst dës weidergeluecht Äntwert komplett. D'Quelladress op der Äntwert ass 172.30.240.5, net den Host.

D'Iwwerkorrektur ass, alles aus dem Container iwwer de WAN ze routeren, wat och dem Container seng onbetraffe erausgäng Verbindunge vun der VPN aushëlt. Dat ass eng aner Politik wéi déi gefrot gouf, an et iwwerrascht meeschtens een spéider.

Post-DNAT-Matching ass en aneren Hook

D'Docker-Dokumentatioun iwwer Firewalls bemierkt, datt gewéinlech Benotzerfilterung d'Destinatioun nom DNAT gesäit, dofir ass d'Publizéiert-Port 2222 an enger normaler Regel ze passen net datselwecht wéi de Containerport 22 ze passen. Wann déi ursprénglech Tuple wichteg ass, benotz dee ënnerstëtzten ursprénglechen-Destinatioun-Mechanismus, amplaz ze roden, wéi eng Port siichtbar ass.

Dës Hook-Verwierung produzéiert Reegelen, déi richteg ausgesinn an ni passen. Kontrolléier d'Zieler op der Regel selwer, ier s du d'Politik ëmschreifs. Eng Regel ouni Treffer seet dir, datt se do bewäert gëtt, wou de Paket ni hikënnt.

Design A: d'Entscheedung als Verbindungszustand droen

Eng Verbindungsmark ka d'Entréesentscheedung duerch d'Iwwersetzung droen, awer se muss um Paket restauréiert sinn, ier déi wichteg Routënsich geschitt. D'Etappe sinn:

  1. Reservéier e Markfeld an eng Regelprioritéit, déi net mat Docker, der VPN oder engem aneren Politikbesëtzer kollidéieren.
  2. Identifizéier just déi virgesinn nei WAN-Verbindung op engem Punkt virum DNAT, wou d'Verbindungsverfolgung verfügbar ass.
  3. Notéier d'Entscheedung op der Verbindungsmark, ouni d'ursprénglech Ufro selwer an d'WAN-Tabell ze zwéngen.
  4. An der Äntwertrichtung restauréier just deng eege Markbits um Paket virum Routing.
  5. Wiel eng komplett WAN-Tabell fréi genuch, sou datt eng VPN-Regel net als éischt ka gewannen.

Déi Tabell brauch déi richteg verbonne Routen an de Gateway. Si brauch och e definéiert Verhalen, wann d'Route feelt. Stëll an den Tunnel ze falen ass dat schlechst Resultat, well d'Konfiguratioun nach ëmmer schéngt ze funktionéieren. Fails dofir zou an log et.

Design B: um Host terminéieren

En bewosst konfiguréierten Frontend op der Hostsäit, wéi en TCP-Proxy oder en Reverse-Proxy virum Container, hält d'Äntwert vun der Hostadress hier. Reegelen, déi fir den Host geschriwwen goufen, behuelen sech dann wéi erwaart, an de Container bleift op sengem private Netz.

De Präis ass nach en déckelegen Deel mat senger eegener Konfiguratioun, Quelladressbehandlung an Zougangskontrollen. Et ass meeschtens déi méi einfach ënnerstëtzte Grenz, an et ass dacks déi richteg Äntwert, wann d'Routingpolitik vun enger Persoun ënnerhal soll ginn, déi kéint fortgoen.

Verifizéier d'Ännerung, net d'Absicht

Maach eng nei autoriséiert Verbindung vun der ëffentlecher Säit op a bestäteg, datt d'Äntwert iwwer déi virgesin Interface erausgeet. Kontrolléier dann, datt eng onbetraffe Ufro, déi de Container ufänkt, nach ëmmer der VPN follegt.

Maach d'Verbindungstabell vun der Maschinn net eidel fir eng Regel ze testen: bestoend Entréen halen hir fréier Map, an d'Eidelmaache bricht alles anescht um Host. Eng Port publizéieren definéiert d'Erreechbarkeet. Et definéiert net den Äntwertswee. Schréif den ausgewielten Design mat sengen Tabellennimm op, sou datt déi nächst Persoun en net während engem Tëschefall nach eng Kéier muss entdecken.

Ähnlech Artikelen