Jetzt sollte man den Dienst in einem weiteren Terminal einmal neu starten, dann im Domain Transition Editor seine Domain ansteuern und per Eingabetaste in den Domain Policy Editor wechseln. Hier erscheinen jetzt alle Aktionen, die der Prozess bei seinem Start ausgeführt hat (wie in Abbildung 9 ).
Das sind gleichzeitig alle Aktionen, die Tomoyo Linux später dem Daemon erlauben wird. Um die Liste zu komplettieren, sollte man jetzt ein paar typische Aufgaben durchführen – im Fall des SSH-Daemon sich beispielsweise einloggen. Via [r] aktualisiert man die Ansicht des Domain Policy Editors. Die Lernphase ist übrigens eine Funktion von Tomoyo, man kann den Policy Editor folglich auch vorübergehend beenden.
Abschließend kann man natürlich noch eigene Aktionen hinzufügen oder vorhandene streichen. Sind alle Aktionen beisammen, springt man wieder per
[w]
und
[d]
zurück zum Domain Transition Editor und weist dort der Domain das Standard-Profil 3 und somit den Enforcing-Modus zu (mit
[s]
und
[3]
). Tomoyo erlaubt dann nur noch alle vorhin gemerkten Aktionen. Nach außen hin sieht das übrigens niemand, die geblockten Programme liefern nichts zurück. Hat man beispielsweise das Anmelden am SSH-Daemon gesperrt, erhält ein Nutzer, der das trotzdem probiert, nur die lapidare Meldung
»Connection closed by remote host
«
.
Ein Neustart des Systems löscht das Gedächtnis von Tomoyo, alle mühsam angelegten Regeln sind dann futsch. Um das zu verhindern, sollte man die aktuelle Konfiguration speichern. Dazu beendet man den Policy Editor via [q] und zückt den Befehl:
sudo /usr/sbin/tomoyo-savepolicy
Die aktuelle Konfiguration landet damit in den Dateien
»exception_policy.YYYY-MM-DD.hh:mm:ss.conf
«
und
»domain_policy.YYYY-MM-DD.hh:mm:ss.conf
«
im Verzeichnis
»/etc/tomoyo
«
. Tomoyo-Versionen ab 2.4 erstellen zunächst in
»/etc/tomoyo
«
ein Unterverzeichnis mit dem aktuellen Datum und legen dort gleich vier Dateien ab.
Egal, welche Tomoyo-Version man nutzt, die Konfiguration lässt sich mit den Befehlen in Listing 1 wieder laden.
Listing 1
Konfiguration laden
Bei einem erneuten Systemstart passiert das automatisch, man muss die Befehle folglich nicht extra in die Startskripte einbauen. Die Dateien
»domain_policy.conf
«
,
»exception_policy.conf
«
und so weiter sind übrigens symbolische Links auf die jeweils zuletzt von
»tomoyo-savepolicy
«
erstellten
».conf
«
-Dateien. Die sind zudem einfache Textdateien, die man auch bequem per Hand editieren kann. Das ist gerade bei großen Regelwerken komfortabler als der Weg über den Policy Editor. Wer mit dem schon gearbeitet hat, sollte sich in den Konfigurationsdateien sofort zurechtfinden.
Die von Tomoyo geblockten Aktionen kann man sich mit dem
»tomoyo-auditd
«
-Daemon einsammeln lassen (siehe
Kasten "Horch, was kommt von draußen rein"
). Eine schnelle Statistik liefert ab Tomoyo 2.4 der Befehl:
cat /sys/kernel/security/tomoyo/stat
Interessant ist hier vor allem die Zahl neben
»Policy violation in enforcing mode:
«
. Sie gibt an, wie oft Tomoyo im Enforcing-Modus Aktionen blockiert hat (
Abbildung 10
). Die Tomoyo-Versionen 2.2 und 2.3 schreiben hingegen jede Verletzung als Textmeldung ins Syslog – vorausgesetzt im entsprechenden Profil steht
»TOMOYO_VERBOSE=enabled
«
beziehungsweise unter Tomoyo 2.3
»PREFERENCE::permissive={ verbose=yes }
«
.