Regulă EC2 doar pentru VPN: fiecare grup de securitate atașat trebuie să fie de acord
Grupurile de securitate doar permit, iar fiecare grup atașat adaugă propria permisiune. Aflați ce sursă vede de fapt instanța înainte de a adăuga o regulă VPN îngustă.
Adăugați o regulă de intrare pentru pool-ul de clienți VPN, nu eliminați nimic, iar serviciul rămâne accesibil din internet. Nimic nu este stricat. Un grup de securitate nu are suprascriere, prioritate sau refuz final împotriva cărora regula îngustă să poată câștiga. Fiecare grup atașat instanței își aduce permisiunile într-un singur set combinat, iar regula largă pe care ați uitat-o este încă în acel set. A face instanța doar-VPN înseamnă a le audita pe toate, nu a adăuga o regulă care sună mai bine la una singură.
Scrieți serviciul înainte de a scrie regula
Începeți cu destinația exactă, protocolul și portul, precum și interfața de rețea pe care serviciul chiar ascultă. O instanță cu mai multe interfețe sau mai multe servicii pe un port necesită auditul pentru fiecare interfață, deoarece grupurile atașate pot diferi. Apoi determinați ce adresă sursă primește de fapt acea interfață pentru un utilizator VPN, nu adresa pe care clientul o afișează în propria fereastră de conexiune.
Aceste două adrese diverg mai des decât se așteaptă oamenii odată ce traducerea și rutarea intră în joc.
Trei modele de sursă, trei reguli diferite
Cu acces privat rutat, instanța primește pool-ul de clienți sau intervalul corporativ, în funcție de modul în care calea este rutată și tradusă. Cu un endpoint public atins prin ieșirea corporativă, instanța vede în schimb adresa NAT corporativă, și numai dacă acea destinație folosește într-adevăr calea VPN, deoarece tunelarea divizată o poate lăsa pe o conexiune de acasă. Cu un endpoint Client VPN gestionat, se aplică modelul documentat de asociere și rețea țintă, iar adresa clientului provine din CIDR-ul de client configurat.
Ceea ce nu funcționează este să referiți un gateway VPN ca sursă a unui grup de securitate. Referințele de grup corespund interfețelor de rețea elastice din interiorul VPC-ului sau al unei rețele conectate, iar un gateway care redirecționează pachete nu este una dintre ele.
Citiți uniunea pe toate grupurile atașate
Deschideți instanța, găsiți interfața ei de rețea și listați fiecare grup de securitate atașat. Pentru fiecare, verificați fiecare regulă care acoperă protocolul și portul dvs., inclusiv intervale largi de porturi și ambele familii de adrese. O regulă IPv4 de la 0.0.0.0/0 nu vă scutește de verificarea ::/0, iar o regulă care permite tot traficul ascunde complet întrebarea despre port. Numai după acel inventar puteți spune care este permisiunea efectivă pentru serviciu.
Referința regulilor AWS descrie grupurile de securitate ca doar-permitere și afirmă că regulile din toate grupurile atașate sunt agregate, iar acesta este întregul mecanism din spatele acestei defecțiuni.
ACL-urile de rețea sunt o politică separată, fără stare, cu intrări ordonate de permitere și refuz, și sunt evaluate la subnet, nu la instanță.
Nu răspundeți cu un zid de refuzuri
Adăugarea unui refuz NACL la nivel de subnet pentru a imita un firewall cu care sunteți obișnuit este instrumentul greșit și unul riscant. Intrările NACL sunt ordonate și fără stare, așa că un refuz plasat deasupra unei permisiuni existente rupe în tăcere traficul nelegat, inclusiv calea de întoarcere pentru sesiunile pe care încercați să le păstrați. Remediați permisiunea largă a grupului de securitate în grupul care o deține, apoi lăsați ACL-ul în pace dacă nu face cu adevărat parte din design.
Eliminarea unei adrese publice de pe instanță este o garanție mai puternică și este și o schimbare arhitecturală cu consecințe administrative și de aplicație, nu o bifă pe o listă de permisiuni.
Testați cu o sesiune nouă și păstrați o cale de intrare
Înainte de a retrage orice permisiune existentă, confirmați o cale administrativă independentă aprobată, deoarece regula pe care urmează să o ștergeți poate fi cea de care depinde recuperarea sesiunii. Apoi testați o conexiune permisă nouă din VPN și o conexiune refuzată nouă dintr-o cale de test autorizată non-VPN. Sesiunile urmărite existente supraviețuiesc modificărilor de reguli în moduri care fac shell-urile vechi deschise inutile ca dovadă de acceptare.
În final, păstrați autorizarea proprie a aplicației. O ieșire corporativă tradusă poate reprezenta sute de oameni, iar admiterea în rețea nu a identificat niciodată un utilizator individual sau dispozitivul său.