Priručnik: odvojeno uvođenje dva OpenVPN klijenta
Dva klijenta na jednom OpenVPN hostu trebaju odvojene listenere, poolove, datoteke povjerenja i dostavu opoziva, uz prihvatni test koji ih drži odvojeno.
Dva klijenta na jednom hostu zvuče kao još jedan serverski blok i drugi port. To postaje drugi projekt kad navedete sve što klijent zapravo posjeduje: listener, pool tunela, identitet, datoteke povjerenja, rute i raspored opoziva. Preskočite jednu od tih stvari i drugi klijent tiho naslijedi dio prvog. Napravite karticu za svakog klijenta i popunite je prije nego se prvi klijent spoji.
Dodijelite potpunu karticu resursa za svakog klijenta
Rezervirajte cijeli skup zajedno: javni port, podmrežu tunela, putanju konfiguracije, odredište zapisa, naziv instance servisa i uređaj. Imenovanje kao grupe sprječava klasičnu kopiju radne datoteke koja još sadrži pool ili sučelje prvog klijenta. Vrijednosti su primjeri, a ne rezervirani portovi, pa provjerite šta host već koristi. Servis koji se pokrene nije isto što i klijent koji je potpun.
Držite karticu uz konfiguraciju i ažurirajte je kad se vrijednost promijeni. Dokumentacija koja se udalji od stvarnosti gora je od nikakve.
Zadržite materijal povjerenja unutar svakog klijenta
Odvojeno izdavateljsko tijelo po klijentu čini granicu lakom za razmišljanje i drži ključ za potpisivanje izvan hosta izloženog internetu. Zajednički korijen također može raditi, ali zajedničko sidro ne pretvara dva servisa u jednu domenu članstva. Odlučite koje lance svaki listener prihvaća i koje identitete klijenata ovlašćuje, pa zapišite oboje. Ne skidajte certifikate s lanca pokušajima i pogreškama dok se nešto ne spoji.
Vlastiti privatni ključ servera pripada u zaštićenu datoteku po klijentu, a ne u direktorij predloška koji se replicira zajedno s konfiguracijom.
Odvojite mreže kao i procese
Dva procesa na dva porta i dalje dijele host i tablicu usmjeravanja ako ih ne odvojite. Potvrdite šta sluša prije nego povjerujete dizajnu.
ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pemProvjera listenera pokazuje koji proces posjeduje svaki javni port, a verifikacija pokazuje da li se klijentski certifikat veže na predviđeno sidro. Nijedan izlaz ne dokazuje da klijent A ne može doći do podmreže B, pa definirajte politiku izvora i odredišta, povratne rute i svaki namjerno zajednički servis. Mrežni imenski prostori ili kontejneri odvajaju kontekste usmjeravanja i smanjuju slučajno miješanje, ali oni nisu potpuna granica zakupca sami po sebi. Odaberite jači mehanizam izolacije kada model prijetnji to zahtijeva.
Isporučite opoziv prije predaje
Postavljanje certifikata nije potpuno dok opoziv nema put dostave. Provjerite izdavatelja CRL-a i prozor valjanosti kao dio uvođenja.
openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-aPregled CRL-a izvještava kada je lista izdana i kada istječe, a status servisa potvrđuje da instanca koja je čita radi. Osvježite listu prema rasporedu politike izdavanja čak i kad ništa novo nije opozvano, jer istekao CRL može odbiti svakog klijenta. Objavite potpunu datoteku umjesto da čitatelji naiđu na djelomičan zapis, i provjerite potpis prije postavljanja. Zabilježite ko posjeduje izdavanje, rad krajnje točke i umirovljenje, tako da gašenje klijenta A ne poremeti B.
Zatim pokrenite prihvatni par: dopušteni klijent dolazi do vlastitog servisa, a A vjerodajnica biva odbijena od B listenera. To je granica izražena kao test.