Dva klijenta na jednom hostu zvuče kao još jedan blok poslužitelja i drugi port. To postaje drugi projekt čim navedete sve što klijent doista posjeduje: listener, pool tunela, identitet, datoteke povjerenja, rute i raspored opoziva. Preskočite li jednu od tih stavki, drugi klijent tiho naslijedi dio prvoga. Napravite karticu za svakog klijenta i ispunite je prije nego se prvi klijent spoji.

Dodijelite potpunu karticu resursa svakom klijentu

Rezervirajte cijeli skup zajedno: javni port, podmrežu tunela, putanju konfiguracije, odredište zapisa, naziv instance usluge i uređaj. Imenovanje kao skupine 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 što host već rabi. Usluga koja se pokrene nije isto što i klijent koji je potpun.

Držite karticu uz konfiguraciju i ažurirajte je kad god se vrijednost promijeni. Dokumentacija koja se odvoji od stvarnosti gora je od nikakve.

Zadržite materijal povjerenja unutar svakog klijenta

Zasebno izdavateljsko tijelo po klijentu čini granicu lakom za promiš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 dvije usluge 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č poslužitelja pripada u zaštićenu datoteku po klijentu, a ne u predložak mape 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 što sluša prije nego povjerujete dizajnu.

ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pem

Provjera listenera pokazuje koji proces posjeduje svaki javni port, a verifikacija pokazuje veže li se klijentski certifikat 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 svaku namjerno zajedničku uslugu. 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-a

Pregled CRL-a izvješćuje kada je popis izdan i kada istječe, a status usluge potvrđuje da instanca koja ga čita radi. Osvježite popis 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 tko 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 vlastite usluge, a vjerodajnica A biva odbijena od B listenera. To je granica izražena kao test.

Povezani članci