Може ли OpenVPN веза са статичким кључем да опслужује више клијената?
Режим са статичким кључем повезује два равноправна чвора. Додавање client-to-client не претвара га у сервер за више клијената; за то су потребни TLS режим и идентитет за сваки уређај.
Режим са статичким кључем повезује тачно два равноправна чвора и то је његов дизајн, а не ограничење које је неко заборавио да уклони. client-to-client је опција прослеђивања у серверском режиму, па њено додавање у конфигурацију --secret ништа не мења у томе колико клијената може да се повеже. Одлука није која заставица да се дода, већ да ли распоређивању треба веза тачка-до-тачке или услуга за више клијената. Ако неколико уређаја треба да се повезује независно, режим заштите се мења и сваки уређај добија идентитет.
Два чвора, један кључ и никакво стање по клијенту: тај облик је цела прича режима.
Чему служи режим са статичким кључем
У тајном режиму оба чвора деле једну датотеку кључа и тај кључ директно штити саобраћај. Нема руковања, нема размене сертификата и нема сесије по клијенту, јер нема клијената у серверском смислу, само две крајње тачке.
Режим остаје користан за фиксни пар машина са документованим поступком ротације кључева, а OpenVPN 2.6 га означава као застарео управо зато што TLS режим покрива те случајеве бољим својствима. Оно што не може јесте да разликује један уређај који се повезује од другог, пошто је поседовање датотеке цела прича о аутентикацији. Додавање трећег уређаја значи дељење истог кључа са њим, после чега прва два више не могу да га разликују од себе.
Зато је граница од два чвора структурна, а не подешавање које може да се промени.
Зашто client-to-client није део који недостаје
client-to-client контролише да ли повезани клијенти могу да размене саобраћај кроз сервер. Он не прима клијенте, не додељује идентитете и не ствара серверски режим који није конфигурисан, а у конфигурацији са статичким кључем нема списка клијената којим би управљао.
Друга честа забуна тиче се материјала tls-crypt или tls-auth. TLS сервер може да дели један од тих кључева међу свим клијентима, јер штити контролни канал уместо да доказује ко је који клијент. Заједнички кључ контролног канала у TLS режиму је други објекат од заједничког статичког кључа података, иако оба долазе као сличне датотеке.
Избор између режима своди се на два питања. Да ли више од једног уређаја треба да се повезује независно и да ли је распоређивању потребно опозивање по уређају? Не на оба одржава режим са статичким кључем одрживим; да на било које од њих упућује на TLS. Нема треће опције где се други клијент прима без сопственог идентитета.
Изградња сервера за више клијената
Серверу за више клијената потребни су TLS режим, сертификат на страни сервера и идентитет по клијенту. Серверски помоћник подешава скуп адреса и режим за више клијената, али не доставља TLS конфигурацију, сидро поверења или клијентске сертификате који пријем чине смисленим.
Региструјте сваки уређај преко постојећег тела за сертификате уместо да копирате акредитиве једног клијента. Управо различити идентитети омогућавају опозивање, рутирање по клијенту и корисне дневнике, а један заједнички клијентски сертификат руши сва три.
Ако распоређивање аутентикује кориснике преко спољног директоријума или другог фактора, тај дизајн остаје какав јесте. Прелазак у TLS серверски режим одлучује како чворови доказују себе на слоју тунела и не диктира позадину налога. Држите две одлуке одвојено да промена у једној не промени тихо другу.
Затим свесно одлучите политику прослеђивања. client-to-client омогућава саобраћај између клијената на серверској путањи у корисничком простору, што многа распоређивања желе, а нека не смеју да имају. То је прекидач политике, не механизам идентитета, и треба га укључити зато што дизајн то захтева, а не зато што га је упутство укључило.
Провера да су клијенти заиста независни
Повежите два клијента и потврдите да добијају различите адресе и да се појављују са различитим идентитетима у дневнику сервера. Затим опозовите један и потврдите да други наставља да ради, што је практични тест да идентитети нису били дељени.
Тестирајте дозвољену услугу међу чворовима и ону која треба да остане блокирана. Две успешне пријаве доказују пријем, а не изолацију, и разлика је важна када распоређивање треба да одвоји групе корисника.
На крају прочитајте серверски режим из конфигурације која ради, а не из меморије. Конфигурација са статичким кључем и додатним опцијама и даље је веза тачка-до-тачке, а исправан TLS сервер је једини распоред у којем је неколико клијената заиста одвојено.
Ако дневник показује једно заједничко име за сваки уређај, проблем није режим. Проблем је поступак регистрације.