Запуск OpenVPN у Windows без прадастаўлення карыстальнікам правоў адміністратара
OpenVPN патрабуе прывілеяў для адаптара і маршрутаў, а не для ўсяго. Выкарыстайце службу і дэлегуйце сеткавыя правы, а потым праверце з уліковага запісу карыстальніка.
Карыстальнік двойчы пстрыкае па OpenVPN GUI, пацвярджае запыт UAC і паўтарае тую ж рытуальную дзею пры наступным перападлучэнні. Запыт — не памылка ўпакоўкі: кліент стварае віртуальны адаптар і рэдагуе табліцу маршрутызацыі, і абодва гэта прывілеяваныя змены. Карыснае пытанне — якія з гэтых правоў карыстальніку сапраўды патрэбныя. Служба плюс вузкае дэлегаванне забяспечваюць злучэнне, не выдаючы членства адміністратара.
Якія аперацыі сапраўды патрабуюць павышэння правоў
Тунэль сканчаецца на віртуальным сеткавым інтэрфейсе, а ўсталяванне гэтага інтэрфейсу — аперацыя драйвера, якая адзін раз патрабуе правоў адміністратара. Пасля з’яўлення адаптара кожнае злучэнне ўсё яшчэ запісвае маршруты і, у залежнасці ад профілю, змяняе канфігурацыю DNS. Менавіта гэтыя два крокі выклікаюць павышэнне правоў у звычайным уліковым запісе. Нішто ў аўтэнтыфікацыі ці шыфраванні не патрабуе правоў адміністратара, і менавіта таму прывілей можна аддзяліць.
Аддзяліце час усталявання ад часу злучэння, перш чым выбіраць дазвол. У іх розныя ўладальнікі і розныя тэрміны жыцця.
Выкарыстоўвайце службу як прывілеяваны кампанент
Падтрыманая схема запускае службу Windows, якая валодае патрэбнымі правамі, а GUI просіць службу падключыцца. Тады прывілеяваны код ніколі не выконваецца ўнутры сеанса карыстальніка.
sc query OpenVPNService
sc qc OpenVPNServiceПрацуючая служба, шлях да бінарнага файла якой паказвае на ўсталяваны кліент, — гэта першы факт, які трэба пацвердзіць, перш чым што-небудзь дэлегаваць. Служба валодае адаптарам і маршрутамі, таму карыстальнік толькі запускае і спыняе злучэнне. Менавіта такую схему варта ўжываць на агульных машынах, бо ўліковы запіс, які націскае кнопку падключэння, не мае пастаянных прывілеяў. Чытайце дэскрыптар з дапамогай sc sdshow перад рэдагаваннем і захоўвайце вядомую спраўную копію вываду.
Дэлегуйце змены маршрутаў убудаванай групе
Для кліента, які павінен працаваць інтэрактыўна, дэлегаваная ўбудаваная група — Network Configuration Operators. Яна ахоплівае сеткавыя налады і змены маршрутаў, выключаючы ўсталяванне праграм і агульную адміністрацыйную працу.
net localgroup "Network Configuration Operators" alice /add
sc sdshow OpenVPNServiceДаданне ўліковага запісу не адбываецца маўкліва: палітыка па змаўчанні ўсё яшчэ падымае адзін запыт за сеанс, таму дазвол паменшвае тое, што можа зрабіць павышэнне правоў, а не прыбірае яго. Дакументуйце членства, бо яно ціха назапашваецца і амаль ніколі не пераглядаецца. На шляху праз службу рэдагаванне дэскрыптара з дапамогай sc sdset можа дэлегаваць запуск і спыненне пэўнай групе, хаця друкарская памылка ў дэскрыптары можа пазбавіць правоў запуску ўсе ўліковыя запісы, а адмяніць гэта можа толькі адміністратар. Праверце любую змену дэскрыптара на лабараторнай машыне, перш чым яна трапіць на прадукцыйны хост.
Праверце з уліковага запісу карыстальніка
Канфігурацыя, зробленая ў сеансе адміністратара, нічога не даказвае пра ўліковы запіс, які будзе ёю карыстацца. Увайдзіце як гэты карыстальнік, падключыцеся і параўнайце стан машыны да і пасля.
route print -4
Get-DnsClientServerAddressТабліца маршрутызацыі павінна атрымаць маршруты тунэля, а распазнавальнік — паказваць на серверы, якія VPN дае падчас злучэння. Пасля адключэння абодва вывады павінны супасці з копіямі, зробленымі загадзя, і менавіта таму важна зняць іх спачатку. Абнаўленні драйвера могуць вярнуць патрабаванне правоў адміністратара, таму запішыце версію кліента побач з вынікам. Трымайце файлы профілю і ключоў чытэльнымі толькі для ўліковага запісу, які імі карыстаецца, замест таго каб паслабляць дазволы для агульнай усталёўкі.
Запішыце, хто можа запускаць тунэль, якая група гэта дазваляе і што ўсё яшчэ патрабуе адміністратара. Гэтая нататка ператварае наступнае абнаўленне кліента ў планавую працу, а не ў паўдня здагадак.