OpenVPN чака запыту пароля ад systemd: ці адказваць?
Запыт пароля ад systemd — гэта запыт ад службы, а не прысуд ад шлюза. Вызначце, які сакрэт патрабуецца і хто павінен адказаць.
У тэрмінале з'яўляецца паведамленне пра systemd-tty-ask-password-agent, а тунель не ўзняты. Спакуслівае прачытанне: VPN адхіліў пароль, і цяпер нешта чакае выпраўлення. Дакладней сказаць, што нейкая служба запытала ў systemd інтэрактыўны ўвод, і запыт яшчэ не атрымаў адказу. Якая служба запытала і які сакрэт ёй патрэбны — два пытанні, якія можна вырашыць да таго, як нешта набіраць.
Хто павінен адказаць — вырашаюць дзве ўмовы
Першая ўмова — ці вы запускалі гэты асобнік наўмысна. Запыт, які ідзе за вашым дзеяннем, належыць вам, а той, што з'яўляецца без адпаведнага дзеяння, належыць чамусьці іншаму. Другая — ці сакрэт з'яўляецца аўтэнтыфікацыяй уліковага запісу або аховай ключа, бо яны жывуць у розных месцах і ідуць рознымі шляхамі кода. Абодва адказы бачныя ў журнале, калі паглядзець перад дзеяннем.
Калі абодва адказы ясныя, рашэнне простае: адказвайце праз уласны падтрыманы шлях запыту гэтай службы. Калі хоць адзін няясны, правільны крок — даследаваць, а не ўводзіць пароль у запыт, які вы не можаце ні да чаго прыпісаць.
Вось і ўсё правіла, і яго варта агучыць перад камандамі. Усё ніжэй вынікае з яго.
Пералічыце запыты, перш чым нешта набіраць
Агент можа пералічыць тое, што чакае, ні на што не адказваючы. sudo systemd-tty-ask-password-agent --list выводзіць яшчэ не апрацаваныя запыты, і гэты вывад — доказ, патрэбны, каб звязаць запыт з юнітам. Прачытайце яго перад тым, як даць уліковыя даныя, і трымайце апісанні запытаў па-за любым публічным дыягнастычным устаўленнем.
Суаднясіце спіс з аперацыяй, якую вы пачалі, і з юнітам, якому ён належыць. Калі нішто ў спісе не адпавядае вашаму дзеянню, убачаны запыт належыць іншай службе і не вам яго вырашаць. Імя юніта ў спісе — адзіная надзейная сувязь паміж запытам і службай.
Не адказвайце на запыт, які вы не можаце ні да чаго прыпісаць. Кошт чакання — затрымка, а кошт адказу на няправільны запыт — уліковыя даныя не ў тым месцы.
Які сакрэт насамрэч патрэбны асобніку?
auth-user-pass датычыцца аўтэнтыфікацыі ўліковага запісу ў службе VPN, і без файла ўліковых даных дакументаваныя паводзіны — спытаць у кансолі. askpass наадварот атрымлівае парольную фразу, якая адмыкае абаронены ключавы матэрыял, і робіць гэта да таго, як працэс сыходзіць у фон. Гэта розныя сакрэты з рознымі тэрмінамі жыцця.
Фарматы файлаў таксама розныя. Форма для ўліковага запісу чакае радок імені карыстальніка і радок пароля, а файл парольнай фразы ключа чытае першы радок як свой пароль. Капіраванне рэцэпту файла ўліковых даных з іншай ролі звычайна дае чарговы запыт замест рашэння. Файл няправільнай формы горш за адсутнасць файла, бо збой пераходзіць у месца, за якім ніхто не назірае.
Праверце, якую дырэктыву выкарыстоўвае асобнік, перад тым як вырашаць, што набіраць. Назва дырэктывы падказвае, для якога сакрэту прызначаны запыт.
Што робіць --query, чаго не робіць --list
--query апрацоўвае кожны запыт, што чакае, на тэрмінале выкліку, і гэта значна шырэйшае дзеянне, чым адказ на адзін запыт. Гэта не селектар OpenVPN, і на занятай машыне ён можа адказаць на запыты, што належаць іншым юнітам. Рэжым назірання яшчэ шырэйшы, бо ён працягвае апрацоўваць запыты па меры іх прыходу.
Выкарыстоўвайце самы вузкі механізм, які працуе. Для адной службы ўласны працоўны працэс запыту гэтай службы вузкі за глабальны агент і трымае адказ прывязаным да юніта, які запытаў.
Ператварэнне аднаразовага запыту ў безнаглядны глабальны агент толькі таму, што паведамленне з'явілася аднойчы, — гэта шлях, якім часовую непапрыемнасць робяць сталым дызайнам. Тая ж асцярожнасць датычыцца адключэння юнітаў апавяшчэнняў пра пароль на ўсім хасце.
Вырашыце, а потым запішыце выбар
Для безнагляднага разгортвання ўзгадніце крыніцу ўліковых даных, правы на файл і графік абнаўлення з тым, хто валодае злучэннем. Інтэрактыўны другі фактар можа патрабаваць чалавека або асобнай ідэнтычнасці службы. Заглушэнне запыту не стварае такой аўтэнтыфікацыі, а выдаленне auth-user-pass толькі ламае службу, якой ён патрэбны.
Пасля ўзаемадзеяння паглядзіце на той жа асобнік дзеля яго наступнай падзеі і праверце прыватны рэсурс. Калі нічога не чакае, вярніцеся да стану асобніка замест таго, каб запускаць кожны юніт OpenVPN на хасце.