Na kojim portovima OpenVPN Access Server zapravo sluša?
Prođite kroz listu soketa na Access Server hostu: prepoznajte podrazumijevane slušaoce, razlikujte loopback od objavljenih i provjerite prosljeđivanje prije nego zatvorite port.
Pokrećete ss -lntup na Access Server hostu i dobijate listu dvostruko dužu od očekivane. Pola unosa su portovi u obliku daemona koje niko nije spomenuo tokom postavljanja. Refleks je zatvoriti sve što nije 443 ili 1194, i tako ljudi razbiju vlastiti klijentski portal.
Access Server nije jedan slušalac. To je VPN servis, web servis i učesnik u klasteru, i može generisati dodatne portove specifične za daemone i firewall preusmjerenja u zavisnosti od toga koliko TCP daemona ste konfigurisali.
Prođite kroz inventar po redu: pročitajte sokete, mapirajte poznate, klasificirajte ostale po vlasniku i bind-u, pa provjerite šta ih zapravo objavljuje.
Počnite s jednom komandom samo za čitanje
sudo ss -lntup vam daje transport, lokalnu adresu, port i proces vlasnika za svaki soket koji sluša. Zastavice su važne: -l slušanje, -n numerički, -t TCP, -u UDP, -p proces. Bez root-a dobijate sokete ali ne i nazive procesa, a to je upravo kolona koja vam treba za klasifikaciju.
Zabilježite četiri polja po redu prije nego formirate bilo kakvo mišljenje: protokol, bind adresa, port i komanda. Držite verziju Access Servera i konfigurisani broj daemona pored te liste, jer oboje mijenja ono što je očekivano.
Dva reda koja izgledaju identično nisu. TCP i UDP na istom broju su odvojeni soketi s odvojenom izloženošću, a 0.0.0.0 i :: su odvojeni bind-ovi za odvojene familije adresa. Servis vezan samo na 127.0.0.1 nije direktno dostupan s drugog hosta, iako ga lokalno preusmjerenje još može objaviti.
Slušaoci koje trebate prepoznati
Ovi podrazumijevani unosci pokrivaju većinu instalacija i daju vam osnovu za poređenje. Oni su podrazumijevani, ne potpuna lista dozvola.
| Socket | Role to confirm |
|---|---|
| UDP 1194 | OpenVPN UDP tunnel listener |
| TCP 443 | OpenVPN TCP listener, optionally forwarded to the web service |
| TCP 943 | Admin and client web interfaces, and cluster control in Access Server 3.0 and later |
| TCP 945 | Cluster control in older configurations that predate the move to 943 |
Sve izvan toga traži objašnjenje, a ne pretpostavku. Često ćete vidjeti slušaoce samo za lokalni pristup koji pripadaju komponentama koje proizvod instalira za sebe. Potvrdite ih putem PID-a i konfiguracije servisa, a ne putem zapamćenog broja porta, i ne tretirajte nepoznat port kao neprijateljski samo zbog nepoznatosti.
Soket izvan poznatog para također nije automatski ostatak. Kada je konfigurisano više TCP daemona, Access Server stvara slušaoce po daemonu i preusmjerava promet na njih, pa njihov broj i vrijednosti portova slijede tu konfiguraciju.
Klasificirajte prije nego što bilo šta zatvorite
Za svaki neizvjestan red odgovorite na tri pitanja ovim redom.
- Vlasnik i svrha. Uparite PID s unit-om ili procesom i pročitajte konfiguraciju tog servisa. Ako ne možete navesti vlasnika, niste spremni odlučiti bilo šta o soketu.
- Obim bind-a. Loopback je lokalni za imenski prostor. Wildcard bind je dostupan samo ako rutiranje, filtriranje hosta i bilo koja pravila na nivou oblaka to dozvoljavaju, pa je bind adresa neophodna ali ne i dovoljna. Provjerite IPv4 i IPv6 kao odvojene odluke.
- Objavljena putanja. Tražite prosljeđivanje servisa, preusmjerenja specifična za daemone, vanjski proxy i efektivnu firewall politiku. To je korak koji ljudi preskaču, i on je taj koji bezopasan backend port pretvara u dostupnu administrativnu putanju.
Isto pitanje čita se drugačije izvan hosta. Port bez firewall pravila na hostu i dalje može zatvoriti cloud sigurnosna grupa, a port s permisivnim pravilom hosta može biti nedostupan jer ništa ne rutira do njega. Pogledajte oba kraja prije nego napišete zaključak inventara.
Gdje se objavljena putanja razlikuje od liste soketa
Access Serverova vlastita dokumentacija pokriva slučaj koji izaziva najviše zabune: kada radi nekoliko TCP daemona, prednji port prosljeđuje na portove specifične za daemone, i vidljivi raspored prestaje odgovarati listi soketa. tutorijal o filtriranju web interfejsa opisuje ta pravila i zašto filter napisan samo za očigledni port može potpuno promašiti preusmjerenu putanju.
Kontrola klastera je drugo mjesto gdje verzija igra ulogu. Na 3.0 i novijim dijeli 943; starije klaster konfiguracije koristile su 945. Otvaranje ili blokiranje jednog od njih bez provjere verzije daje inventar koji izgleda uredno i pogrešan je.
Dakle, izvana vidljiva površina je unija tri stvari: soketa koji slušaju, pravila prosljeđivanja koja ih ponovo objavljuju i mrežnih kontrola ispred hosta. Svaki inventar koji bilježi samo prvo je nepotpun, a svaka promjena koja razmatra samo prvo ili će ostaviti putanju otvorenom ili odsjeći servis.
Provjerite nakon svake promjene
Mijenjajte postavke slušaoca preko podržanog vlasnika konfiguracije i držite konzolu za oporavak otvorenom dok to radite. Gubitak administrativnog pristupa web interfejsu na udaljenom hostu nije nadoknadiv putem VPN-a koji ste upravo isključili.
Zatim provjerite četiri stvari koje instalacija obično treba: VPN klijent se povezuje, klijentski portal se učitava, administrativni pristup radi i komunikacija klastera još funkcioniše ako vodite više od jednog čvora. Test samo VPN-a prolazi bez problema dok je portal pokvaren.
Završite tako što ćete zapisati dozvoljenu putanju za svaki servis: koji soket, koji bind, koje pravilo prosljeđivanja, koja mrežna kontrola. Taj dokument je koristan sigurnosni rezultat. Minimalan broj soketa nije, a ni masovni reset koji zatvara slušaoce koje niko nije uspio identificirati.