Installation

Debian:

$ sudo apt-get install tripwire

Konfiguration

Anpassung der Datei /etc/tripwire/twpol.txt:

$ sudo twadmin --create-polfile twpol.txt

Danach kann die Textdatei twpol.txt gelöscht werden und die Datenbank muß initialisiert werden. Dies sollte genau 1x passieren. Muß die Datenbank ein zweites Mal initialisiert werden, kann die Integrität der überprüften Verzeichnisse und Dateien nicht mehr garantiert sein:

$ sudo tripwire --init

Verwendung von Tripwire

Integritäts-Überprüfung

$ sudo tripwire --check

Damit wird überprüft, ob sich an der aktuellen Konfiguration gegenüber der gespeicherten in der Datenbank etwas geändert hat. Auf STDOUT wird ein Report ausgeben, der gleiche Report wird unter /var/lib/tripwire/report abgelegt und kann mit folgenden Befehl ausgegeben werden:

$ sudo twprint --print-report --twrfile radius2.mediaprint.co.at-20030730-141748.twr

Update der Datenbank

Wenn eine Integritäts-Überprüfung Veränderungen gegenüber den Daten in der Datenbank ergeben, muß überprüft werden, ob diese Änderungen an der Datei ein Integritätsproblem darstellen oder nicht. Sind die Änderungen erklärbar muß die Datenbank auf den neuen Stand gebracht werden, da sonst bei der nächsten Integritäts-Überprüfung diese Veränderungen wieder angezeigt werden:

$ sudo tripwire --update --twrfile /var/lib/tripwire/report/???.twr

Das Datenbank-Update kann auch gleich nach einer Integritäts-Überprüfung erfolgen:

$ sudo tripwire --check -I

Dabei wird jetzt gleich die aktuelle Report-Datei für das Update der Datenbank herangezogen.

Update der Policy-Datei

Aus der Policy-Datei muß man wieder die editierbare ASCII-Datei erzeugen:

$ sudo twadmin --print-polfile > /etc/tripwire/twpol.txt

Der Dateiname für die ASCII-Datei ist frei wählbar
Danach kann die Konfigurationsdatei editiert und wieder abgespeichert werden. Jetzt muß die neue Policy-Datei erzeugt werden:

$ sudo tripwire --update-policy /etc/tripwire/twpol.txt

Wenn die Integrität der Dateien nicht vorhanden ist, schlägt das Update der Datenbank, welches ebenfalls durchgeführt wird fehl. Zu diesem Zweck muß der Secure-Modus von »high« (default) auf »low« manipuliert werden:

$ sudo tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt

Verwendung von Tripwire in der Produktion

Über einen Cron-Job kann täglich die Integrität des Systems überprüft werden und eine email mit der entsprechenden Auswertung versandt werden. Gibt es Änderungen gegenüber der Datenbank, müssen diese überprüft und danach entschieden werden, ob den Änderungen nachgegangen werden muß oder die Datenbank auf den letzten Stand gebracht werden muß. Das Update der Datenbank kann entweder interaktiv oder über den entsprechenden Reportbericht (zu findnen unter /var/lib/tripwire/report/) erfolgen:

$ sudo tripwire --check -I
$ sudo tripwire --update --twrfile /var/lib/tripwire/report/radius2.mediaprint.co.at-20030731-093429.twr

Befehlssyntax

$ sudo tripwire --help all

Exit-Codes

Folgende Exit-Codes konnten bestimmt werden:

  • added files: exit-code 1
  • removed files: exit-code 2
  • modified files: exit-code 4

Treten diese Fälle gleichzeitig auf, addieren sich die Exit-Codes:

  • added and modified files: 1 + 4 = 5
  • added and removed and modified files: 1 + 2 + 4 = 7

Der Exit-Code wird meist ausgegeben, wen Tripwire in einem Cronjob verwendet wird.

Problem

Im Syslog /var/log/syslog (in der Standardkonfiguration unter Debian) tauchen immer wieder die Zeilen

error on subcontainer 'ia_addr' insert (-1)
error on subcontainer 'ia_addr' insert (-1)
error on subcontainer 'ia_addr' insert (-1)

auf.

Lösung

Unter Debian in der Datei /etc/default/snmpd den Eintrag

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid'

auf

SNMPDOPTS='-LS6d -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid'

ändern.
Danach den snmpd-daemon neu starten (Befehl gilt für systemd Systeme):

systemctl restart snmpd.service

Update

Ab Debian 9 stretch werden die Konfigurationsdateien unter /etc/default/ nicht mehr eingelesen und man muss die Parameter direkt in der systemd Unitdatei anpassen:

# cp /lib/systemd/system/snmpd.service /etc/systemd/system/snmpd.service
# sed -i "s|-Lsd|-LS6d|" /etc/systemd/system/snmpd.service
# systemctl daemon-reload
# systemctl restart snmpd

Die Datei /etc/systemd/system/snmpd.service sieht dann folgendermaßen aus:

[Unit]
Description=Simple Network Management Protocol (SNMP) Daemon.
After=network.target
ConditionPathExists=/etc/snmp/snmpd.conf

[Service]
Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
Environment="MIBS="
Type=simple
ExecStartPre=/bin/mkdir -p /var/run/agentx
ExecStart=/usr/sbin/snmpd -LS6d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -f
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Quelle: https://wiki.magenbrot.net/linux/linux_distributionen/debian/snmpd_error_on_subcontainer_ia_addr_insert_-1_fixen

Um das tägliche Upate der spamassassin-Datenbank durchzuführen, muss das erst unter Debian aktiviert werden. Die Aktivierung erfolgt in der Datei /etc/default/spamassassin:

# /etc/default/spamassassin
# Duncan Findlay

# WARNING: please read README.spamd before using.
# There may be security risks.

# If you're using systemd (default for jessie), the ENABLED setting is
# not used. Instead, enable spamd by issuing:
# systemctl enable spamassassin.service
# Change to "1" to enable spamd on systems using sysvinit:
ENABLED=1

# Options
# See man spamd for possible options. The -d option is automatically added.

# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.

OPTIONS="--create-prefs --max-children 5 --helper-home-dir"

# Pid file
# Where should spamd write its PID to file? If you use the -u or
# --username option above, this needs to be writable by that user.
# Otherwise, the init script will not be able to shut spamd down.
PIDFILE="/var/run/spamd.pid"

# Set nice level of spamd
#NICE="--nicelevel 15"

# Cronjob
# Set to anything but 0 to enable the cron job to automatically update
# spamassassin's rules on a nightly basis
CRON=1

Wenn der Cronjob mit der Fehlermeldung

error: unable to refresh mirrors file for channel updates.spamassassin.org, using old file
channel: could not find working mirror, channel failed
sa-update failed for unknown reasons

abbricht, dann liegt das an falschen Zugriffsberechtigungen im Verzeichnis /var/lib/spamassassin. Die Korrektur erfolgt mit:

# chown -R debian-spamd:debian-spamd /var/lib/spamassassin/