Сертификат, който се валидира срещу споделен орган, е преминал проверка за доверие, а не проверка за членство. Тези две решения често се сливат, защото и двете се случват по време на свързването, и сливането остава невидимо, докато в услуга не бъде допуснат някой, който не би трябвало да е в нея. Поправката не е втори орган; тя е второ решение, взето за всяка услуга и записано там, където демонът го чете. Дръжте двете отделно и по-голямата част от объркването в тази област изчезва.

Доверената верига не казва нищо за членството в услугата

Две услуги могат да приемат една и съща издаваща йерархия и въпреки това да имат различни популации. Един лаптоп принадлежи към първата и не трябва да достига до втората, докато други клиенти от същата йерархия наистина принадлежат там. Премахването на органа от тази услуга би заключило всички, които законно я използват, затова работата е допускане, а не доверие.

Помага да си представим две ключалки на една врата. Сертификатът отваря външната ключалка, а решение за конкретната услуга отваря вътрешната; нито едното не заменя другото. Услуга само с външната ключалка изобщо не налага членство, тя само удостоверява самоличност. Запишете и двете решения, преди да промените нещо, защото политика, която съществува само под формата на работеща връзка, не може да бъде одитирана. Следващото се отнася до вътрешната ключалка.

Превърнете незадължителните замествания в порта за допускане

Директорията за клиентска конфигурация обикновено е удобство: файловете в нея заместват настройките за клиентите, които назовават, а клиент без файл просто работи с настройките по подразбиране на сървъра. Една директива превръща това удобство в порта, така че липсващ файл означава отказ на връзката.

client-config-dir /etc/openvpn/service-a/clients
ccd-exclusive

Общностната версия на OpenVPN 2.6 ccd-exclusive в ръководството си документира точно това условие и търсенето на наименуван файл зависи от ефективната идентичност на клиента. Други компилации и управлявани от продукти сървъри може да се различават, затова потвърдете инсталираната версия, преди да разчитате на същата семантика другаде.

Приемете пътя по-горе като пример и проверете разгърнатата подредба, вместо да създавате директория, измислена от ръководство. Оставете съществуващите проверки на сертификати, проверки на идентичността на сървъра и удостоверяването на акаунт точно каквито са били, защото фрагментът добавя условие и не премахва нищо. Подгответе промяната преди продукция, тъй като отказ, повдигнат в грешен момент, изглежда като повреда на сертификат и насочва разследването към органа. След това потвърдете, че редът в журнала за отказан клиент назовава липсващия конфигурационен файл, а не веригата.

Една директория на услуга, а не един споделен списък

Членството принадлежи на услугата, която го налага, затова всяка услуга поддържа своя директория и свои файлове. Насочването на две услуги към един списък ги кара да споделят членство независимо дали някой е искал това, и получената промяна трудно се проследява до решение. Споделеният орган може да остане споделен; файловете за допускане не могат. Разделното им съхранение означава също, че грешка в една услуга не може тихо да разшири друга.

Записът DEFAULT е случаят, който подвежда хората. Той предоставя резервни настройки, когато не е намерен наименуван файл, но не е наименуваният файл, който портата изисква, затова не може да допусне клиент сам по себе си. Тествайте клиент, който изобщо няма запис, и потвърдете отказа; ако този клиент бъде допуснат, резервният вариант се прилага и ccd-exclusive не е в сила в този екземпляр.

Ефективната идентичност решава кой файл се чете

Търсенето използва идентичността, с която клиентът действително се е удостоверил, която обикновено е общото име на сертификата. Когато сървърът също проверява потребителско име и парола и преобразува това име в общото име, файлът трябва да съответства на удостовереното потребителско име вместо това. Несъответствието оставя директория, пълна с правдоподобни имена на файлове, които никога не се избират.

Четенето е другата половина. Демонът обикновено се отказва от привилегии след стартиране, затова намаленият акаунт се нуждае от достъп за четене до директорията и всеки запис в нея. Клиентите не трябва да могат да създават свой собствен запис през който и да е път с права за запис, защото самодейното допускане напълно обезсмисля механизма. Проверете правата за монтиране и споделяне, а не само режима на файла, тъй като директория, която изглежда затворена за един акаунт, може да е отворена за друг. След това потвърдете кой акаунт действително използва работещият процес, а не кой акаунт споменава unit файлът. Двете съвпадат само когато нищо друго не ги е променило.

Наблюдавайте отказа, допускането и оттеглянето поотделно

Опитайте идентичност, която принадлежи на услугата, и потвърдете, че се свързва. Опитайте валиден сертификат без запис и потвърдете, че е отказан. Опитайте идентичност, допусната до другата услуга, и потвърдете, че тук не е допусната. Записвайте екземпляра на услугата и ефективната идентичност до всеки резултат, защото резултат без този контекст не може да бъде възпроизведен от никой друг.

Отнемането е отделна операция от оттеглянето на сертификат. Редактирането на файл за допускане премахва право за една услуга, докато идентичността остава валидна навсякъде другаде, докато компрометиран ключ изисква реакция за оттегляне на организацията. Решете предварително какво се случва със сесиите, които вече са установени, тъй като нито редактирането на директория, нито списъкът за оттегляне ги прекратяват сами по себе си.

Допускането е също само първата порта. Присъединяването към услуга не казва нищо за подмрежите, базите данни или интерфейсите за управление зад нея, и тази политика за ресурси трябва да бъде написана и тествана отделно.

Подобни статии