To profiler som skiller seg med én linje, oppfører seg ulikt i det øyeblikket en annen klient starter på samme vert. Den ene har nobind og tar hvilken som helst lokal port kjernen deler ut; den andre reserverer 1194, og den andre instansen dør med en adresse som allerede er i bruk. Den linjen avgjør hvem som velger kildeporten, noe som igjen avgjør om profilen kan eksistere sammen med noe annet på maskinen. Tre spørsmål avgjør det, og det første svarer for de fleste profiler før du når de to andre.

Hva nobind egentlig hopper over

Som standard binder klienten en lokal socket før den ringer ut, og den lokale porten er 1194 med mindre profilen sier noe annet. nobind fjerner den reservasjonen, så stakken tildeler en ubrukt port ved tilkobling. Det er et unntak, ikke en standard, og en klient uten linjen holder 1194, som er nettopp grunnen til at en ikke-fastlåst andre instans kolliderer. De fleste leverte klientprofiler har direktivet av den grunn, og at en eksempelfil gjør noe er ikke det samme som at mekanismen gjør det som standard.

Det som ikke endrer seg, er den fjerne siden. Serveren lytter fortsatt der profilen sier den lytter, og målporten i konfigurasjonen er fortsatt målporten. En dynamisk kildeport endrer returadressen til din egen socket og ingenting ved serverens.

Den skjuler heller ingenting. Din offentlige adresse er det stien oversetter den til, pakken krysser fortsatt det lokale nettverket, og den som driver nettverket ser fortsatt en strøm. nobind er verken en personvernfunksjon eller en omgåelse av brannmuren.

Tre betingelser som avgjør det

Ett spørsmål avgjør de to andre, så svar på det før du redigerer noe. Hvis motparten ringer ut, finpusser de resterende spørsmålene bare en beslutning som allerede er tatt. Hvis den godtar innkommende tilkoblinger, gjør ingen justering av den lokale porten den tilgjengelig.

Starter denne motparten tilkoblingen? Hvis den ringer ut, er en dynamisk kildeport ufarlig og vanligvis å foretrekke, fordi svaret følger samme strøm tilbake. Hvis den venter på innkommende tilkoblinger, gjør en dynamisk port den utilgjengelig med mindre noe foran publiserer porten. Det ene svaret skiller enhver klientprofil fra enhver serverprofil.

Filtrerer stien på kildeport? En streng regel skrevet for én kjent port tvinger en eksplisitt lokal port, og profilen bør notere hvilken regel den oppfyller. De fleste nettverk filtrerer bare på mål, så denne betingelsen er sjeldnere enn den første. Der den gjelder, overstyrer den preferansen for en dynamisk port.

Deler flere instanser verten? En enkelt fast port kan ikke betjene to av dem, og en omstartet instans kan finne 1194 fortsatt i en lukkende tilstand. Dynamiske porter fjerner den konflikten uten å endre noe annet. Hvis du ikke kan svare på dette med sikkerhet, anta ja og la kjernen velge.

Der en fastlåst port er det riktige svaret

Noen nettverk filtrerer på både kildeport og mål, så en operatør kan ha skrevet en regel som bare slipper trafikk fra én kjent port gjennom. Å låse den lokale porten er da riktig, og profilen bør ha en kommentar som navngir regelen den oppfyller. Låsing for symmetri med serverporten er ikke en grunn, fordi de to tallene ikke har noe med hverandre å gjøre. Hvis låsingen bare finnes fordi en mal hadde den, slett den.

Ellers kjøper en fastlåst port problemer: to klienter på én maskin kan ikke begge holde 1194, og den andre feiler med en feilmelding som peker på porten og ikke på profilen. En container som starter raskt på nytt, treffer samme vegg. Reparasjonen er direktivet de leverte profilene allerede inneholdt.

Server og klient er ikke symmetriske

OpenVPN 2.6-håndboken plasserer nobind ved siden av lport, som er argumentet på én linje: ett valg sier at kjernen velger, det andre sier at du gjør det. En dynamisk lokal port virker bare for motparten som ringer ut, fordi svarersiden ikke kan kjenne porten på forhånd. Derfor gir kopiering av en klientprofil over på en server en lytter som ingen kan nå.

På en vert med flere nettverksgrensesnitt er adressen en beslutning atskilt fra porten. Å binde en bestemt lokal adresse og å binde en bestemt port er to forskjellige innstillinger, og en server med to oppstrømskoblinger låser vanligvis begge. En klient som låser begge, har påtatt seg samme stivhet uten noen fordel.

Sammendraget handler om roller, ikke sikkerhet: den som ringer ut, kan være fleksibel med sin egen kilde, og den som svarer, kan ikke. Ingen av valgene endrer hva den andre enden lærer om identiteten din. Det er også derfor direktivet dukker opp i klienteksempler og nesten aldri i servereksempler.

Kontroller porten kjernen valgte

Etter tilkobling, les socketen i stedet for konfigurasjonen, fordi konfigurasjonen angir hensikten og socketen angir hva som skjedde. Faktaene som er verdt å notere, er den lokale porten, det fjerne endepunktet og om noe fortsatt lytter. På en Linux-vert er alle tre én kommando unna.

ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn

En klient med nobind viser en høy lokal port og den konfigurerte fjernporten, som er den forventede formen. En server viser en lyttende socket på sin konfigurerte port, og hvis den socketen mangler, er profilen enten ikke en lytter eller klarte ikke å binde. Når det finnes en strøm men ingen pakker kommer tilbake, sammenlign den valgte kildeporten med enhver portfilter på stien før du redigerer profilen. Endre én ting, koble til på nytt, og les socketen igjen.

Relaterte artikler