OpenVPN управувачки сокет: контролен канал, а не метрики
Прифатен управувачки клиент држи контролни наредби, а не приказ само за читање. Поседувајте го Unix сокетот, прескокнете ја сесијата за снимки и држете TCP надвор.
Побарајте статус од управувачкиот интерфејс еднаш и тој почнува да личи на статусен порт. Но не е. Штом клиент е примен, тој може да издава контролни наредби на протоколот, а сметката што го извршува тој клиент го наследува сѐ што тие наредби можат да му сторат на демонот. Да се третира како поток само за читање е грешката што ја претвора интеграцијата за надзор во конзола без автентикација.
Верувањето и колку чини
Верувањето е дека управувачкиот слушател е еднаков на метричка крајна точка: приклучете собирач, прочитајте бројачи и продолжете. Всушност собирачот отвора сесија со контролни можности, и секоја друга претпоставка за распоредувањето сега зависи од тоа собирачот да се однесува добро.
Ништо во интерфејсот не рекламира режим само за читање. Нема улога на набљудувач што може да се избере, а корисничкото име во конфигурацијата не создава таква.
Што всушност држи прифатениот клиент
Заедницата демон прифаќа само еден активен управувачки клиент истовремено. Тоа едно место значи дека GUI, скрипта и агент за надзор не можат сите да се приклучат; вториот чека или не успева додека првиот ја држи сесијата. Ако вашиот дизајн претпоставува истовремени читатели, тој веќе е погрешен.
Каде што е доволна периодична снимка, излезот од статусната датотека ги дава истите броеви без жива сесија. Пишувањето на таа датотека во интервали и читањето со обични датотечни дозволи го држи собирачот целосно надвор од контролната рамнина, и тоа е распоредот што на повеќето системи за надзор навистина им треба.
Сопствен сокет, а не отворен
Unix домен сокетот го држи контролната патека надвор од мрежата, што ја отстранува променливата адреса на тунелот од проблемот. Тоа не го отстранува прашањето за дозволите. Родителскиот директориум мора да биде запишлив за сервисната сметка и достапен за сметката на контролорот, и тоа се две одделни дозволи:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerДатотеката со лозинка ја носи управувачката тајна на првиот ред. Заштитете ја таа датотека како секои други пристапни податоци и држете ја нејзината содржина надвор од дневници и билети за поддршка. Ограничувањата за корисник и група се проверки на партнерот на Unix сокетот, а не дозволи на датотечниот систем, па предвидениот процес бара и пристап до датотеката и соодветен идентитет.
Да се направи сокетот достапен за целиот свет за да се исчисти грешка со дозволи е единствената поправка што треба да се избегне. Тоа го претвора локалниот контролен канал во нешто што секој процес на домаќинот може да го управува.
Објавувањето преку TCP не е истиот дизајн
Преместувањето на слушателот на TCP порт не го прави побезбеден или поудобен. Управувачката лозинка се праќа во отворен текст, па TCP слушателот ги изложува и пристапните податоци и сесијата на секој што може да го набљудува патот. Пристапот до него од друг домаќин бара овластен административен канал или мал локален агент што ги изложува само набљудувањата што ви се потребни.
Лозинка на пренос со отворен текст е автентикација без доверливост, и таа комбинација е полоша отколку што изгледа затоа што се чувствува заштитена.
Стартни зависности што не ги баравте
Неколку управувачки опции го менуваат животниот циклус на демонот. Задржувањето на стартувањето додека не се поврзе контролер, или прекинувањето кога контролерот исчезнува, го претвора опционалниот набљудувач во тврда зависност. Тогаш агент за надзор што ќе падне би го повлекол и тунелот со себе.
Прегледајте ги тие опции пред да овозможите нешто освен самиот сокет. Опционалното набљудување треба да остане опционално, а политиката за рестартирање не треба да биде поврзана со собирач додаден за графикони.
Датотека од сокетот што останува по неуспешен процес не е доказ дека постои слушател. Утврдете која инстанца го поседува патот пред да го отстраните, и користете го сопствениот тек на обновување на услугата наместо да бришете датотеки под демон што работи.
Како изгледа прифаќањето
Четири проверки го покриваат дизајнот: предвидениот идентитет на контролерот се поврзува, процес без тој идентитет се одбива, демонот го преживува контролерот што се исклучува без предупредување, и тунелот сѐ уште пренесува сообраќај низ контролирано рестартирање. Успешна управувачка врска докажува само контролната рамнина. Таа не кажува ништо за тоа дали работи сообраќајот на приватните апликации, па тестирајте го одделно. Запишете ги четирите резултати таму каде што следниот оператор може да ги најде.
Документацијата на управувачкиот интерфејс го опишува моделот со еден клиент и привилегираната природа на протоколот, и тоа е делот што вреди да се прочита пред да насочите контролна табла кон него.