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

Пачынайце з задачы, а не з уліковага запісу

Задача вызначае мяжу: якія пункты прызначэння, якія сэрвісы, якія гадзіны, як доўга можа доўжыцца сеанс. Маршрут тунеля — гэта толькі палова гэтай мяжы. Шлюз вырашае, ці дазволены сеанс; рэсурс за ім вырашае, што сеанс можа рабіць. Спачатку запішыце спіс, з названым уладальнікам, бо абедзве канструкцыі ідэнтычнасці павінны яму адпавядаць.

Трымайце аўтэнтыфікацыю і аўтарызацыю асобна, пакуль запісваеце. Аўтэнтыфікацыя адказвае, хто падключаецца; аўтарызацыя адказвае, чаго сеанс можа дасягнуць потым. RADIUS пераносіць другую частку як атрыбуты, такія як Filter-Id, Framed-IP-Address, Session-Timeout і Class, і шлюз далучае іх пасля паспяховага ўваходу. Канструкцыя, якая мяняе ўваход і пакідае аўтарызацыю нязменнай, нічога не абмежавала.

Агульны чалавечы ўваход: пароль становіцца мяжой

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

MFA — гэта месца, дзе гэтая канструкцыя звычайна развальваецца. Скрыпт не можа адказаць на push-запыт, таму ўліковы запіс выключаюць з палітыкі, і гэта менавіта той запіс, які выбраў бы зламыснік. Выключэнні, абыходы давераных месцазнаходжанняў і вызваленні па кожным запісе памнажаюцца, і ніводнае не бачна наступнаму чалавеку, які чытае налады тэнанта.

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

Сертыфікат машыны: ідэнтычнасць, прывязаная да хоста

Сертыфікат мяняе пытанне з таго, што ведае ўліковы запіс, на тое, чым з'яўляецца хост. З EAP-TLS кліент прад'яўляе сертыфікат і даказвае валоданне адпаведным прыватным ключом; сервер палітыкі суадносіць суб'ект або ўліковы запіс камп'ютара з групай і прымяняе палітыку для гэтай групы. Ніякага запыту, ніякага агульнага сакрэту ў тэкставым файле.

Мяжа, якую ён стварае, вузейшая, чым чакаюць людзі. Сертыфікат аўтэнтыфікуе хост, а не задачу, і любы з правамі root або лакальнага адміністратара можа выкарыстаць гэты ключ на гэтым хосце. Трымайце ключ там, дзе платформа яго абараняе: неэкспартуемы ў сховішчы сертыфікатаў Windows, з падтрымкай TPM там, дзе профіль дазваляе, або файл 0600, які належыць root, у Linux. Кампраметацыя хоста — гэта кампраметацыя ўліковых даных.

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

openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts

Адкліканне патрабуе шляху, які правярае шлюз. OpenVPN чытае CRL праз опцыю crl-verify, а strongSwan залежыць ад CRL або OCSP у залежнасці ад таго, як пабудаваны профіль злучэння. Калі ні адно не падключана, выдаленне хоста азначае чаканне заканчэння тэрміну сертыфіката.

Тры ўмовы, якія вырашаюць паміж імі

Праводзьце параўнанне супраць платформы, якая ў вас ёсць, а не супраць эталоннай канструкцыі.

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

ConstraintMachine certificateDedicated user account with stored secret
Unattended loginPrivate key proof, no promptOnly if the account is exempted from MFA
Resource expects a user identityWorks only when the resource accepts computer accountsMatches the access a person would have
RotationRe-enrollment, often automatedSecret change plus redeploy of every copy
Revocation speedTied to CRL or OCSP refreshDisable the account, immediate

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

Змясціце мяжу ў палітыку, пасля аўтэнтыфікацыі

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

Дайце задачы ўласную групу або ўмову палітыкі, заснаваную на тым, што нясе ідэнтычнасць машыны: шаблон сертыфіката, ідэнтыфікатар станцыі выкліку або адрас з выдзеленага пула. Затым абмяжуйце сеанс атрыбутамі: Filter-Id для ролі, да якой ваш шлюз яго суадносіць, кароткі Session-Timeout, каб застылая задача паўторна аўтэнтыфікавалася замест утрымання сеансу на працягу дзён, і Framed-IP-Address з пула, які вы фільтруеце на процілеглым баку. Аўтарызацыя праграм застаецца асобнай: тунель да сервера базы даных — гэта не дазвол чытаць табліцу ўнутры яго.

Праверце адмовы, затым плануйце выдаленне

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

Затым пацвердзіце той жа сеанс у двух месцах. Журнал шлюза паказвае ідэнтычнасць, якая прайшла аўтэнтыфікацыю; журнал сервера палітыкі паказвае, якая палітыка супала і якія атрыбуты яна вярнула. У OpenVPN сервер запісвае агульнае імя сертыфіката, а ipsec statusall у strongSwan друкуе ўсталяваны тунель з ідэнтычнасцю, якая выкарыстоўваецца. Калі два журналы разыходзяцца наконт ідэнтычнасці, палітыка супадае з чымсьці іншым, чым вы мяркуеце.

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

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

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