Under Construction

Funktionen eines aixpert Skripts

Ein aixpert Skript muss mehrere benötigte Funktionen unterstützen. Jedes aixpert Skript muss mindestens die Überprüfung und das Setzen von Sicherheitseinstellungen implementieren. Soll ein Undo möglich sein, muss das Skript einen Undo-Eintrag in der XML-Datei /etc/security/aixpert/core/undo.xml erzeugen. Das Skript muss dann entweder einen Undo selber durchführen können, ein anderes Skript für den Undo verwenden, oder es muss ein Skript welches einen Undo durchführt generieren.

Welche dieser Funktionen vom Skript durchgeführt werden sollen, wird beim Aufruf des Skripts durch den AIX Security Expert (aixpert) über einige Variablen bestimmt, die über das Environment an das Skript übergeben werden.

Überprüfung von Sicherheitseinstellungen („aixpert -c“)

Bei einer Überprüfung der Sicherheitseinstellungen werden aixpert Skripte wie folgt aufgerufen:

AIXPERT_CHECK_REPORT=1 TMPREPT=/tmp/report.txt /etc/security/aixpert/bin/<SCRIPT> [<arg> …]

Die beiden Variablen AIXPERT_CHECK_REPORT und TMPREPT werden von aixpert gesetzt und über das Environment an das Skript übergeben. Kommandozeilen Argumente kommen aus dem entsprechenden AIXPertEntry und hängen vom konkreten Skript ab.

Wird der Check mit der zusätzlichen Option „-r“ (Basic Compliance Report) gestartet, wird zusätzlich die Variable BASE_REPT mit Wert „1“ übergeben:

AIXPERT_CHECK_REPORT=1 BASE_REPT=1 TMPREPT=/tmp/report.txt /etc/security/aixpert/bin/<SCRIPT> [<arg> …]

Wird der Check mit der zusätzlichen Option „-R“ (Description Report) gestartet, wird zusätzlich die Variable DETAILED_REPT mit Wert „1“ übergeben:

AIXPERT_CHECK_REPORT=1 DETAILED_REPT=1 TMPREPT=/tmp/report.txt /etc/security/aixpert/bin/<SCRIPT> [<arg> …]

Ein zu implementierendes aixpert Skript kann also anhand dieser Variablen erkennen, ob eine Überprüfung stattfinden soll, sowie die Art des Reports (BASE_REPT oder DETAILED_REPT).

Setzen von Sicherheitseinstellungen (“aixpert -l“ oder „aixpert -f“)

Beim Setzen von Sicherheitseinstellungen muss man zwei mögliche Fälle unterscheiden:

    1. Es werden nur die Sicherheitseinstellungen gesetzt, ein Undo ist nicht vorgesehen und auch nicht implementiert.
    2. Neben dem Setzen der Sicherheitseinstellungen wird auch eine Undo-Möglichkeit eingerichtet. Das muss dann im Skript implementiert sein.

Da der AIX Security Expert selber nicht weiß ob ein Skript die Undo-Funktionalität vorsieht und implementiert, ist der Aufruf des Skriptes in beiden Fällen gleich. Für einen Undo muss das Skript einen Eintrag in /etc/security/aixpert/core/undo.xml vornehmen. Der Eintrag muss die folgende Form haben:

        <AIXPertEntry name="hls_minlen_0549FBA5">
                <AIXPertRuleType type="Undo"/>
                <AIXPertDescription catalog="aixpert.cat" setNum="101" msgNum="24">Undo action for:  "Minimum length for password: Specifies the minimum length of a password to 8."</AIXPertDescription>
                <AIXPertPrereqList/>
                <AIXPertCommand>/etc/security/aixpert/bin/chusrattr</AIXPertCommand>
                <AIXPertArgs>minlen=8 ALL</AIXPertArgs>
                <AIXPertGroup>Password policy rules</AIXPertGroup>
        </AIXPertEntry>

Hinweis: Dies ist ein Beispieleintrag der Regel hls_minlen.

Der Eintrag benötigt einen eindeutigen Namen (name Attribut in AIXPertEntry). Der Name wird vom AIX Security Expert generiert, indem der Regelname der Sicherheitseinstellung mit einer eindeutigen 8-stelligen hexadezimalen ID erweitert wird. Dieser Name wird über die Variable AIXPERT_NAME an das Skript übergeben. Der Typ (AIXPertRuleType) der Regel ist immer „Undo“. Die Beschreibung (AIXPertDescription) ist im wesentlichen die Beschreibung aus der Regel für die Sicherheitseinstellung. Der Text der Beschreibung wird über die Variable AIXPERT_DESC übergeben. Das Skript stellt dann noch die Zeichenkette „Undo action for: „ voran. Catalog, setNum und msgNum werden über die Variable AIXPERT_DESC_CATMSGINFO übergeben. Über das zu verwendende Kommando und Argumente muss das Skript entscheiden. Auch die Gruppe (AIXPertGroup) wird vom Skript definiert und nicht über Variablen übergeben. Insgesamt wird das Skript dann wie folgt aufgerufen:

AIXPERT_DESC_CATMSGINFO=" catalog=\"aixpert.cat\" setNum=\"101\" msgNum=\"24\"" AIXPERT_DESC="description from appliedaixpert.xml" AIXPERT_NAME="rulename_C1A84345" /etc/security/aixpert/bin/<SCRIPT> [<arg> …]

Wird kein Undo implementiert, können diese Variablen ganz einfach ignoriert werden.

Soll ein Undo implementiert werden, wird mit Hilfe dieser Variablen ein XML-Eintrag in /etc/security/aixpert/core/undo.xml generiert.

Undo von Sicherheitseinstellungen (“aixpert -u“)

Für den Fall das das Skript einen Undo selber durchführt, wird das Skript mit den Argumenten aufgerufen, die beim Generieren des Undo-Eintrags in /etc/security/aixpert/core/undo.xml angegeben wurden. Es werden keine Variablen über das Environment übergeben:

/etc/security/aixpert/bin/<SCRIPT> [<arg> …]

Bei einem Undo-Lauf sollte das Skript natürlich keinen neuen Undo-Eintrag generieren!