In pakket foar 10.77.20.0/24 nimt twa aparte besluten op in OpenVPN-tsjinner: it bestjoeringssysteem moat it oan ’e VPN-ynterface oerlangje, en OpenVPN moat witte hokker ferbûn klant dat foarheaksel besit. In ûntbrekkende kearnrûte smyt it foar de tunnel fuort, in ûntbrekkende peerrûte dernei. De beide flaters sjogge der fan it fiere LAN itselde út, en diagnostearje hokker jo hawwe freget ien opdracht oan eltse kant.

Yn it klassike brûkersromte-datapaad bringt de kearnrûte it pakket yn it tunnelproses, en iroute fertelt dat proses hokker peer it ûntfange moat. Gjin fan beide ferfangt de oare, en in konfiguraasje mei mar ien fan beide sil reedlik lykje oant de earste ping.

Twa besluten, net ien rûte

Stel jo in ferbining fan site nei site foar wêr’t 10.77.20.0/24 efter ien klant sit. De kearnrûte fan de tsjinner, bygelyks ip route add 10.77.20.0/24 dev tun0, stjoert oerienkommende pakketten nei it tunnelapparaat. Dan rieplachtet OpenVPN syn eigen ynterne tabel, boud út iroute-ynfieringen yn ’e konfiguraasjemap fan ’e klant, om te besluten hokker peerferbining se krijt. Sûnder de kearnrûte berikt it pakket nea it proses, en sûnder de peerrûte berikt it it proses en giet it nearne hinne.

Dy splitsing is maklik te ferjitten, want ien rûterigel yn in klantprofyl kin lykje as docht er beide taken. Dat docht er net: in rûte triuwe fertelt klanten wat se troch de tunnel stjoere moatte, wylst iroute de tsjinner fertelt wa’t in adresberik efter in klant besit. Se libje yn ferskate bestannen, wurde troch ferskate kanten lêzen, en mislearje yn tsjinoerstelde rjochtingen.

Wêr’t iroute heart en wat it seit

De ynfiering giet yn in bestân per klant neamd nei de common_name fan ’e klant, ûnder client-config-dir, as iroute 10.77.20.0/24. De bestânsnamme-oerienkomst is net kosmetysk: OpenVPN siket de autentisearre identiteit op en lêst it bestân mei krekt dy namme, dat in bestân mei de namme site-a jildt allinnich foar in klant waans gewoane namme site-a is. Foegje ccd-exclusive ta as klanten sûnder sa’n bestân folslein wegere wurde moatte, wat de juste ynstelling is as elke klant in site-poarte is. Hâld ien bestân per poarte en neam it nei it sertifikaatûnderwerp dat jo echt útjouwe.

Test de ynfiering fan ’e tsjinner ôf foardat jo it fiere LAN beskulaasje jouwe. It statusbestân listet ferbûne klanten mei har gewoane nammen, en in tsjinner dy’t mei --verb 4 rint, logt it ynstallearjen fan iroute op it stuit dat de peer ferbynt. As der by ferbining neat ferskynt, stiet it bestân yn ’e ferkearde map of neamt it de ferkearde identiteit.

De falstrik: bestân oanwêzich, ferkearde identiteit

In goed-lykjende iroute oan ’e ferkearde peer ferbûn fergriemt mear tiid as in ûntbrekkend bestân, want alles op skiif liket goed. Sertifikaten omneame, dûbele gewoane nammen en username-as-common-name dat de effektive identiteit feroaret, meitsje it allegear. Kontrolearje hokker identiteit de tsjinner autentisearre, ynstee fan hokker jo ferwachten: de statusútfier is gesachhawwend, wylst de bestânsnamme mar in sykkaai is.

In rûte kin syn eigner ek oerlibje. Statyske rûtes en iroute-ynfieringen beskriuwe in foarheaksel, gjin garânsje fan beskikberens, dat ferkear kin trochgean mei rjochtsjen nei in peer dy’t op dit stuit loskeppele is.

Meitsje it paad efter de peer dien

Peer-eigendom is it midden fan it paad, net it ein. De klant moat pakketten fan ’e tunnel yn syn LAN trochjaan, wat betsjut dat IP-trochjaan op dy host oan stiet en in firewallregel it trochgean tastiet. Hosts yn it fiere LAN hawwe in werompaad nedich foar it tunneladres: of in rûte dy’t werom wiist nei de poarte, of in bewust ûntwurpen NAT oan ’e klantkant. Befestigje de trochjaan-ynstelling op ’e klant mei sysctl net.ipv4.ip_forward ynstee fan in distribúsje-standert oan te nimmen.

As oare VPN-klanten dat subnet berikke moatte, groeit de opstelling wer: de tsjinner hat client-to-client nedich, en dy klanten moatte it foarheaksel troch de tunnel rûte. Neat dêrfan falt út ’e eigen rûtetabel fan ’e tsjinner.

Ferifiearje ien bestimming fan in echte boarne ynstee fan fan ’e tsjinner sels. In ping fan in net-relatearre LAN-host nei in host efter de klant oefenet it werompaad, de trochjaanregel en it peer-eigendom yn ien beweging, wylst in slagge hânskodding allinnich identiteit bewissiget. Skeakelje dan de eigener-peer los en skriuw op wat de rûte docht, want dat antwurd is jo flatermodus.

Relatearre artikelen