Доступ да VPN праз уліковы запіс службы: сертыфікат або агульны ўваход
Параўнайце сертыфікат машыны з захаваным паролем для беспілотнага доступу да VPN і змясціце рэальную мяжу дазволаў у палітыку, якая выконваецца пасля ўваходу.
Дзве канструкцыі ахопліваюць амаль кожную беспілотную ўстаноўку 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 з карыстальнікам каталога, сертыфікат аўтэнтыфікуе хост і потым затынаецца на аўтарызацыі. Другая ўмова: ці патрэбны задачы доступ да рэсурсу, які нясе толькі ўліковы запіс карыстальніка, напрыклад падключаны агульны рэсурс або ліцэнзія на месца? Тады ідэнтычнасць машыны не можа замяніць яго, і сумленны адказ — выдзелены ўліковы запіс карыстальніка з абмежаванай палітыкай. Трэцяя ўмова: хто можа змяняць уліковыя даныя без удзелу чалавека? Аўтаматычная рэгістрацыя робіць сертыфікаты таннымі ў утрыманні; пароль, вядомы аднаму чалавеку, — не.
| Constraint | Machine certificate | Dedicated user account with stored secret |
|---|---|---|
| Unattended login | Private key proof, no prompt | Only if the account is exempted from MFA |
| Resource expects a user identity | Works only when the resource accepts computer accounts | Matches the access a person would have |
| Rotation | Re-enrollment, often automated | Secret change plus redeploy of every copy |
| Revocation speed | Tied to CRL or OCSP refresh | Disable the account, immediate |
Чытайце табліцу як спіс выдаткаў, а не як рэйтынг. Калона захаванага сакрэту выйграе ў хуткасці адклікання і ў сумяшчальнасці з рэсурсамі, якія разумеюць толькі ўліковыя запісы карыстальнікаў; калона сертыфіката выйграе ў ратацыі і ў тым, што не паслабляе MFA дзеля працы скрыпта.
Змясціце мяжу ў палітыку, пасля аўтэнтыфікацыі
Якую б ідэнтычнасць вы ні выбралі, мяжа дазволаў належыць палітыцы, якая выконваецца пасля аўтэнтыфікацыі. У NPS сеткавыя палітыкі ацэньваюцца па парадку, і першая палітыка, якая адпавядае ўсім умовам, прымяняе свае налады, таму шырокая палітыка, змешчаная над вузкай, вырашае вынік незалежна ад таго, што прад'яўляе кліент. Microsoft дакументуе мадэль умоў і налад у сваім агляд палітык NPS.
Дайце задачы ўласную групу або ўмову палітыкі, заснаваную на тым, што нясе ідэнтычнасць машыны: шаблон сертыфіката, ідэнтыфікатар станцыі выкліку або адрас з выдзеленага пула. Затым абмяжуйце сеанс атрыбутамі: Filter-Id для ролі, да якой ваш шлюз яго суадносіць, кароткі Session-Timeout, каб застылая задача паўторна аўтэнтыфікавалася замест утрымання сеансу на працягу дзён, і Framed-IP-Address з пула, які вы фільтруеце на процілеглым баку. Аўтарызацыя праграм застаецца асобнай: тунель да сервера базы даных — гэта не дазвол чытаць табліцу ўнутры яго.
Праверце адмовы, затым плануйце выдаленне
Доступ, які працуе, нічога не даказвае пра найменшыя прывілеі. Замест гэтага праверце адмовы: падключыцеся з ідэнтычнасцю задачы і паспрабуйце дасягнуць пункта прызначэння па-за спісам, адкрыйце другі адначасовы сеанс, калі шлюз павінен дазваляць толькі адзін, і паўтарыце ўваход пасля адклікання ўліковых даных.
Затым пацвердзіце той жа сеанс у двух месцах. Журнал шлюза паказвае ідэнтычнасць, якая прайшла аўтэнтыфікацыю; журнал сервера палітыкі паказвае, якая палітыка супала і якія атрыбуты яна вярнула. У OpenVPN сервер запісвае агульнае імя сертыфіката, а ipsec statusall у strongSwan друкуе ўсталяваны тунель з ідэнтычнасцю, якая выкарыстоўваецца. Калі два журналы разыходзяцца наконт ідэнтычнасці, палітыка супадае з чымсьці іншым, чым вы мяркуеце.
Выдаленне належыць да канструкцыі, а не да спрынту па прыборцы. Запішыце ўсё, што трэба выдаліць (сертыфікат або ўліковы запіс, сяброўства ў групе, сеткавая палітыка, запіс у пуле, правіла файрвола на мэце) і выканайце гэта адзін раз, пакуль задачу лёгка перабудаваць.
Калі вы пачынаеце сёння, працуйце ў такім парадку: запішыце спіс рэсурсаў, выберыце ідэнтычнасць па трох умовах, змясціце мяжу ў палітыку і практрыце адну адмову, перш чым задача пойдзе ў жыццё.