Aufmacher

Desktop-Sicherheit mit Sudo und Policykit

Häppchenweise

Das neue Sicherheitsmodell Policykit ermöglicht unter Ubuntu Hardy Heron eine bessere Feinabstimmung sicherheitsrelevanter Aufgaben, als das bislang mit Sudo möglich war.

Bei Desktop-Systemen gestaltet sich eine lupenreine Trennung zwischen Systemverwalter und Anwender schon deshalb schwierig, weil letzterer am heimischen PC meist beide Hüte auf hat. Da immer mehr Anwendungen tief in die Systemkonfiguration eingreifen, ist ein administrativer Zugriff aufs System beinahe unabdingbar. So erfordert schon das Einbinden eines Laufwerks den privilegierten Zugriff auf bestimmte Funktionen. Auch andere Geräte, wie etwa DVB-T-Empfänger, Bluetooth oder WLAN erfordern sowohl beim Einrichten als auch beim Konfigurieren administrative Rechte. In diesen Fällen bieten Sudo und Policykit geeignete Möglichkeiten, dem Anwender die notwendigen Legitimationen zu erteilen, ohne das System durch eskalierende Berechtigungen zu gefährden.

Sudo

Der konsequente Einsatz von Sudo sorgt unter Ubuntu dafür, dass der Anwender nur dann privilegierte Rechte in Anspruch nimmt, wenn er sie auch benötigt. Ubuntu richtet zwar das obligatorische Root-Konto ein, allerdings ohne ein Passwort dafür zu setzen. Trotzdem schränkt dieser Umstand den Anwender bei der Administration des Systems kaum ein, da er nur in seltenen Fällen eine vollständige Root-Umgebung benötigt.

Sämtliche Aufgaben, die einen privilegierten Zugriff erfordern, erledigt der Anwender mit dem vorangestellten Kommando sudo. Um grafische Programme mit administrativen Rechten zu laden, dient unter Gnome das Hilfsprogramm gksu und unter KDE kdesu. Möchten Sie Anwendungen mit privilegierten Rechten per Mausklick ausführen, setzen Sie diese Hilfsprogramme auch in Schnellstartverknüpfungen und Desktop-Links ein. So lädt der Aufruf gksu gedit nach Eingabe des Benutzerpassworts den Editor Gedit mit privilegierten Rechten.

Beim Aufruf schlägt Sudo in der Konfiguration /etc/sudoer nach, welcher Benutzer welche Ausführberechtigungen besitzt. Diese Datei darf nur mit mit dem Programm Visudo bearbeitet werden. Die wichtigsten Einträge in der Grundeinstellung sind:

root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

Sie erlauben dem Benutzer root und den Mitgliedern der Gruppe admin das Ausführen jedes Befehls auf dem System. Warum der Aufwand, wenn der Benutzer in der Gruppe admin ohnehin alles darf?

Auch wenn der Benutzer damit alle Kompetenzen besitzt, ist der Unterschied zwischen root und sudo sicherheitstechnisch gewaltig. So protokolliert Sudo sämtliche Aktionen in der Datei /var/log/auth.log. Programme, die im Benutzerkontext starten, sind entsprechend nicht in der Lage, unbemerkt Veränderungen am System vornehmen. Des weiteren erfordert jede Sudo-Sitzung die Eingabe des Passworts. Um nicht die ganze Macht zu übertragen, erlaubt Sudo darüber hinaus das feinere Einstellen der Berechtigungen. Folgender Eintrag in die Datei /var/log/auth.log legitimiert beispielsweise den Benutzer fred lediglich dazu, die Datei /var/log/auth.log mit dem Programm Less zu lesen:

fred    ALL=/usr/bin/less /var/log/auth.log

Der jeweiligen Anwendung spricht Sudo dabei vollständig das Vertrauen aus. Durch die Einschränkung auf bestimmte Parameter könnte man die Funktionen des Programms, wie zum Beispiel mit vim -R, auf das Lesen einschränken. Um den Zugriff auf Funktionen komplexerer Anwendungen und Funktionen zu delegieren, eignet sich Sudo allerdings nicht: Hier kommt Policykit ins Spiel.

Policykit

Das Sicherheitssystem Policykit wurde erstmals in Ubuntu 8.04 eingeführt und erlaubt die Feinabstimmung der Benutzerrechte für bestimmte Systemkonfigurationen und Programme. Es handelt sich dabei um eine XML-Skript-Sammlung, die Sie im Pfad /usr/share/Policykit/policy finden. Jedem Aktionspfad der GUI ist eine entsprechende XML-Datei zugeordnet, beispielsweise org.freedesktop.hal.storage.policy.

Die Laufzeitbibliothek Libpolkit bildet das Rückgrat des Policykit, mit deren Hilfe es die Autorisierung prüft und erteilt. Versucht zum Beispiel eine Anwendung ein Laufwerk zu mounten, wird die Anfrage an den Hardware Abstraction Layer (HAL) weitergeleitet (Abbildung 1, Punkt 1), der die Autorisierung über Libpolkit abwickelt (Punkt 2). Dabei kann die Antwort nicht nur "Ja" oder "Nein" lauten, sondern auch "Ja, falls sich die Anwendung authentisieren kann" (3). Ist eine Authentisierung notwendig, kommt der Authentisierungsagent (4) ins Spiel. Er fragt das Kennwort ab und gibt das Ergebnis einer erfolgreichen Authentisierung an die Autorisierungsdatenbank weiter (5). Bei der erneuten Autorisierungsprüfung (6) findet Libpolkit dann den Authentisierungsnachweis und gibt den Zugriff frei (7).

Abbildung 1: Die schematische Darstellung zeigt das Zusammenspiel der verschiedenen Komponenten bei der Rechtevergabe und Authentisierung mit Policykit.

Policykit unterscheidet zwei Bereiche: Die Benutzerumgebung und den Systemkontext. Der Systemkontext umfasst sämtliche Funktionen, die erweiterte Berechtigungen erfordern. Dazu zählen die Konfiguration das System sowie für Hardware- und Netzwerkkomponenten. Die Benutzerumgebung enthält Anwendungen, die auf die Systemkomponenten zugreifen. Der System-Message-Bus zeichnet als Vermittler für den Informationsaustausch zwischen den beiden Welten verantwortlich. Damit proprietäre Protokolle diese Kontrolle nicht unterwandern, stellt HAL ein einheitliches Protokoll zur Verfügung. So ist das Einbinden von Hardware wesentlich einfacher, da die Anwendungen sich auf eine einheitliche Schnittstelle konzentrieren.

Policykit verwaltet derzeit 45 Aktionen. Das relativ abstrakte Konzept beschreibt eine Aktion als das, was ein Subjekt (Anwender, Prozess) mit einem Objekt (Gerät, Konfiguration) tun darf. Im Gegensatz zu Sudo, das die Ausführung sämtlicher sämtlicher Programme kontrollieren kann, ist das Policykit auf die Integration in die jeweilige Anwendungen angewiesen. Eine ausführliche Anleitung finden Sie im Policykit-Handbuch [1]. So klappt zum Beispiel beim gnome-clockapplet die Umstellung der Zeitzone, doch die Änderung der Systemzeit funktioniert noch nicht, obwohl die Einstellungen im Policykit das vermuten lassen. Zumindest sind einige wichtige Funktionsaufrufe im Policykit vorbereitet und zur Verwendung vorgesehen

Insgesamt ist das noch nicht der große Rundumschlag, in der Praxis bietet die vorhandene Integration jedoch schon eine gewisse Hilfe: Mit der Kontrolle des Powermanagements, der Datenträger, und einigen Multimediageräten deckten die Entwickler zumindest die häufigsten Problemfälle ab.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Admin-Rechte gezielt vergeben mit PolicyKit
    Wer unter Linux vor verschlossenen Türen steht, greift meist mit su oder sudo zu Root-Rechten. Wesentlich feinfühliger und flexibler lassen sich die Rechte mit PolicyKit erteilen.
  • Zugriffskontrolle
    Unter Linux gibt es den Systemadministrator, der alles darf, und den gemeinen Nutzer, der praktisch nichts darf. Doch für die tägliche Arbeit ist es manchmal nötig als Root zu arbeiten: Das neue KAuth sorgt für die nötigen Berechtigungen und berücksichtigt dabei auch Windows und Mac OS X.
Kommentare

Infos zur Publikation

LU 05/2018: GEODATEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

added to access control list
Ingrid Kroll, 27.03.2018 07:59, 10 Antworten
Hallo allerseits, bin einfache Nutzerin und absolut Linux-unwissend............ Beim ganz norm...
Passwortsicherheit
Joe Cole, 15.03.2018 15:15, 2 Antworten
Ich bin derzeit selbständig und meine Existenz hängt am meinem Unternehmen. Wahrscheinlich verfol...
Brother drucker einrichten.
Achim Zerrer, 13.03.2018 11:26, 1 Antworten
Da mein Rechner abgestürzt war, musste ich das Betriebssystem neu einrichten. Jetzt hänge ich wi...
Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 2 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...