Päring saabub tunnelii IP-aadressiga ja lahkub samast konteinerist naabriteenuse aadressiga. Nende kahe hetke vahel kirjutas DNAT sihtkoha ümber ja pakett lakkas olemast VPN-konteineri sisend. Nüüd on see edasisaadetav liiklus, mida hinnatakse teise reegli järgi. See nihe selgitab, miks tulemüürireegel, mis tunneliaadressi jaoks õige välja näeb, ei mõjuta tõlgitud ühendust.

Jälgige paketti pärast tõlkimist

Võtke kliendikogum 10.90.0.0/24 ja tunneliaadress 10.90.0.1. Ühel sillal paikneb kaks konteinerit: 192.0.2.2 käitab VPN-i ja 192.0.2.3 käitab rakendust. Klient ühendub aadressile 10.90.0.1:8080 ja DNAT-reegel VPN-konteineri nimeruumis kirjutab selle ümber rakenduse tegelikuks aadressiks ja pordiks. Seejärel saadab marsruut paketi üle silla. Need aadressid on illustratiivsed, mitte juurutamisretsept.

Port, millel rakendus tegelikult kuulab, võib erineda mis tahes hostil avaldatud pordist. Lugege kuulajat konteineri sees, selle asemel et eeldada, et mõlemad numbrid kattuvad.

Luba kuulub edasisaatmise teele

VPN-konteiner vajab IP-edasisaatmist ja edasisaatmisotsust, mis on piiratud kliendikogumi, rakenduse aadressi ja kavandatud pordiga. Loodud vastused vajavad oma luba. Reegel, mis vastab algsele tunneliaadressile, ei vasta pärast DNAT-i, sest sihtkoht on juba muutunud. INPUT-luba on vale konks liiklusele, mis ei ole enam sellele hostile adresseeritud.

Hoidke ulatus kitsas: üks allikavahemik, üks sihtkoht, üks teenus. Lubav edasisaatmise reegel on lihtsam kirjutada ja palju raskem hiljem kaitsta.

docker exec vpn-container ip route get 192.0.2.3
docker exec vpn-container iptables -t nat -S
docker exec vpn-container iptables -S FORWARD

Dockeri ahelad ei ole teie konteineri ahelad

Reeglid konteineri nimeruumis ei ole Dockeri hosti reeglid. Kui liiklus liigub tunneliliideselt sillale, võib hosti silla tulemüür teha teise otsuse. Dockeri iptables-taustal ilmub see otsus dokumenteeritud edasisaatmisahelates ja pärast DNAT-i asuvates vastenduspunktides.

Dockeri tulemüüri viide kirjeldab neid ahelaid ja vastendust pärast DNAT-i. Ärge parandage puuduvat luba Dockeri tulemüürihalduse väljalülitamisega ega iga ahela lubavaks muutmisega, sest see eemaldab piiri, mida te kasutada tahate.

Tee tagasiteest teadlik valik

Kui allikaaadress säilib, näeb rakendus 10.90.0.x ja peab vastused tagasi VPN-konteineri kaudu marsruutima. Muidu saadab selle tavaline Dockeri vaikevärav need hostile, kes tunnelit ei oma. Alternatiiv on kitsalt piiratud allikatõlge VPN-konteineris, mis lihtsustab vastust, aga peidab kliendi rakenduse eest. Valige teadlikult ja kirjutage üles, mille valisite.

Katsetage värsket lubatud ühendust tavalisest kliendist ja kinnitage seejärel, et mitteseotud pordid jäävad suletuks. Kui pakett kaob, uurige VPN-i nimeruumi, rakenduse nimeruumi ja rakenduse enda logi. Ping sillaväravale ei ole teenuse vastuvõtutest.

Hoidke reeglid konteineri toetatud käivituskonfiguratsioonis, sest interaktiivsed muudatused kaovad selle uuesti loomisel. Hosti pordi avaldamine on teine avatuse tee ja seda ei ole vaja ainult seetõttu, et teenus on tunneli kaudu kättesaadav.

Seotud artiklid