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 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(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

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...