Може ли 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 е единствената подредба, при която няколко клиента са наистина отделни възли.
Ако журналът показва едно общо име за всяко устройство, проблемът не е в режима. Проблемът е в процеса на регистрация.