NAS-Speicher mit einer Kapazität von einigen Dutzend Terabyte, wie sie sich für mittelständische Anwender eignen, nimmt die ADMIN-Redaktion in der Ausgabe ... (mehr)

Tools und Grub

Ist Tomoyo Linux einsatzbereit, müssen als Nächstes die Kommandozeilenwerkzeuge her. Die meisten Distributionen führen sie im Paket »tomoyo-tools« , das man nur noch über den Paketmanager einspielen muss.

In Ubuntu taucht es allerdings nicht im Software Center auf, hier hilft die Kommandozeile: »sudo apt-get install tomoyo-tools« .

Abschließend muss man das Tomoyo-Modul noch aktivieren. Dazu gibt man dem Kernel beim Start den Parameter »security=tomoyo« mit auf den Weg – entweder direkt am Bootprompt oder über die Konfiguration des Bootloaders. Kommt noch der alte Grub Legacy zum Einsatz, wie unter Open Suse 12.1, öffnet man die Datei »/boot/grub/menu.lst« (manchmal auch »grub.conf« genannt), sucht in ihr den Abschnitt für den Standard-Start (etwa »title Desktop -- openSUSE 12.1 ...« ) und hängt dort der Zeile »kernel ...« den Parameter »security=tomoyo« an. Bei Grub 2, wie ihn Debian 6 (Squeeze) und Ubuntu einsetzen, stellt man den Parameter in der Datei »/etc/default/grub« an das Ende der Zeile »GRUB_CMDLINE_LINUX_DEFAULT« , also beispielsweise unter Debian:

GRUB_CMDLINE_LINUX_DEFAULT="quiet security=tomoyo"

Anschließend bringt der folgende Befehl die Konfiguration auf den aktuellen Stand:

sudo update-grub

In jedem Fall sollte man einen Blick in das Verzeichnis »/etc« werfen. Dort sollte es ein Unterverzeichnis »tomoyo« mit mehreren Konfigurationsdateien geben. Andernfalls erzeugt sie das Skript »/usr/lib/tomoyo/init_policy« , unter Tomoyo 2.2 bemüht man »/usr/lib/tomoyo_init_policy« .

Auf 64-Bit-Systemen versteckt sich das Skript auch manchmal in »/usr/lib64« . Es eignet sich übrigens auch hervorragend dazu, eine verkorkste Tomoyo-Konfiguration wieder in ihren Ausgangszustand zu versetzen. Dazu löscht man das Verzeichnis »/etc/tomoyo« und wirft dann noch einmal besagtes Skript an.

Nach einem Neustart sollte der Kernel den Einsatz von Tomoyo melden. Prüfen lässt sich dies über den Aufruf »dmesg | grep TOMOYO« (Groß- und Kleinschreibung beachten). Wenn Tomoyo läuft, gibt der Befehl die Versionsnummer aus ( Abbildung 1 ).

Jeden Prozess sperrt Tomoyo Linux in einen eigenen Käfig, die sogenannte Domain. Jede dieser Domains bekommt einen eindeutigen Namen. Er besteht aus dem kompletten Pfadnamen des Programms, das den Prozess erzeugt hat – beim SSH-Daemon also beispielsweise »/usr/sbin/sshd« . Zusätzlich stellt Tomoyo dieser Bezeichnung die kompletten Pfade aller vorhergehenden Programme und Skripte voran, die zu seinem Aufruf geführt haben. Das geht sogar zurück bis zum Kernel, der den speziellen Domainnamen »<kernel>« bekommt. Die Domain des »sshd« -Daemons heißt somit vollständig »<kernel> /sbin/init /usr/sbin/sshd« . Die so entstehenden Bandwurmnamen erscheinen zunächst umständlich. Auf diese Weise kann man jedoch genau kontrollieren, in welcher Situation der SSH-Daemon welche Aktionen ausführen darf. So kann man etwa dem von »init« aufgerufenen »sshd« mehr zutrauen, als einem nachträglich über die Konsole gestarteten Bruder ( Abbildung 2 ).

Abbildung 2: Für jeden gestarteten sshd-Prozess erstellt Tomoyo eine eigene Domain (die Domainnamen der Prozesse sind hier kursiv gesetzt).
Abbildung 3: Die von Tomoyo automatisch erzeugten Domains.

Domains editieren

Alle bislang schon erstellten Domains begutachtet man als Benutzer Root mit dem Policy-Editor:

sudo tomoyo-editpolicy

Er begrüßt seinen Benutzer mit dem Domain Transition Editor. In Abbildung 3 war Tomoyo seit dem Systemstart fleißig und hat 640 Domains erstellt (wie in der obersten Zeile zu lesen). Die graue dritte Zeile zeigt an, dass gerade die »<kernel>« -Domain ausgewählt ist. Darunter folgt dann eine Liste mit allen Domains. Der Übersicht halber klatscht der Policy-Editor nicht einfach alle kompletten Domainnamen auf den Schirm, sondern rückt die einzelnen Prozesse entsprechend ein. Durch die Liste navigiert man mit den Pfeiltasten, [Pos1] , [Ende] sowie Bild auf und ab. Der komplette Domainname eines Prozesses erscheint dann immer in der hellgrau unterlegten Zeile am oberen Rand. Wer jetzt weitere Programme startet und dann mit [r] die Ansicht aktualisiert, kann sogar dabei zusehen, wie Tomoyo für sie weitere Domains anlegt. Einen Eintrag findet man schnell, indem man [f] drückt und den Suchbegriff eintippt. Zur jeweils nächsten Fundstelle springt [n] . [q] beendet den Policy-Editor – und zwar ohne Rückfrage.

Die einzelnen Domains muss Tomoyo Linux unterschiedlich behandeln. Während es einen Webserver genau im Auge behalten und im Fall der Fälle maßregeln muss, kann es hingegen »init« meist blind vertrauen und alle seine Aktionen durchwinken. Man müsste folglich für jede einzelne Domain festlegen, wie sich Tomoyo ihr gegenüber verhalten soll. Da das ziemlich aufwendig wäre, geht Tomoyo einen anderen Weg: Zunächst erstellt der Administrator ein sogenanntes Profil. In ihm notiert er, wie sich Tomoyo verhalten soll. So könnte etwa im Profil stehen, dass Tomoyo Linux grundsätzlich alle Aktionen zuzulassen, sie aber vorsichtshalber protokollieren soll. Nach dem gleichen Prinzip darf der Administrator bis zu 256 weitere Profile erstellen. Abschließend notiert er zu jeder Domain, welches Profil auf sie zutrifft. Möchte die Domain später eine Aktion ausführen, zieht Tomoyo das ihr zugeordnete Profil zurate und verhält sich dann genau wie dort angegeben ( Abbildung 4 veranschaulicht das noch einmal).

Abbildung 4: Das einer Domain zugewiesene Profil entscheidet, was mit erlaubten und verbotenen Aktionen passieren soll.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023