Кіраўнічы сокет OpenVPN: канал кіравання, а не метрыкі
Дапушчаны кліент кіравання мае каманды кіравання, а не прагляд толькі для чытання. Валодайце сокетам Unix, абыходзьцеся без сеансу для здымкаў і трымайце TCP збоку.
Запытайце ў інтэрфейса кіравання статус адзін раз — і ён пачынае выглядаць як порт стану. Але гэта не так. Як толькі кліент дапушчаны, ён можа аддаваць каманды кіравання пратакола, і ўліковы запіс, які запускае гэты кліент, атрымлівае ўсё, што гэтыя каманды могуць зрабіць з дэманам. Стаўленне да яго як да патоку толькі для чытання — гэта памылка, якая ператварае інтэграцыю маніторынгу ў кансоль без аўтэнтыфікацыі.
Перакананне і яго цана
Перакананне ў тым, што слухач кіравання раўназначны метрычнай канцавой кропцы: падключыце зборшчык, прачытайце лічыльнікі і рухайцеся далей. Насамрэч зборшчык адкрывае сеанс з магчымасцямі кіравання, і ўсе іншыя дапушчэнні, якія вы рабілі пра разгортванне, цяпер залежаць ад таго, ці паводзіць сябе гэты зборшчык належным чынам.
Нішто ў інтэрфейсе не абвяшчае рэжым толькі для чытання. Няма ролі назіральніка, якую можна выбраць, і імя карыстальніка ў канфігурацыі не стварае яе.
Што насамрэч мае дапушчаны кліент
Дэман супольнасці прымае толькі аднаго актыўнага кліента кіравання адначасова. Гэты адзіны слот азначае, што графічны інтэрфейс, скрыпт і агент маніторынгу не могуць падключыцца ўсе разам; другі чакае або церпіць няўдачу, пакуль першы ўтрымлівае сеанс. Калі ваш праект разлічаны на адначасовых чытачоў, ён ужо памылковы.
Там, дзе дастаткова перыядычнага здымка, выхад у файл стану дае тыя ж лічбы без жывога сеансу. Запіс гэтага файла праз пэўныя інтэрвалы і чытанне яго са звычайнымі файлавымі дазволамі трымае зборшчык цалкам па-за плоскасцю кіравання, і гэта менавіта той парадак, які патрэбен большасці сістэм маніторынгу.
Свой сокет, а не адкрыты
Сокет дамена 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-слухач падвяргае і ўліковыя даныя, і сеанс кожнаму, хто можа назіраць за шляхам. Каб дабрацца да яго з іншага хаста, патрэбны аўтарызаваны канал адміністравання або невялікі лакальны агент, які паказвае толькі патрэбныя вам назіранні.
Пароль на транспарце з адкрытым тэкстам — гэта аўтэнтыфікацыя без канфідэнцыйнасці, і такая камбінацыя горш, чым здаецца, бо стварае адчуванне абароненасці.
Залежнасці пры запуску, якіх вы не прасілі
Некалькі опцый кіравання змяняюць жыццёвы цыкл дэмана. Утрыманне запуску, пакуль не падключыцца кіраўнік, або завяршэнне, калі кіраўнік знікае, ператварае неабавязковага назіральніка ў жорсткую залежнасць. Тады агент маніторынгу, які ўпадзе, пацягне за сабой і тунель.
Перагледзьце гэтыя опцыі, перш чым уключаць што-небудзь па-за самім сокетам. Неабавязковае назіранне павінна заставацца неабавязковым, а палітыка перазапуску не павінна быць звязана са зборшчыкам, дададзеным дзеля графікаў.
Файл сокета, які застаўся пасля няўдалага працэсу, не даказвае, што слухач існуе. Вызначце, які асобнік валодае шляхам, перш чым выдаляць яго, і выкарыстоўвайце ўласны працэс аднаўлення службы, а не выдаляйце файлы пад працуючым дэманам.
Як выглядае прыёмка
Чатыры праверкі ахопліваюць праект: патрэбная ідэнтычнасць кіраўніка падключаецца, працэс без гэтай ідэнтычнасці адхіляецца, дэман перажывае кіраўніка, які адключаецца без папярэджання, і тунель па-ранейшаму перадае трафік праз кантраляваны перазапуск. Паспяховае злучэнне кіравання даказвае толькі плоскасць кіравання. Яно нічога не кажа пра тое, ці працуе трафік прыватных праграм, таму праверце гэта асобна. Запішыце чатыры вынікі там, дзе іх знойдзе наступны аператар.
Дакументацыя інтэрфейсу кіравання апісвае мадэль аднаго кліента і прывілеяваны характар пратакола, і гэта тая частка, якую варта прачытаць, перш чым накіроўваць на яго панэль кіравання.