De console is een voorrecht: waarom ze haar eigen toestemming vraagt
Een console lijkt een scherm, maar het is een schil. En "mag instellingen wijzigen" en "mag een schil openen" zijn twee verschillende machten; de een voor de ander aanzien betekent root uitdelen.
AtlasPVE ·
Dit artikel beantwoordt
- proxmox consoletoestemming
- wat is sys.console in proxmox
- proxmox gebruiker schiltoegang geven
- proxmox rolrechten
- proxmox vnc toegangsrecht
Een console lijkt op een scherm. Je opent hem, er verschijnt een venster, er loopt tekst in. Het voelt als "ik kijk alleen maar".
Maar een console is een schil. En de schil van de server is het hoogste recht dat op die machine bestaat.
Twee gescheiden machten
Instellingen wijzigen. Je kunt doen wat de schil van de bediening toestaat. De grenzen zijn duidelijk, want de bediening trekt ze.
Een schil openen. Je kunt alles doen. Ook wat de bediening zou weigeren en waarvan ze nooit heeft gehoord.
Deze twee machten omvatten elkaar niet. De een hebben vereist de ander niet, en belangrijker: de een verlenen zou niet mogen betekenen dat je de ander verleent.
Het onderscheid is echt en blijkt uit de ingebouwde rollen
Proxmox koppelt de console aan een eigen toestemming, niet aan het algemene "mag wijzigen". Dat dit echt is, zie je in de ingebouwde rollen: de rol van systeembeheerder draagt de controle-, console- en logrechten en bevat geen wijzigingsrecht.
Het is dus een geldige opzet om iemand het recht te geven een console te openen zonder het recht instellingen te wijzigen. En andersom ook.
De veelvoorkomende situatie die dit belangrijk maakt
Proxmox laat eigen rollen toe, en zo'n rol is heel gebruikelijk: een bediener die netwerkinstellingen mag wijzigen maar de schil van de server niet mag bereiken.
Dat is een redelijke wens. Netwerkinstellingen bewerken en op de server elk gewenst commando uitvoeren zijn niet hetzelfde.
Maar redeneert een product "wie mag wijzigen, mag ook de console openen", dan geeft het die bediener onopgemerkt een rootschil. Hij krijgt via het paneel wat hij in Proxmox niet zou krijgen.
Het algemene beginsel dat hieruit volgt
Een rechtenmodel moet de eigen omschrijving van het platform kopiëren, niet parafraseren.
Een poort die zegt "ongeveer hetzelfde" werkt goed op gewone opstellingen en niemand merkt iets. Het gat ontstaat op de dag dat een ongebruikelijke rol wordt gemaakt. En als die dag komt, herinnert niemand zich een jaren eerder geschreven benadering.
Dezelfde lat geldt voor bestandstoegang
Nog een detail, want het wordt vaak gemist: toegang tot het bestandssysteem van de server staat gelijk aan een schil, ook als hij alleen lezen is.
De reden is eenvoudig: wachtwoordbestanden, sleutels en clustergeheimen staan in dat bestandssysteem. Wie met een alleen-lezenrecht bestanden kan lezen, kan al alles te weten komen.
Bestandstoegang kan dus niet met een "kijken"-recht worden verleend; ze vraagt dezelfde lat als een schil.
Wat Atlas doet
In Atlas zijn de console, de schil op afstand en bestandstoegang alleen aan de consoletoestemming gekoppeld. Het wijzigingsrecht op zichzelf opent deze vlakken niet.
Dat was niet altijd zo, en het artikel moet eerlijk eindigen: vroeger accepteerden deze vlakken ook het wijzigingsrecht. Het commentaar in de code zei het juiste, het zei "de tegenhanger is de consoletoestemming", maar de code deed iets anders.
Dat werd gevonden door te meten tegen de eigen omschrijving van Proxmox, en het is hersteld. De meting was duidelijk: Proxmox koppelt de schil alleen aan de consoletoestemming en accepteert het wijzigingsrecht niet.
Ook het werkelijke gewicht hoort te worden genoemd zoals het is: met ingebouwde rollen was het niet te misbruiken, want de enige ingebouwde rol met het wijzigingsrecht heeft ook de consoletoestemming. Het risico zat in eigen rollen, dus in het hierboven beschreven voorbeeld van de netwerkbediener.
De les die eruit volgt geldt ook voor het product zelf: dat een commentaar gelijk heeft, betekent niet dat de code gelijk heeft. Die twee moeten apart gemeten worden.
Bronnen
De eigen documentatie van Proxmox. In het Engels, en die heeft over dit onderwerp het laatste woord.