Begræns en VPN-lytter til de grænseflader, du mente
En wildcard-lytter og en firewallregel er forskellige kontroller. Læs de faktiske sockets med ss, og kontroller derefter adressefamilien og firewallen.
En VPN-tjeneste kan nås fra det sted, hvor dens socket er bundet, og hvor dens firewall tillader det. Det er to separate beslutninger, og folk træffer normalt kun én af dem. At læse den faktiske lytter tager ti sekunder og afgør et spørgsmål, som gætværk ikke kan. Start der, og skift derefter én kontrol ad gangen.
Alt nedenfor forudsætter, at du kan køre kommandoer på værten med root eller sudo.
Læs sockets, før du ændrer noget
På Linux viser ss -lunp UDP-lyttere med deres lokale adresse, port og proces, og ss -ltnp gør det samme for TCP. Find VPN'ens port, og læs adressekolonnen omhyggeligt. 0.0.0.0:51820 og [::]:51820 betyder alle grænseflader, mens 10.0.0.5:51820 betyder én adresse på én grænseflade. ss-manualen dokumenterer kolonnerne, hvis outputtet er ukendt. Hvis procesnavnet mangler, skal du køre den samme kommando med sudo, fordi ejerkolonnen kræver privilegier.
Skriv adressen ned. Det er det faktum, som resten af denne kørebog afhænger af.
Bind til en adresse, ikke til et ønske
OpenVPN's local-direktiv binder lytteren til en bestemt adresse, og det er den understøttede måde at afgrænse den på processniveau. Ikke enhver implementering tilbyder en tilsvarende, og en protokol uden bindingsmulighed kan ikke indsnævres på denne måde. Hvis din ikke har nogen, er firewallen din eneste kontrol, og implementeringsnoterne bør sige det tydeligt. På en vært med flere adresser skal du binde til den, der vender mod tunnelen; at binde til en adresse, der flytter sig, er normalt en fejl.
En tjeneste, der skal overleve en adresseændring, har brug for en plan for den forældede binding, ikke bare en konfigurationslinje.
Kontroller adressefamilien separat
IPv4 og IPv6 er separate sockets. En proces bundet til 0.0.0.0 kan stadig acceptere IPv6 gennem en dual-stack-socket, eller måske ikke, afhængigt af socketindstillingen og platformens standard. At læse kun IPv4-linjen har narret mere end én implementeringsgennemgang. List begge familier, før du konkluderer, at lytteren er snæver.
Hvis IPv6 ikke er en del af designet, er det renere at deaktivere det på socketniveau end at håbe på, at firewallen dækker det. Det er en politisk beslutning, så registrér den sammen med resten af grænsefladevalgene.
Læg firewallen oven på bindingen
En snæver binding erstatter ikke en firewallregel, og en firewallregel indsnævrer ikke en wildcard-binding. Brug begge: bind, hvor implementeringen understøtter det, og tillad derefter porten kun fra de kilder, der bør nå den. Cloud-sikkerhedsgrupper står foran værtens firewall, så kontroller begge, når stien krydser en VPC-grænse. Den effektive regel er snittet af de to, og hvert lag kan kun trække tilgængelighed fra.
Test fra en tilladt kilde og fra en bevidst udelukket. En forbindelse fra localhost beviser intet om den offentlige grænse.
Registrér, hvad du valgte
Skriv den bundne adresse, grænsefladen, der ejer den, firewallreglen og dens formål ned. Et udskiftnings-NIC eller en omfordelt cloud-adresse kan ændre eksponeringen, uden at nogen redigerer profilen. Dater noten, fordi cloud-adresser flytter sig mellem revisioner oftere, end folk forventer.
Det er noten, der gør næste revision til en sammenligning i stedet for et arkæologiprojekt.