UNC pristup u Windows kontejnerima: prvo ime, pa identitet
Explorer na hostu ne dokazuje ni DNS put kontejnera ni njegov SMB identitet. Provjerite razrješavanje imena i port 445 unutar kontejnera prije dozvola.
Windows kontejner kojem treba dijeljeni resurs s druge strane vašeg tunela pada na dva nezavisna načina, a Explorer na hostu ne dokazuje nijedan od njih. Kontejner ima vlastitu mrežnu krajnju tačku i vlastiti identitet procesa. Ime koje se razrješava na radnoj površini i sesija koju tamo prihvata file server opisuju radnu površinu, a ne radno opterećenje.
Explorer na hostu nije dokaz
Otvaranje dijeljenog resursa na hostu koristi DNS klijent hosta, routing tabelu hosta i račun pod kojim je host prijavljen. Proces kontejnera ne nasljeđuje ništa od toga implicitno, čak i kada kontejner radi na istom računaru i VPN klijent također radi tamo. Prva granica je mrežni put: može li kontejner razriješiti ime i može li otvoriti TCP sesiju prema SMB portu. Druga je identitet: prihvata li file server ono što kontejner predstavlja, s dozvolama koje radno opterećenje traži.
Tretiranje toga kao jednog problema stvara poznatu petlju proširivanja firewall pravila da bi se popravilo ono što je zapravo odgovor o odbijenom pristupu s dijeljenog resursa.
Slijedite vlastiti zahtjev kontejnera
Mrežom Windows kontejnera upravlja Host Networking Service, koji stvara krajnje tačke s vlastitim mrežnim imenskim prostorom. Odabrani režim odlučuje da li se krajnja tačka prevodi, premošćuje ili priključuje na mrežu dijeljenu s hostom. Ta odluka mijenja dvije stvari odjednom: šta kontejner može razriješiti i koju izvornu adresu vidi file server.
Potvrdite šta sam kontejner vidi prije nego bilo šta promijenite. Ime koje se razrješava izvana može podbaciti iznutra, jer DNS konfiguracija kontejnera nije konfiguracija hosta, a prevedena krajnja tačka može predstaviti izvor koji pravila file servera ne očekuju.
docker exec -it app powershell -Command "Resolve-DnsName files.corp.example" docker exec -it app powershell -Command "Test-NetConnection files.corp.example -Port 445" docker exec -it app powershell -Command "Get-NetIPConfiguration"
Ako razrješavanje podbaci, popravite DNS u mrežnoj konfiguraciji umjesto zamjene adrese. Zamjena imena IP adresom može promijeniti ponašanje autentifikacije i identiteta servera, što jedan problem pretvara u dva. Vlastita politika VPN klijenta je sljedeće što treba provjeriti, jer može različito tretirati procese hosta i promet koji potiče iz kontejnera.
Identitet je zasebna odluka
Slovo pogona koje mapira interaktivni korisnik nije sučelje aplikacije. Ono postoji u jednoj sesiji prijave, a proces kontejnera nije njen dio. Koristite UNC put i dajte radnom opterećenju identitet koji model implementacije podržava. Gdje domena to podržava, grupni upravljani servisni račun (gMSA) pruža upravljani identitet kroz specifikaciju vjerodajnica.
Microsoftov vodič za gMSA u kontejnerima opisuje taj raspored specifikacije vjerodajnica i njegove preduvjete, koji uključuju članstvo u domeni i host sposoban da preuzme vjerodajnicu. Račun, preuzimanje, identitet procesa unutar kontejnera i dozvole na dijeljenom resursu moraju se svi poklopiti. VPN prijava nije taj identitet, a ugrađivanje lozinke u sliku da bi se reproducirala sesija korisnika hosta stvara trajnu izloženost.
Držite neuspjelu fazu vidljivom
Neuspjelo razrješavanje, odbijanje veze i odbijanje pristupa traže različite dokaze. To su redom DNS pitanje, pitanje rutiranja ili filtriranja i pitanje autentifikacije ili dozvola. Čitajte odgovor koji je kontejner dobio, a ne generičku grešku aplikacije.
Testirajte s vlastitim identitetom radnog opterećenja i testirajte i odbijanje.
Planirajte ponovno povezivanje
VPN putevi padaju. Kada se tunel vrati, krajnja tačka može se vratiti s drugom prevedenom adresom, a postojeća SMB sesija može biti mrtva bez da aplikacija to primijeti. Riješite to u aplikaciji: ponovno uspostavite put i identitet, pokušajte operaciju ponovo i uskladite datotečnu operaciju s nepoznatim rezultatom umjesto da pretpostavite da se ništa nije dogodilo.
Zabilježite mrežni režim, izvor DNS-a i raspored identiteta u bilješke o implementaciji. Upravo će se sljedeći neuspjeh odnositi na te tri činjenice.