Under Construction

Voraussetzungen (Prereq) sind nicht erfüllt

Die meisten Sicherheitsregeln besitzen Voraussetzungen die erfüllt sein müssen, damit eine Sicherheitseinstellung angewandt werden kann. Es gibt zwei verschiedene Arten von Voraussetzungen: Filesets die installiert sein müssen und Prereq-Skripte deren Ausführung erfolgreich sein muss. Ist mindestens eine der Voraussetzungen für eine Sicherheitsregel nicht erfüllt, wird die Sicherheitsregel nicht auf das System angewendet. Das bedeutet auch, das eine solche Sicherheitsregel nicht in /etc/security/aixpert/core/appliedaixpert.xml hinterlegt wird und damit bei einer Überprüfung des Systems, gegen die angewandten Sicherheitsregeln, diese Sicherheitsregel nicht überprüft wird!

Ist ein notwendiges Fileset für eine Sicherheitsregel nicht installiert, wird eine Meldung ausgegeben:

/etc/security/aixpert # aixpert -f custom/failed.xml
do_action(): rule(hls_minlen): warning.
do_action(): Warning: Prereq failed for does.not.exist
Processedrules=1        Passedrules=0   PrereqFailedrules=1     Failedrules=0   Level=HLS
        Input file=custom/minlen.xml
/etc/security/aixpert #

Im Sicherheits-Profil custom/failed.xml wurde als Abhängigkeit das Fileset does.not.exist angegeben, das natürlich nicht installiert ist. Die Meldung ist dann auch sehr eindeutig. Da die Voraussetzung nicht erfüllt ist, wird die Regel nicht angewendet und auch nicht in /etc/security/aixpert/core/appliedaixpert.xml übernommen.

Wird bei der Anwendung eines Sicherheits-Profils eine Sicherheitseinstellung aufgrund eines nicht erfolgreichen Prereq-Skripts nicht angewendet, sollte unbedingt überprüft werden, warum das Prereq-Skript nicht erfolgreich war. Bei der Anwendung des Sicherheits-Levels low gab es die folgenden Fehler:

/etc/security/aixpert # cat log/FAILEDRULES.log
do_action(): rule(prereqtcb) :Warning: Prereq failed for prereqtcb.
do_action(): rule(lls_binaudit) : failed.
do_action(): rule(lls_crontabperm) : failed.
do_action(): rule(prereqlh) :Warning: Prereq failed for prereqlh.
do_action(): rule(prereqRSSSFull) :Warning: Prereq failed for prereqRSSSFull.
do_action(): rule(prereqRSSSLite) :Warning: Prereq failed for prereqRSSSLite.
/etc/security/aixpert #

Das erste nicht erfolgreiche Prereq-Skript ist prereqtcb. Das Skript überprüft ob TCB (Trusted Computing Base) auf einem System aktiviert ist oder nicht:

# ODMDIR=/usr/lib/objrepos odmget -q attribute=TCB_STATE PdAt

PdAt:
        uniquetype = ""
        attribute = "TCB_STATE"
        deflt = "tcb_disabled"
        values = ""
        width = ""
        type = ""
        generic = ""
        rep = ""
       nls_index = 0
#

Auf unserem System ist TCB nicht aktiviert. Sicherheitseinstellungen die auf TCB basieren machen in diesem Fall keinen Sinn und werden daher auch nicht angewandt und nicht in /etc/security/aixpert/core/appliedaixpert.xml übernommen. Das passt damit zur aktuellen Konfiguration des Systems.

Das zweite nicht erfolgreiche Prereq-Skript ist prereqlh. Dieses überprüft ob eine Login Meldung (login herald) konfiguriert ist:

# lssec -f /etc/security/login.cfg -s default -a herald
default herald="Welcome to aix01\!\n\rlogin:"
#

Dieses Prereq-Skript ist Voraussetzung für die Sicherheitsregel lls_loginherald, welche als Login Meldung den folgenden Text konfiguriert:

Unauthorized use of this system is prohibited.\n\rlogin:

Wurde eine Login Meldung konfiguriert, muss man entscheiden, ob man die schon konfigurierte Meldung behalten möchte oder ob die Sicherheitsregel lls_loginherald die Login Meldung ersetzen soll. Möchte man die konfigurierte Meldung behalten, benötigt man die Sicherheitsregel lls_loginherald nicht und da diese wegen nicht erfüllter Voraussetzung nicht angewendet wird, bleibt die konfigurierte Meldung erhalten. Allerdings erfolgt dann auch keine Überprüfung mehr. Sollte später die Login Meldung manuell entfernt werden, fällt dies eventuell nicht auf, da der AIX Security Expert keine Überprüfung der Login Meldung durchführt.

In unserem Falle ist die Meldung nicht gut, sie lädt zum Einloggen ein und verrät zusätzlich den Hostnamen. Wir entscheiden uns daher das die Sicherheitsregel lls_loginherald in unserer Situation sinnvoll und gewünscht ist. Damit die Regel angewandt werden kann, löschen wir die aktuelle Meldung:

# chsec -f /etc/security/login.cfg -s default -a herald= 
#

Bei einer erneuten Anwendung des Sicherheits-Levels low würde das Prereq-Skript erfolgreich sein und dementsprechend würde auch die davon abhängige Regel lls_loginherald angewendet werden.

Für nicht erfolgreiche Prereq-Skripte sollte also von Fall zu Fall geprüft werden, ob die davon abhängigen Sicherheitsregeln erwünscht sind oder nicht. Falls abhängige Sicherheitsregeln gewollt sind, muss die Konfiguration des Systems so abgeändert werden, das das entsprechende Prereq-Skript erfolgreich ist. Im Beispiel oben wurde dazu die existierende Login Meldung (login herald) gelöscht.