Cloudbeveiligingsgroep voor een VPN: open de listener, niet alles
Een beveiligingsgroep is een van de vier filters tussen de client en de daemon. Benoem het protocol en controleer daarna de ACL, de hostfirewall en de doorsturing.
De VPN-server draait, de client loopt in een time-out, en de eerste reflex is een regel die alles toestaat aan de beveiligingsgroep toe te voegen. Dat laat het soms werken, en dat is de slechtste uitkomst, want nu weet niemand welke grens werkelijk gesloten werd. Vier afzonderlijke filters staan tussen de client en de daemon, en slechts één daarvan is de beveiligingsgroep.
Benoem het protocol vóór de regel
Een regel is een protocol, een poortbereik en een bron. WireGuard luistert op UDP, meestal 51820. OpenVPN is meestal UDP of TCP 1194, afhankelijk van de configuratie. IPsec heeft zijn IKE-uitwisseling op UDP 500 en 4500 nodig plus het ESP-protocol zelf, dat een protocolnummer is en geen poort. TCP raden omdat de andere regels TCP zijn, is hoe je een regel krijgt die er correct uitziet en nergens op past.
Lees de listener uit de draaiende dienst, niet uit een handleiding. Een daemon die aan één adres gebonden is, accepteert geen verkeer dat op een ander adres binnenkomt.
Beperk de bron tot het clientbereik dat het ontwerp toestaat, in plaats van het hele internet.
Beveiligingsgroepen zijn stateful; subnet-ACL's niet
Beveiligingsgroepen zijn stateful en staan alleen toe: een toegestane inkomende stroom krijgt zijn antwoorden automatisch, en er is geen weigeringsregel om over na te denken. Subnet-ACL's zijn stateless en worden in beide richtingen beoordeeld, dus een inkomende toestemming zonder het bijbehorende uitgaande efemere bereik faalt alsnog. Dat verschil verklaart veel regels die er in de console correct uitzien.
Controleer ook welk beleid aan het draaiende eindpunt is gekoppeld, want een instantie kan meer dan één groep hebben en een regel in een niet-gekoppelde groep verandert niets.
Het effectieve beleid is de vereniging van wat gekoppeld is, niet het bestand dat je hebt bewerkt.
De hostfirewall is een aparte grens
Het cloudbeleid laat verkeer toe tot de netwerkinterface, en dan beslist het besturingssysteem of de daemon het ziet. Een hostfirewall met een standaard weigerbeleid laat een pakket vallen dat de beveiligingsgroep had toegestaan, en de cloudconsole toont geen weigering omdat die nooit een mening had. Controleer beide, in de volgorde waarin het pakket ze tegenkomt.
Als de host een firewall-frontend van de distributie gebruikt, controleer dan de onderliggende regels in plaats van de profielnaam, want een profiel kan actief zijn terwijl de poort dicht is.
Een opname op de interface vertelt je welke grens het pakket heeft laten vallen.
De listener toestaan is niet de clients routeren
Een VPN-gateway die clientverkeer doorstuurt, heeft meer nodig dan een open poort. Hij heeft IP-doorsturing nodig, een beleid dat de stroom van de tunnelinterface naar het doornetwerk toestaat, en vaak een bron-bestemmingscontrole die op de interface is uitgeschakeld zodat het platform verkeer dat niet aan hem is geadresseerd niet weggooit. Niets daarvan wordt door de listenerregel gemaakt.
Hier scheiden een werkende handdruk en een kapot datapad zich, en daarom kan een tunnelstatus gezond lijken terwijl niets laadt.
Repareer de routering als een aparte wijziging met zijn eigen verificatie, en merk op dat een doorsturende gateway ook een uitgangsbeleid nodig heeft dat de bestemming toestaat.
Houd een weg terug, en vernauw dan de regel
Controleer vóór het wijzigen van remote-firewallbeleid of er een onafhankelijk beheerpad bestaat, zoals een sessiebeheerder, een seriële console of een out-of-band-netwerk. Als het enige beheerpad door de regel loopt die je bewerkt, heb je geen herstel. Pas dan de smalle regel toe, test vanaf een echte client, en correleer de poging met bewijs aan de serverkant. Een antwoord van een andere dienst op dezelfde machine is geen bewijs dat de listener is bereikt.
Verwijder elke experimentele brede toestemming zodra de smalle werkt, en noteer waarom de regel bestaat. AWS documenteert het stateful gedrag van beveiligingsgroepen, en dat document is het document om aan te halen wanneer iemand een breed bereik als snelkoppeling voorstelt.
Documenteer ook de koppeling, anders verliest een vervangende interface het beleid stilzwijgend.