Package: chkrootkit Version: 0.47-1.1 Followup-For: Bug #286735 I've also done something similar, but I have used sed to change output rather than just deleting it.
In any case, I suggest keeping the "raw" output from chkrootkit in, say, $LOG_DIR/log.today.raw and putting post-filtering results in $LOG_DIR/log.today the diff is then diff -u $LOG_DIR/log.today $LOG_DIR/log.expected (the attached patch hardcodes the sed thing, but following the approach of using a variable seems better) -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16.29-xen Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Versions of packages chkrootkit depends on: ii binutils 2.17-3 The GNU assembler, linker and bina ii debconf [debconf-2.0] 1.5.11etch1 Debian configuration management sy ii libc6 2.3.6.ds1-13etch5 GNU C Library: Shared libraries ii net-tools 1.60-17 The NET-3 networking toolkit ii procps 1:3.2.7-3 /proc file system utilities chkrootkit recommends no packages. -- debconf information: * chkrootkit/run_daily: true * chkrootkit/diff_mode: false * chkrootkit/run_daily_opts: -q
--- /root/keep/etc-_-cron.daily-_-chkrootkit.orig 2006-03-19 23:31:06.000000000 +0000 +++ /etc/cron.daily/chkrootkit 2008-06-07 12:34:41.000000000 +0100 @@ -20,6 +20,35 @@ cat $LOG_DIR/log.new fi mv $LOG_DIR/log.new $LOG_DIR/log.old + elif [ "$DIFF_MODE" = "filtered" ]; then + $CHKROOTKIT $RUN_DAILY_OPTS > $LOG_DIR/log.today.raw 2>&1 + # the sed expression replaces the messages about /sbin/dhclient3 /usr/sbin/dhcpd3 + # with a message that is the same whatever order eth0 and eth1 were scanned + sed -r 's,eth(0|1): PACKET SNIFFER\((/sbin/dhclient3|/usr/sbin/dhcpd3)\[[0-9]+\]\),eth\[0|1\]: PACKET SNIFFER\([dhclient3|dhcpd3]{PID}\),' $LOG_DIR/log.today.raw > $LOG_DIR/log.today + if [ ! -f $LOG_DIR/log.expected ]; then + echo "ERROR: No file $LOG_DIR/log.expected" + echo "This file should contain expected output from chkrootkit" + echo + echo "Today's run produced the following output:" + echo "--- [ BEGIN: cat $LOG_DIR/log.today ] ---" + cat $LOG_DIR/log.today + echo "--- [ END: cat $LOG_DIR/log.today ] ---" + echo + echo "To create this file containing all output from today's run, do (as root)" + echo "# cp -a $LOG_DIR/log.today $LOG_DIR/log.expected" + echo "# (note that unedited output is in $LOG_DIR/log.today.raw)" + elif ! diff -q $LOG_DIR/log.expected $LOG_DIR/log.today > /dev/null 2>&1; then + echo "ERROR: chkrootkit output was not as expected." + echo + echo "The difference is:" + echo "---[ BEGIN: diff -u $LOG_DIR/log.expected $LOG_DIR/log.today ] ---" + diff -u $LOG_DIR/log.expected $LOG_DIR/log.today || true + echo "---[ END: diff -u $LOG_DIR/log.expected $LOG_DIR/log.today ] ---" + echo + echo "To update the expected output, run (as root)" + echo "# cp -a -f $LOG_DIR/log.today $LOG_DIR/log.expected" + echo "# (note that unedited output is in $LOG_DIR/log.today.raw)" + fi else $CHKROOTKIT $RUN_DAILY_OPTS fi