Bør OpenVPN-klienten din bruke nobind eller ein fast port?
nobind lèt kjernen velje kjeldeporten for ein klient som ringjer ut. Tre vilkår avgjer om du vil ha det, eller heller ein fastlåst lokal port.
To profilar som skil seg med éi linje, oppfører seg ulikt i det augneblinken ein annan klient startar på same vert. Den eine har nobind og tek kva som helst lokal port kjernen deler ut; den andre reserverer 1194, og den andre instansen døyr med ei adresse som alt er i bruk. Den linja avgjer kven som vel kjeldeporten, noko som igjen avgjer om profilen kan eksistere saman med noko anna på maskina. Tre spørsmål avgjer det, og det første svarar for dei fleste profilane før du når dei to andre.
Kva nobind eigentleg hoppar over
Som standard bind klienten ein lokal socket før han ringjer ut, og den lokale porten er 1194 med mindre profilen seier noko anna. nobind fjernar den reservasjonen, så stakken tildeler ein ubrukt port ved tilkopling. Det er eit unntak, ikkje ein standard, og ein klient utan linja held 1194, som er nettopp grunnen til at ein ikkje-fastlåst andre instans kolliderer. Dei fleste leverte klientprofilar har direktivet av den grunn, og at ei døme-fil gjer noko er ikkje det same som at mekanismen gjer det som standard.
Det som ikkje endrar seg, er den fjerne sida. Tenaren lyttar framleis der profilen seier han lyttar, og målporten i konfigurasjonen er framleis målporten. Ein dynamisk kjeldeport endrar returadressa til din eigen socket og ingenting ved tenaren sin.
Han skjuler heller ingenting. Den offentlege adressa di er det stien omset henne til, pakken kryssar framleis det lokale nettet, og den som driv nettet ser framleis ein straum. nobind er korkje ein personvernfunksjon eller ei omgåing av brannmuren.
Tre vilkår som avgjer det
Eitt spørsmål avgjer dei to andre, så svar på det før du redigerer noko. Viss motparten ringjer ut, finpussar dei resterande spørsmåla berre ei avgjerd som alt er teken. Viss han godtek innkommande tilkoplingar, gjer inga justering av den lokale porten han tilgjengeleg.
Startar denne motparten tilkoplinga? Viss han ringjer ut, er ein dynamisk kjeldeport ufarleg og vanlegvis å føretrekkje, fordi svaret følgjer same straum tilbake. Viss han ventar på innkommande tilkoplingar, gjer ein dynamisk port han utilgjengeleg med mindre noko framfor publiserer porten. Det eine svaret skil kvar klientprofil frå kvar tenarprofil.
Filtrerer stien på kjeldeport? Ei streng regel skriven for éin kjend port tvingar ein eksplisitt lokal port, og profilen bør notere kva regel han oppfyller. Dei fleste nett filtrerer berre på mål, så dette vilkåret er sjeldnare enn det første. Der det gjeld, overstyrer det preferansen for ein dynamisk port.
Delar fleire instansar verten? Ein einaste fast port kan ikkje tene to av dei, og ein omstarta instans kan finne 1194 framleis i ein lukkande tilstand. Dynamiske portar fjernar den konflikten utan å endre noko anna. Viss du ikkje kan svare på dette med tryggleik, gå ut frå ja og la kjernen velje.
Der ein fastlåst port er det rette svaret
Nokre nett filtrerer både på kjeldeport og mål, så ein operatør kan ha skrive ei regel som berre slepp trafikk frå éin kjend port gjennom. Å låse den lokale porten er då rett, og profilen bør ha ein kommentar som nemner regelen han oppfyller. Låsing for symmetri med tenarporten er ikkje ein grunn, fordi dei to tala ikkje har noko med kvarandre å gjere. Viss låsinga berre finst fordi ein mal hadde henne, slett henne.
Elles kjøper ein fastlåst port problem: to klientar på éi maskin kan ikkje begge halde 1194, og den andre feilar med ei feilmelding som peikar på porten og ikkje på profilen. Ein container som startar raskt på nytt, treffer same vegg. Reparasjonen er direktivet dei leverte profilane alt inneheldt.
Tenar og klient er ikkje symmetriske
OpenVPN 2.6-handboka plasserer nobind ved sida av lport, som er argumentet på éi linje: eitt val seier at kjernen vel, det andre seier at du gjer det. Ein dynamisk lokal port verkar berre for motparten som ringjer ut, fordi svararsida ikkje kan kjenne porten på førehand. Derfor gjev kopiering av ein klientprofil over på ein tenar ein lyttar som ingen kan nå.
På ein vert med fleire nettverksgrensesnitt er adressa ei avgjerd skild frå porten. Å binde ei bestemd lokal adresse og å binde ein bestemd port er to ulike innstillingar, og ein tenar med to oppstraumslenkjer låser vanlegvis begge. Ein klient som låser begge, har teke på seg same stivleiken utan nokon fordel.
Samandraget handlar om roller, ikkje tryggleik: den som ringjer ut, kan vere fleksibel med si eiga kjelde, og den som svarar, kan ikkje. Ingen av vala endrar kva den andre enden lærer om identiteten din. Det er også derfor direktivet dukkar opp i klientdøme og nesten aldri i tenardøme.
Kontroller porten kjernen valde
Etter tilkopling, les socketen i staden for konfigurasjonen, fordi konfigurasjonen angir hensikta og socketen angir kva som skjedde. Faktaa som er verd å notere, er den lokale porten, det fjerne endepunktet og om noko framleis lyttar. På ein Linux-vert er alle tre éi kommando unna.
ss -unp | grep openvpn
ss -lunp | grep openvpn
sudo lsof -nP -i | grep openvpn
Ein klient med nobind viser ein høg lokal port og den konfigurerte fjernporten, som er den venta forma. Ein tenar viser ein lyttande socket på sin konfigurerte port, og viss den socketen manglar, er profilen anten ikkje ein lyttar eller klarte ikkje å binde. Når det finst ein straum men ingen pakkar kjem tilbake, samanlikn den valde kjeldeporten med eit kva som helst portfilter på stien før du redigerer profilen. Endre éin ting, kople til på nytt, og les socketen igjen.