OpenVPN пры запуску выводзіць папярэджанне, якое прапануе auth-nocache, і спакуслівы адказ — дадаць опцыю і назіраць, як радок знікае. Гэтая парада мяркуе інтэрактыўны ўваход. Калі імя карыстальніка і пароль ляжаць у файле, параўнанне змяняецца: опцыя перастае абараняць доўгатэрміновую копію, і на кліенце, які скідае прывілеі, яна можа пазней зламаць перагаворы. Дзве мадэлі захоўвання варта трымаць асобна, перш чым правіць профіль.

Два спосабы адказаць на запыт уліковых даных

Першая мадэль — чалавек, які ўводзіць уліковыя даныя ў тэрмінале, або графічная праграма кіравання, якая трымае іх на працягу сеанса. OpenVPN захоўвае гэтую копію, каб адказаць на наступныя перагаворы без паўторнага запыту, і менавіта пра гэта папярэджанне. Нічога на дыску не задзейнічана, таму абараняць трэба толькі працэс, які трымае значэнне. Закрыйце кліент — і копія знікне разам з ім.

Другая мадэль — auth-user-pass , які паказвае на файл, дзе файл і ёсць сховішча, і кліент чытае яго, калі патрэбна значэнне. Істотная тут рызыка — не памяць працэса, а правы і ўласнік гэтага файла. Папярэджанне пры запуску паходзіць з дырэктыў у канфігурацыі, а не з праверкі таго, як вы падаяце пароль, таму яно з’яўляецца ў абедзвюх мадэлях і не паказвае ні на адну.

Астатняе ў гэтым параўнанні вынікае з гэтага падзелу: праца з памяццю для адной мадэлі, праца з файлам і ідэнтычнасць працэса для другой.

Што auth-nocache насамрэч адкідвае

Пры інтэрактыўным уваходзе --auth-nocache выдаляе захаваную копію з памяці пасля выкарыстання. Кошт — новы запыт на кожным інтэрвале перагавораў, бо наступны круг не можа выкарыстаць тое, што было адкінута.

Пры ўваходзе з файлам кліент можа прачытаць файл зноў, таму адкідванне пераважна незаўважнае. Яно робіцца заўважным у адным месцы, дзе людзі яго не чакаюць: пасля таго як дэман скідвае прывілеі, калі файл уліковых даных нечытэльны для ўліковага запісу, ад імя якога ён цяпер працуе.

Дадавайце опцыю таму, што разумееце гэты абмен, а не таму, што з’явілася папярэджанне. Опцыя, дададзеная, каб зрабіць лог цішэйшым, — гэта опцыя, эфект якой ніхто не вымяраў.

Дзе ламаецца шлях з файлам

Кліент, які стартуе як root, каб адкрыць тунельную прыладу, а затым пераключаецца на user і group , чытае файл уліковых даных двойчы: адзін раз перад пераключэннем, адзін раз на перагаворах, што ідуць следам. Калі файл мае рэжым 600 і належыць root, другое чытанне не ўдаецца, і збой выяўляецца праз гадзіну як памылка аўтэнтыфікацыі, што выглядае як праблема сервера. Праверце лог кліента вакол інтэрвалу перагавораў, затым праверце ўліковы запіс і файл разам.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

Абодва радкі важныя. Першы кажа, хто можа чытаць файл, другі — хто насамрэч працуючы дэман, і неадпаведнасць паміж імі тлумачыць збой, які ніякае перадрукоўванне пароля не выправіць.

Практычныя выпраўленні неэфектныя: перанясіце файл у каталог і да ўласніка, чытэльныя для ўліковага запісу дэмана, або пакіньце прывілеяванае чытанне і пераканайцеся, што кліент чытае толькі адзін раз. Не вырашайце гэта тым, каб зрабіць файл чытэльным для ўсіх.

Выпадак, які сапраўды хоча опцыю

Уваход з аднаразовым кодам хоча auth-nocache з іншай прычыны. Аднаразовы код траціцца пры першай аўтэнтыфікацыі, таму кэшаваная копія бескарысная на наступных перагаворах, а састарэлае значэнне можа нават быць паўторана.

Гэта пытанне пра тып уліковых даных, а не пра тое, дзе яны захоўваюцца. Статычны пароль у абароненым файле мае процілеглы профіль: ён павінен быць чытэльны на кожных перагаворах, і абарона, якая патрэбна, — на файле.

Трымайце гэтыя дзве прычыны асобна ў каментарах профілю, бо інакш наступны адміністратар будзе меркаваць, што опцыя там па той прычыне, якую абраў бы ён.

Параўнанне ў адным рашэнні

Выбірайце інтэрактыўную мадэль, калі чалавек прысутнічае і свежасць важная, і прымайце паўторны запыт як яе кошт. Выбірайце файлавую мадэль, калі кліент працуе без нагляду, і накіруйце намаганні на ўласніка, рэжым і скід прывілеяў.

Ні адна мадэль сама па сабе не робіць захаваны пароль бяспечным, і ні адна не робіць папярэджанне пры запуску значным.

Калі папярэджанне — адзіная прычына, па якой вы адкрылі профіль, запішыце рашэнне, а не непатлумачаную опцыю: уліковыя даныя паходзяць з файла, чытэльнага для ўліковага запісу дэмана, перагаворы бачылі паспяховымі, і кіраўніцтва OpenVPN 2.6 раздзел пра перагаворы быў прачытаны перад зменай інтэрвалу. Гэтая нататка перажыве любы асобны сцяг.

Падобныя артыкулы