Laptopurile din spatele unui router de acasă fără redirecționare de porturi acceptă în continuare conexiuni SSH care sosesc prin VPN. Nu este o contradicție, pentru că două dispozitive diferite judecă două pachete diferite. Routerul redirecționează transportul criptat, iar gazda decide ce se face cu pachetul decriptat care ajunge la interfața sa de tunel. Separarea acestor două decizii este întregul exercițiu.

Routerul redirecționează tunelul, gazda judecă pachetul

Desenează calea de la sursa îndepărtată la serviciu înainte de a te uita la vreo regulă. Segmentul exterior este transportul VPN, gestionat de router și de gateway. Segmentul interior începe când punctul final îndepărtează stratul tunelului și gazda primește un pachet adresat adresei sale VPN.

Unește cele două segmente și routerul primește meritul pentru o decizie pe care o ia gazda. O pagină de redirecționare de porturi sau un jurnal al routerului descriu doar conversații exterioare, și niciunul nu spune ce trafic decriptat va accepta gazda. Gazda aplică propria politică de intrare pachetului interior, la fel ca oricărui pachet care ajunge pe o interfață. În acea politică se rezolvă de fapt problema expunerii.

Un ascultător wildcard nu este un serviciu public

Pe Linux, legarea la INADDR_ANY înseamnă fiecare adresă locală, așa că un serviciu poate răspunde pe o interfață de tunel pe care nu a numit-o niciodată. Referința socketurilor IP descrie această legare și merită citită înainte de a trage concluzii dintr-o listă de ascultători. O intrare wildcard este un fapt despre socket, nu o afirmație despre accesibilitate.

Cele două linii de mai jos sunt același serviciu în două legări diferite, iar diferența este întregul răspuns la întrebarea dacă interfața contează. Citește pe ce adresă stă socketul înainte de orice altceva.

ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))

Numește aranjamentul care ar putea ajunge la port

Trei aranjamente pun un pachet pe acea interfață și au proprietari diferiți. Numirea celui corect decide cine trebuie să schimbe o politică.

ArrangementWhat reaches the portWhere the decision lives
Another permitted VPN peerA packet from the same tunnel subnetGateway forwarding policy and host input rules
A deliberate public forwardTraffic the gateway publishes on purposeGateway service definition
A subnet routed behind the gatewayClient traffic from the far sideGateway route and host input rules

Un rezultat al browserului care arată o adresă de ieșire publică nu spune nimic despre niciunul dintre cele trei, pentru că descrie cum iese traficul de ieșire, nu ce este permis traficului de intrare. Lucrează invers de la ascultător și adresa sursă din jurnalul serviciului. Dacă sursa este un alt peer al tunelului, politica gateway-ului este documentul interesant. Dacă este o adresă tradusă, găsește traducerea înainte de a schimba o regulă.

Limitează serviciul la calea intenționată

Dacă SSH este necesar doar dintr-o cale de administrare, scrie acea cale ca interval de sursă plus o interfață. Apoi limitează regulile de intrare ale gazdei după interfață, destinație și sursă în loc de numele rețelei, deoarece un nume care pare privat poate reprezenta orice adresă. Păstrează o rută pentru persoana care va rezolva următoarea problemă.

nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input

O regulă care numește interfața tunelului și intervalul de administrare exprimă intenția într-un singur loc. Compar-o cu o regulă scrisă pentru rețeaua Wi-Fi, care nu spune nimic despre traficul de tunel decriptat. Când cele două straturi nu sunt de acord, politica gazdei este cea pe care o întâlnește pachetul.

Lasă autentificările și patch-urile exact unde sunt; a ajunge la un port nu a fost niciodată același lucru cu a avea voie să îl folosești. Notează familia de adrese și ora pentru orice sursă necunoscută și investighează înainte de a da vina pe o funcție sau pe o vulnerabilitate. O regulă care admite fiecare peer al tunelului este un design diferit de una care admite o subrețea de administrare, și nicio linie de jurnal nu va spune care era intenționată.

Acceptă remedierea cu un succes și o respingere

Demonstrează ambele jumătăți: o conexiune aprobată reușește și o cale exclusă este respinsă. Respingerea este jumătatea pe care oamenii o sar, și este cea care arată că regula lucrează în loc să stea lângă o valoare implicită permisivă. Testează din partea exclusă în loc să raționezi despre asta.

Repetă perechea după o reconectare, pentru că un tunel care revine cu un alt nume de interfață poate ocoli în tăcere o regulă limitată la cel vechi. Granița care contează este cea pe care gazda o aplică pachetelor pe care le primește cu adevărat.

Articole similare