O sesiune SSH, o aplicație web și o căutare de nume pot împărți o singură conexiune VPN fără să se lupte pentru porturi. Clientul construiește un singur flux criptat către gateway, iar fiecare conversație a aplicației călătorește în interiorul lui. În exterior se vede doar transportul și portul tunelului. În interior, fiecare serviciu își păstrează propriul port și tot are nevoie de propria permisiune.

Ce transportă fluxul exterior și ce ascunde

Clientul învelește fiecare pachet în transportul tunelului înainte ca acesta să părăsească mașina. Fluxul exterior are un singur port destinație, fixat când a fost configurat VPN-ul. În interiorul învelișului, fiecare pachet original își păstrează adresa și portul serviciului către care merge. Gateway-ul îndepărtează învelișul și rutează după antetul interior, așa că destinația vede un client obișnuit care sosește din rețea.

O captură pe interfața WAN arată deci o conversație, nu trei. Porturile interioare apar doar după decapsulare. De aceea o singură deschidere de firewall poate transporta SSH, HTTPS și DNS în același timp.

# WAN side: one outer tuple, whatever the inner services are
tcpdump -ni wan0 'udp port 443'
# tunnel side: the inner tuples appear after decapsulation
tcpdump -ni tun0

Documentația TUN/TAP acoperă predarea prin care un dispozitiv TUN rutat transferă pachete IP între nucleu și un proces din spațiul utilizatorului. Acea predare face antetul interior vizibil pentru codul de rutare și de firewall al gateway-ului. Explică și de ce portul exterior nu spune nimic despre serviciile permise.

Redirecționarea NAT aparține ascultătorului, nu aplicațiilor

Un gateway găzduit propriu în spatele NAT IPv4 are nevoie de o singură traducere de intrare: adresa și portul publice mapate la ascultătorul VPN. Nu e nevoie de nicio regulă pentru SSH, HTTPS sau DNS doar pentru că utilizatorii tunelului le ating. Publicarea acelor porturi ar expune servicii pe care tunelul le protejează deja. Regula de redirecționare descrie accesibilitatea ascultătorului, nu o permisiune pentru ceva din interior.

Vale și inversul. Deschiderea portului tunelului nu expune nimic altceva, așa că un serviciu accesibil doar prin tunel își ține suprafața publică închisă. Această separare este de obicei motivul pentru care serviciul rămâne privat.

Politica interioară este locul unde accesul este decis de fapt

Criptarea protejează calea; ea nu autorizează o destinație. Rutele clientului aleg ce prefixe intră în tunel, politica de redirecționare a gateway-ului decide dacă pachetele pot ieși din el, iar firewall-ul și autentificarea destinației decid dacă serviciul răspunde. DNS este cazul cel mai clar: transportarea interogărilor nu face un resolver să le accepte din pool-ul tău de clienți. Fiecare strat poate spune nu independent.

Testează fiecare serviciu separat prin tunel. O căutare reușită nu spune nimic despre portul web, iar o cerere web reușită nu spune nimic despre SSH.

dig @10.40.0.53 app.corp.example
nc -vz 10.40.0.10 8443
ssh -p 2222 [email protected]

Când tunelul este activ și totul eșuează, citește mai întâi tabela de rute a clientului. Când un serviciu eșuează iar celelalte funcționează, defectul este la acea destinație. Aceste două observații indică responsabili diferiți, iar amestecarea lor pierde timp.

WireGuard trasează aceeași linie

WireGuard își numește ascultătorul exterior ListenPort, iar o aplicație interioară folosește în continuare portul de serviciu de care are nevoie. AllowedIPs este un set de prefixe rutate, nu o listă de porturi de serviciu permise. Citirea lui ca listă de permisiuni de porturi produce reguli care nu corespund cu ce face tunelul. Denumirea este diferită; stratificarea nu.

Permite serviciul în politica de intrare locală când rulează chiar pe endpoint, sau în politica de redirecționare când se află în spatele acelui endpoint. Distincția decide ce set de reguli vede pachetul.

Forma generală este un transport exterior cu multe conversații interioare. Produsele care au nevoie de mai multe schimburi exterioare, sau de alt protocol IP, reamintesc că modelul cu un singur port public descrie acest proiect, nu orice VPN.

Articole similare