Kas iga OpenVPN peer vajab remote-rida? Päris mitte
remote näitab, kuhu läheb esimene pakett; see ei vali kliendi, serveri ega TLS-i rolli. Lugege paigutust enne, kui kopeerite selle mõlemale poole.
Võrreldakse kõrvuti kahte peer-konfiguratsiooni, ühel on remote rida ja teisel mitte, ning järeldatakse, et üks neist on katki. See järeldus on piisavalt sageli vale, et seda tasub lahti võtta. Direktiiv kirjeldab, kuhu esimene pakett saata. See ei vali, kas protsess toimib algatava kliendina või ootava lüüsina, ega otsusta, kumb pool tõestab oma identiteeti teisele.
Mida remote tegelikult määrab
remote kirje nimetab hosti, valikuliselt pordi ja transpordi ning valikuliselt mitu sellist kirjet, mida järjest proovitakse.
Selle puudumisel on määratletud, mitte määratlemata tähendus: protsess ootab ega käsitle pakette aadressilt, kui see peer ei autentitse. Rändkasutajaid teenindaval lüüsil pole seega põhjust kedagi neist ette nimetada.
Lugege kirjet aadressisuhtena. Seda, kas kaugots on usaldusväärne, vastavad sertifikaadid ja kontrollimisvalikud, mitte see, et aadress on kirja pandud.
Vastuse otsustavad kolm paigutust
Rändklient vajab sihtkohta, sest ta peab algatama ja ilma selleta ei tea, kus lüüs on. Mitme kliendi lüüs ei vaja kasutajapõhist sihtkohta, sest kliendid saabuvad ja autentivad end. Teadlik kahe peeri ühendus teadaolevate otstega võib sihtkoha omada ühel pool, mõlemal pool või mitte kummalgi, sõltuvalt sellest, kumb pool algatab.
Fikseeritud kliendi aadressi kleepimine üldisesse lüüsi on viga, mis tuleneb nende kategooriate eiramisest. See toimib selle ühe peeri puhul, kelle aadress kirja pandi, ja eksitab kõiki teisi.
Miski direktiivis ei muuda konfiguratsiooni mitme kliendi serveriks ja miski selle olemasolus ei takista serveri rolli. OpenVPN 2.6 viide dokumenteerib valikulised argumendid ja remote-ta käitumise eraldi, mis on vihje selle kohta, kui sõltumatud need on.
| Arrangement | Needs a destination |
|---|---|
| Roaming client | Yes, which gateway to contact |
| Multi-client gateway | No, peers authenticate on arrival |
| Two known peers | Depends on which side initiates |
Transpordirollid on teine telg
TCP puhul üks pool ootab ja teine helistab. Need on sihtkohast eraldi direktiivid ja nende segamine annab paari, kus mõlemad ootavad või mõlemad helistavad.
On ka TCP allikafiltri roll, mistõttu väide, et server ei tohi kunagi sisaldada remote, on vale.
UDP puhul pole ühendust luua, seega kasutavad mõlemad otsad vastavat UDP transporti ja direktiiv ütleb ainult, kuhu sihtida. Autenditud peeri aadressimuutusi käsitleb spetsiaalne käitumine, mitte uute kirjete lisamine. Transpordi õigesti saamine on eeldus, et sihtkoht midagi tähendaks, ja nende kahe segamine tekitab konfiguratsioone, mis tunduvad usutavad ja ei lõpeta kunagi kätlust.
Miks puuduv remote ei ole avatud uks
Sihtkohata protsess keeldub ikkagi liiklusest peeridelt, kes ei autenti, ja see on osa, mille inimesed jätavad märkamata, kui loevad puuduvat rida kõigile avatud kuulajana.
Autentimine ja sihtkoht on sõltumatud ning usalduse jaoks loeb esimene.
Vastupidine viga on ohtlikum. Fikseeritud lähteaadress võib tunduda juurdepääsukontrollina, sest see on konkreetne ja kergesti kontrollitav, kuid ei tõesta midagi selle kohta, kes on teises otsas. Hoidke sertifikaadi kontrollimist ja identiteedikontrolle, mis seovad sertifikaadi selle rolliga. Nende asendamine aadressi vastega vahetab tõelise kontrolli selle näivuse vastu.
Kirjutage üles, mida konfiguratsioon eeldab
Iga poole kohta kirjutage kolm asja: kuidas esimene pakett peerini jõuab, kumb pool saab transpordi vastu võtta ja mida kumb pool teise kohta kontrollib.
Need eeldused on disain. Direktiivid on ainult nende kirjapilt.
Kui kaks faili erinevad, kontrollige, kas need väljendavad erinevaid eeldusi, selle asemel et eeldada, et üks on vale. Sümmeetriline failipaar ei ole töötava tunneli jaoks vajalik ega piisav ning asümmeetria on sageli see osa, mis topoloogia tööle paneb.