Begrens en VPN-lytter til grensesnittene du mente
En jokertegnlytter og en brannmurregel er forskjellige kontroller. Les de faktiske socketene med ss, og kontroller deretter adressefamilien og brannmuren.
En VPN-tjeneste er tilgjengelig fra der socketen er bundet og brannmuren tillater det. Det er to separate beslutninger, og folk tar vanligvis bare én av dem. Å lese den faktiske lytteren tar ti sekunder og avgjør et spørsmål som gjetting ikke kan. Start der, og endre deretter én kontroll om gangen.
Alt nedenfor forutsetter at du kan kjøre kommandoer på verten med root eller sudo.
Les socketene før du endrer noe
På Linux viser ss -lunp UDP-lyttere med deres lokale adresse, port og prosess, og ss -ltnp gjør det samme for TCP. Finn VPN-ens port og les adressekolonnen nøye. 0.0.0.0:51820 og [::]:51820 betyr hvert grensesnitt, mens 10.0.0.5:51820 betyr én adresse på ett grensesnitt. ss-håndboken dokumenterer kolonnene hvis utdataene er ukjente. Hvis prosessnavnet mangler, kjør samme kommando med sudo, fordi eierkolonnen krever privilegier.
Skriv ned adressen. Det er faktumet resten av denne kjøreboken avhenger av.
Bind til en adresse, ikke til et ønske
OpenVPN binder lytteren til en bestemt adresse med local-direktivet, og det er den støttede måten å begrense den på prosessnivå. Ikke alle implementasjoner tilbyr en tilsvarende, og en protokoll uten bindingsvalg kan ikke snevres inn på denne måten. Hvis din ikke har noen, er brannmuren din eneste kontroll, og distribusjonsnotatene bør si det tydelig. På en vert med flere adresser, bind til den som vender mot tunnelen; å binde til en adresse som flyter er vanligvis en feil.
En tjeneste som må overleve en adresseendring trenger en plan for den utdaterte bindingen, ikke bare en konfigurasjonslinje.
Kontroller adressefamilien separat
IPv4 og IPv6 er separate sockets. En prosess bundet til 0.0.0.0 kan fortsatt godta IPv6 gjennom en dual-stack-socket, eller kanskje ikke, avhengig av socketvalget og plattformens standard. Å lese bare IPv4-linjen har lurt mer enn én distribusjonsgjennomgang. List begge familiene før du konkluderer med at lytteren er smal.
Hvis IPv6 ikke er en del av designet, er det renere å deaktivere det på socketnivå enn å håpe at brannmuren dekker det. Det er en policybeslutning, så registrer den sammen med resten av grensesnittvalgene.
Legg brannmuren over bindingen
En smal binding erstatter ikke en brannmurregel, og en brannmurregel snevrer ikke inn en jokertegnbinding. Bruk begge: bind der implementasjonen støtter det, og tillat deretter porten bare fra kildene som skal nå den. Skysikkerhetsgrupper står foran vertens brannmur, så kontroller begge når banen krysser en VPC-grense. Den effektive regelen er snittet av de to, og hvert lag kan bare trekke fra tilgjengelighet.
Test fra en tillatt kilde og fra en bevisst utelukket. En tilkobling fra localhost beviser ingenting om den offentlige grensen.
Registrer hva du valgte
Skriv ned den bundne adressen, grensesnittet som eier den, brannmurregelen og formålet. En erstatnings-NIC eller en omfordelt skyadresse kan endre eksponeringen uten at noen redigerer profilen. Dater notatet, fordi skyadresser flytter seg mellom gjennomganger oftere enn folk forventer.
Det er notatet som gjør neste gjennomgang til en sammenligning i stedet for et arkeologiprosjekt.