portaudit über alle Jails vom Host System aus

I.MC

Watt soll denn hier hin?
Hi,

ich hatte das seit Jahren am Laufen, dass vom Host-System das Portaudit auch für alle Jails mitgemacht wurde. Jetzt ist die Config aber leider von einem Update überschrieben worden und ich habe keine Lust deswegen ein Backup zurückzuspielen. Das wurde hier irgendwann schon einmal gepostet, ich finde es aber nicht wieder und kriege es auch irgendwie auch die Schnelle nicht selber hin. Kann mir da einer helfen?

Gruß, I.MC
 
Ich finde Jailaudit, bzw. dessen Output, nicht gerade übersichtlich. Da bastel ich mir das lieber selber :-)
 
Kann mir mal jemans erklären, wieso das Script nicht geht? Er geht schon in die richtigen Verzeichnisse, findet aber dann keine Vulerabilities, obwohl welche da sind.

Code:
JAILS="www spielen mail news"
JAIL_BASEDIR=/var/jails


# If there is a global system configuration file, suck it in.
#
if [ -r /etc/defaults/periodic.conf ]; then
    . /etc/defaults/periodic.conf
    source_periodic_confs
fi



rc=0
case "${daily_status_security_portaudit_enable:-YES}" in
        [Nn][Oo])
                ;;
        *)
                echo
                echo "Checking for a current audit database:"
                echo
                /usr/local/sbin/portaudit -X "${daily_status_security_portaudit_expiry:-2}" || rc=$?
                if [ $rc -lt 2 ]; then
                        /usr/local/sbin/portaudit -d
                        echo
                        echo "Checking for packages with security vulnerabilities:"
                        echo
                        echo /usr/local/sbin/portaudit -a |
                                su -fm "${daily_status_security_portaudit_user:-nobody}" || rc=$?
                        echo "Jails:"
                        echo
                        for i in $JAILS
                        do
                                echo
                                echo "Jail: $i"
                                echo
                                echo $JAIL_BASEDIR/$i/var/db/pkg
                                cd $JAIL_BASEDIR/$i/var/db/pkg
                                sh /usr/local/sbin/portaudit *
                        done

                fi
                ;;
esac

exit "$rc"
 
Bei mir geht der Skript.

Nachtrag:
Nur so nebenbei, um zu vermeiden an mehreren stellen »jail-listen« pflegen zu müssen, greif ich diese immer von der rc.conf ab:

Code:
#!/bin/sh

. /etc/rc.conf

for _jail in ${jail_list}
do
    eval _jail_rootdir=\"\$jail_${_jail}_rootdir\"
    if [ -f "/var/run/jail_${_jail}.id" ]
        then _jail_status="ONLINE"
        else _jail_status="OFLINE"
    fi
    printf "%-12s %-20s %-2s\n" \
        $_jail \
        $_jail_rootdir \
        $_jail_status
done
 
Zuletzt bearbeitet von einem Moderator:
So, hatte keine Zeit mehr dafür. Aber jetzt muss das wieder ran. Momentan findet das Script zwar teilweise was, beim manuellen Suchen in jeder Jail jedoch einiges mehr. So richtig tut es also immer noch nicht... komisch.

I.MC
 
Kannst du nicht jeweils vorübergehend die /var/db/pkg aus dem Jail über die /var/db/pkg des Host Systems mounten? Oder verschiebe /var/db/pkg nach /var/db/host.pkg und mache aus /var/db/pkg einen Link, den du je nach Bedarf änderst.
 
Ne, kein Verknüpfung von Host + Jails :-). Ich muss nachher noch mal gucken. Ich weiss, dass es geht. Es lief ja immer. In einem Dump browsen kann man nicht, oder?

Jochen
 
Zuletzt bearbeitet:
So, jetzt habe ich noch einmal geschaut. Also aus irgendwelche Gründen geht es in dem Skript nicht. Wenn ich die selben Befehle auf der Shell als Root direkt ausführe, also cd Verzeichnis && portaudit *, dann findet er sehr wohl alle Fehler in den Jails.

Gruß, I.MC
 
Zuletzt bearbeitet:
Benutzt du eine sh kompatible Shell? Dann ruf das Skript doch einfach mit

# . Skriptname

auf, bis du die Quelle des Problems gefunden hast.
 
Ich habe es gefunden. In dem Skript wird oben in der ersten Zeile die Sheel mit "sh -f" angegeben. ICh habe den Parameter "-f" jetzt nicht nachgeschaut, aber ohne diesen geht es.

Gruß, I.MC
 
Zurück
Oben