Упутство: одвојено увођење два OpenVPN клијента
Два клијента на једном OpenVPN хосту захтевају одвојене слушаоце, пулове, датотеке поверења и доставу опозива, уз пријемни тест који их држи одвојеним.
Два клијента на једном хосту звуче као још један серверски блок и други порт. То постаје други пројекат када наведете све што клијент заиста поседује: слушаоца, пул тунела, идентитет, датотеке поверења, руте и распоред опозива. Прескочите једну од тих ставки и други клијент тихо наследи део првог. Направите картицу за сваког клијента и попуните је пре него што се први клијент повеже.
Доделите потпуну картицу ресурса сваком клијенту
Резервишите цео скуп заједно: јавни порт, подмрежу тунела, путању конфигурације, одредиште дневника, назив инстанце услуге и уређај. Именовање као групе спречава класичну копију радне датотеке која још садржи пул или интерфејс првог клијента. Вредности су примери, а не резервисани портови, зато проверите шта хост већ користи. Услуга која се покрене није исто што и потпун клијент.
Држите картицу поред конфигурације и ажурирајте је сваки пут када се вредност промени. Документација која се удаљава од стварности гора је од никакве.
Држите материјал поверења унутар сваког клијента
Одвојено издавачко тело за сваког клијента олакшава размишљање о граници и држи кључ за потписивање далеко од хоста изложеног интернету. Заједнички корен такође може да ради, али заједничко сидро не претвара две услуге у један домен чланства. Одлучите које ланце сваки слушалац прихвата и које идентитете клијената овлашћује, па запишите обоје. Не скидајте сертификате са ланца покушајима и грешкама док се нешто не повеже.
Сопствени приватни кључ сервера припада заштићеној датотеци за сваког клијента, а не директоријуму шаблона који се репликује заједно са конфигурацијом.
Одвојте мреже као и процесе
Два процеса на два порта и даље деле хост и табелу рутирања ако их не одвојите. Потврдите шта слуша пре него што поверујете пројекту.
ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pemПровера слушаоца показује који процес поседује сваки јавни порт, а верификација показује да ли се сертификат клијента везује за предвиђено сидро. Ниједан излаз не доказује да клијент A не може да стигне до подмреже B, зато дефинишите политику извора и одредишта, повратне руте и сваку намерно заједничку услугу. Мрежни именски простори или контејнери одвајају контексте рутирања и смањују случајно мешање, али они нису потпуна граница закупца сами по себи. Изаберите јачи механизам изолације када модел претњи то захтева.
Доставите опозив пре предаје
Постављање сертификата није потпуно док опозив нема пут доставе. Проверите издаваоца CRL-а и прозор важности као део увођења.
openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-aПреглед CRL-а извештава када је листа издата и када истиче, а статус услуге потврђује да инстанца која га чита ради. Освежите листу према распореду политике издавања чак и када ништа ново није опозвано, јер истекао CRL може да одбије сваког клијента. Објавите потпуну датотеку уместо да читаоци наиђу на делимичан запис, и проверите потпис пре постављања. Забележите ко поседује издавање, рад крајње тачке и повлачење, тако да гашење клијента A не поремети B.
Затим покрените пријемни пар: дозвољени клијент стиже до сопствене услуге, а акредитив A бива одбијен од слушаоца B. То је граница изражена као тест.