VPN наредба ради као ваш корисник, лозинка се не појављује и тунел се подиже. Тај след делује као операција без привилегија, а обично није. Мрежне промене изводи засебан сервис, а занимљиво питање је шта ће тај сервис учинити за позиваоца кога није проверио. Бројање захтева за лозинку не говори вам ништа о тој граници.

Интерфејс, механизам и провера

Интерфејс прихвата захтеве: повежи се, прекини везу, изабери профил. Механизам поседује мрежне операције: стварање интерфејса, промену рута, примену филтера. Провера ауторизације одлучује сме ли овај позивалац да затражи ову радњу. Та три могу бити распоређена на извршну датотеку, помоћника и системски сервис, а корисник види само прво.

Улоге могу да живе у једној извршној датотеци, у два процеса или у клијенту и системском сервису, а наредба коју корисник види ретко открива која је. Икона у траци и системски демон могу да изгледају као једна апликација док раде са веома различитим овлашћењима. Привилегија у време инсталације и привилегија у време захтева такође су различите ствари. Инсталатер који је радио као root може да остави сервис који слуша касније захтеве, дуго након што је управник пакета завршио. Тај сервис, а не наредба коју сте откуцали, поседује овлашћења.

Делегирање је уобичајен дизајн

Делегирање мрежног рада са привилегијама на сервис је разумна архитектура. Оно обичне апликације држи без привилегија и централизује операције које траже пажњу. Дизајн се исплати само кад сервис такође провери ко пита и за шта. Без те провере то су само шира врата.

NetworkManager је конкретан пример за Linux. Његов водич за конфигурацију објашњава како PolicyKit ауторизује захтеве који нису од root у подразумеваном подешавању. То показује делегирану ауторизацију у стварном производу. То не доказује да сваки комерцијални клијент користи NetworkManager, и не описује путању до сокета ни политику било ког конкретног добављача.

Образац је делегирање са политиком иза себе. Пример је једна имплементација тог обрасца, не универзална.

Читајте границу, не захтев

Пронађите сервис, власника његове конфигурације и локални интерфејс који користи предњи део. Затим питајте који корисници смеју да траже које операције. Могућност да подигнете и спустите један сачувани профил није иста дозвола као учитавање конфигурације коју оператер никада није прегледао. Разлика је цело безбедносно питање.

Почните са управником сервиса и са сопственим погледом клијента на његове дозволе. Наредбе испод показују да ли демон ради, шта позивалац сме да затражи од њега и шта демон излаже у својој радној путањи.

systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager

Питајте и на шта операција утиче. Ставка менија која изгледа лично може да промени руте и DNS за цело рачунало, што значи да може да поремети сесије других корисника. Обим утицаја припада истом прегледу као и дозвола, и обично одлучује да ли је сервису потребна ужа улога.

Поправите дозволе на подржани начин

Учинити заштићени контролни сокет доступним за писање свима, или додати налог широкој административној групи, уклања грешку дозволе и ствара већу. Грешка је била једино што вам је говорило да та граница постоји. Користите документовани процес чланства или ауторизације, укључујући освежавање сесије које захтева. Чланство у групи често важи само за нове сесије пријаве, због чега промена може изгледати да ништа не ради до следеће пријаве.

Ако производ излаже ужу улогу за операцију, дајте јој предност пред свеобухватном дозволом. Запишите изабрану улогу и њеног власника поред назива сервиса.

Како изгледа добра подела

Обичне апликације остају без привилегија, сервис изводи само подешавање за које је направљен, и сваки позивалац се проверава према политици коју неко поседује. То је одбрањив дизајн. Он је и ревизијски проверив, јер политика има име уз себе. Све веће од тога заслужује писани изузетак, а не тиху промену дозволе.

Режим неуспеха је сервис који извршава сваки захтев сваког локалног корисника јер је интерфејс удобан. Са корисничке стране изгледа исто и носи много већа овлашћења. Тестирајте један одбијени захтев, не само успешни. Одбијање које долази из политике доказ је да политика постоји.

Повезани чланци