Under Construction

Schritt 3: Erster Test-Lauf der Überprüfung

Damit können wir schon einmal einen Test-Lauf starten und eine Überprüfung unter Angabe der gerade erstellten XML-Datei durchführen:

/etc/security/aixpert # aixpert -c -P custom/sshd.xml
Processedrules=1        Passedrules=1   Failedrules=0   Level=TEST
        Input file=custom/sshd.xml
/etc/security/aixpert #

Die Überprüfung war erfolgreich (Passedrules=1). Schauen wir aber den aktuellen Wert von PermitRootLogin auf unserem System an, dann sehen wir das der Test nicht erfolgreich sein sollte:

# grep ^PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes
#

Für den Fall das lediglich eine Überprüfung durchgeführt werden soll, wird ein Kommando mit gesetzter Variable AIXPERT_CHECK_REPORT=1 aufgerufen. Wir erweitern unser Skript entsprechend und fügen eine Überprüfung dieser Variablen ein. Ist die Variable auf „1“ gesetzt, ermitteln wir den Wert von PermitRootLogin und überprüfen diesen:

# cat /etc/security/aixpert/bin/local_chsshdconf
#! /bin/ksh

# Check whether AIXPERT_CHECK_REPORT environment variable is set or not.
report=`echo $AIXPERT_CHECK_REPORT`

if [ "$report" = "1" ]
then
        ret=1

        permit=$( awk '$1 ~ /^PermitRootLogin$/ { print $2; }' /etc/ssh/sshd_config 2>/dev/null | tail -n 1 )
        case "$permit" in
        [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]) ret=0 ;;
        esac

        exit $ret
fi

exit 0

#

Hinweis: In diesem und den folgenden Listings des Skripts haben wir die neu hinzugekommenen oder geänderten Zeilen jeweils mit grün markiert!

Das Kommando überprüft ob eine Überprüfung durchgeführt werden soll („$report“ = „1“), ermittelt in diesem Fall den Wert von PermitRootLogin mit Hilfe von awk und prüft ob einer der Werte No oder False gesetzt ist. Ist No oder False gesetzt, wird das Skript mit „exit 0“ (erfolgreich) beendet, im anderen Falle mit „exit 1“ (nicht erfolgreich).

Wir führen erneut eine Überprüfung durch:

/etc/security/aixpert # aixpert -c -P custom/sshd.xml
Processedrules=1        Passedrules=0   Failedrules=1   Level=TEST
        Input file=custom/sshd.xml
/etc/security/aixpert #

Dieses Mal liefert die Überprüfung das korrekte Resultat: nicht erfolgreich (Failedrules=1)!

Ändert man den Wert von PermitRootLogin in /etc/ssh/sshd_config auf „no“ ab und startet die Überprüfung erneut, ist der Test erfolgreich:

/etc/security/aixpert # aixpert -c -P custom/sshd.xml
Processedrules=1        Passedrules=1   Failedrules=0   Level=TEST
        Input file=custom/sshd.xml
/etc/security/aixpert #

Die Überprüfung liefert jetzt wie erwartet erfolgreich zurück (Passedrules=1)!

Hinweis: Für die nachfolgenden Schritte setzen wir PermitRootLogin wieder auf „yes“, da im Fehlerfalle weitere Meldungen generiert werden sollen.