Rkhunter: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Linkai.zhang (Diskussion | Beiträge)
 
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Installation=
=Was ist Rhkunter=
*rkhunter ist ein Linux-Werkzeug, welches nach Rootkits, Hintertüren und möglichen lokalen Exploits sucht.
*Dabei vergleicht es vorhandene Dateien anhand von MD5-hashes mit kompromittierten Dateien
*Es sucht nach von Rootkits angelegten Ordnern, falschen Dateirechten, versteckten Dateien, verdächtigen Strings in Kernelmodulen.
*Es führt eine Reihe weiterer Tests durch.
*rkhunter richtet sich dabei an professionelle Linux-Administratoren, wobei das Programm natürlich jeder benutzen kann.
*Um die Ausgabe verstehen zu können, bedarf es aber mindestens Grundkenntnissen der tieferen Schichten des Betriebssystems.


apt-get install rkhunter


Bei Ubuntu 12.04 wird rkhunter 1.4.+X empfohlen
=Installation=
*apt-get install rkhunter


: http://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.0/
=Erste schritte=
==Nach der Installation von rkhunter==
;Datenbank aufbauen
*Bevor rkhunter verwendet werden kann, muss noch dessen Datenbank aufgebaut werden.
*Durch den Parameter --propupd werden die Hash-Werte (SHA256) für "known-good"-Dateien vom momentanen System erstellt.
*Bei einem Scan werden dann die gefundenen Werte mit diesen Hash-Werten verglichen.
*Es sollte beachtet werden, dass das System zu dem Zeitpunkt der Durchführung des Updates durch --propupd noch nicht kompromittiert war.
*Es empfiehlt sich also, diesen Schritt auf einer neuen Ubuntu-Installation anzuwenden, da somit sichergestellt wird, dass die Hash-Werte auch richtig sind.
==Kommando==
*rkhunter --propupd


dpkg -i rkhunter_1.4.0-1_all.deb
==Das Programm auf den aktuellen Stand zu bringen.==
*rkhunter -c


=Parameter=
= Einige Parameter =
 
{| class="wikitable"
Usage: rkhunter {--check | --unlock | --update | --versioncheck |
! Parameter !! Beschreibung
                --propupd [{filename | directory | package name},...] |
|-
                --list [{tests | {lang | languages} | rootkits | perl | propfiles}] |
| -c || kompletter System-Scan
                --config-check | --version | --help} [options]
|-
 
| --display-logfile || zeigt eine Zusammenfassung des Scans am Ende
Current options are:
|-
        --append-log                  Append to the logfile, do not overwrite
| --skip-keypress || man muss zwischen den einzelnen Scan-Abschnitten nicht mehr Enter drücken
        --bindir <directory>...      Use the specified command directories
|-
    -c, --check                      Check the local system
| --update || führt ein Update der known-bad Hash-Datenbank durch
    -C, --config-check                Check the configuration file(s), then exit
|-
  --cs2, --color-set2                  Use the second color set for output
| --propupd || führt ein Update der known-good Hash-Datenbank durch (nur bei der manuell installierten Version bzw. > 1.3 möglich )
        --configfile <file>          Use the specified configuration file
|}
        --cronjob                    Run as a cron job
                                      (implies -c, --sk and --nocolors options)
        --dbdir <directory>          Use the specified database directory
        --debug                      Debug mode
                                      (Do not use unless asked to do so)
        --disable <test>[,<test>...]  Disable specific tests
                                      (Default is to disable no tests)
        --display-logfile             Display the logfile at the end
        --enable  <test>[,<test>...]  Enable specific tests
                                      (Default is to enable all tests)
        --hash {MD5 | SHA1 | SHA224 | SHA256 | SHA384 | SHA512 |
                NONE | <command>}    Use the specified file hash function
                                      (Default is SHA1, then MD5)
    -h, --help                        Display this help menu, then exit
--lang, --language <language>        Specify the language to use
                                      (Default is English)
        --list [tests | languages |   List the available test names, languages,
                rootkits | perl |    rootkit names, perl module status
                propfiles]            or file properties database, then exit
    -l, --logfile [file]              Write to a logfile
                                      (Default is /var/log/rkhunter.log)
        --noappend-log                Do not append to the logfile, overwrite it
        --nocf                        Do not use the configuration file entries
                                      for disabled tests (only valid with --disable)
        --nocolors                    Use black and white output
        --nolog                      Do not write to a logfile
--nomow, --no-mail-on-warning          Do not send a message if warnings occur
  --ns, --nosummary                  Do not show the summary of check results
--novl, --no-verbose-logging          No verbose logging
        --pkgmgr {RPM | DPKG | BSD | Use the specified package manager to obtain or
                  SOLARIS | NONE}    verify file property values. (Default is NONE)
        --propupd [file | directory | Update the entire file properties database,
                    package]...        or just for the specified entries
    -q, --quiet                      Quiet mode (no output at all)
  --rwo, --report-warnings-only        Show only warning messages
  --sk, --skip-keypress              Don't wait for a keypress after each test
        --summary                    Show the summary of system check results
                                      (This is the default)
        --syslog [facility.priority]  Log the check start and finish times to syslog
                                      (Default level is authpriv.notice)
        --tmpdir <directory>          Use the specified temporary directory
        --unlock                      Unlock (remove) the lock file
        --update                      Check for updates to database files
  --vl, --verbose-logging            Use verbose logging (on by default)
    -V, --version                    Display the version number, then exit
        --versioncheck                Check for latest version of program
    -x, --autox                      Automatically detect if X is in use
    -X, --no-autox                    Do not automatically detect if X is in use


=configfile=
=configfile=
 
*vi /etc/rkhunter.conf  
vi /etc/rkhunter.conf  


  ROTATE_MIRRORS=1
  ROTATE_MIRRORS=1
Zeile 121: Zeile 88:


=cronjob testscript=
=cronjob testscript=
 
*vi /usr/local/sbin/rkhunter.sh
vi /usr/local/sbin/rkhunter.sh


  #!/bin/bash
  #!/bin/bash
  RKHUNTER="/usr/bin/rkhunter -c --skip-keypress --nocolors --rwo"
  RKHUNTER="/usr/bin/rkhunter -c --skip-keypress --nocolors --rwo"
  RKOUT="/tmp/rk.log"
  RKOUT="/tmp/rk.log"
  MAIL="technik@xinux.de"
  MAIL="technik@xxxx.de"
  $RKHUNTER > $RKOUT
  $RKHUNTER > $RKOUT
  if test -s $RKOUT
  if test -s $RKOUT
Zeile 134: Zeile 100:
  fi
  fi


crontab -e
*crontab -e
  0 0 * * 0 /usr/local/sbin/rkhunter.sh
  0 0 * * 0 /usr/local/sbin/rkhunter.sh


=cron.daily deaktivieren=
=cron.daily deaktivieren=
*vi /etc/default/rkhunter
CRON_DAILY_RUN="no"


  vi /etc/default/rkhunter
=Warnungen=
CRON_DAILY_RUN="no"
  Warning: The file 'xxxx' exists on the system, but it is not present in the rkhunter.dat file.
Abhilfe: rkhunter --propupd
 
=Fix=
 
* http://archive.ubuntu.com/ubuntu/pool/universe/r/rkhunter/rkhunter_1.4.0-3_all.deb

Aktuelle Version vom 15. August 2023, 14:34 Uhr

Was ist Rhkunter

  • rkhunter ist ein Linux-Werkzeug, welches nach Rootkits, Hintertüren und möglichen lokalen Exploits sucht.
  • Dabei vergleicht es vorhandene Dateien anhand von MD5-hashes mit kompromittierten Dateien
  • Es sucht nach von Rootkits angelegten Ordnern, falschen Dateirechten, versteckten Dateien, verdächtigen Strings in Kernelmodulen.
  • Es führt eine Reihe weiterer Tests durch.
  • rkhunter richtet sich dabei an professionelle Linux-Administratoren, wobei das Programm natürlich jeder benutzen kann.
  • Um die Ausgabe verstehen zu können, bedarf es aber mindestens Grundkenntnissen der tieferen Schichten des Betriebssystems.


Installation

  • apt-get install rkhunter

Erste schritte

Nach der Installation von rkhunter

Datenbank aufbauen
  • Bevor rkhunter verwendet werden kann, muss noch dessen Datenbank aufgebaut werden.
  • Durch den Parameter --propupd werden die Hash-Werte (SHA256) für "known-good"-Dateien vom momentanen System erstellt.
  • Bei einem Scan werden dann die gefundenen Werte mit diesen Hash-Werten verglichen.
  • Es sollte beachtet werden, dass das System zu dem Zeitpunkt der Durchführung des Updates durch --propupd noch nicht kompromittiert war.
  • Es empfiehlt sich also, diesen Schritt auf einer neuen Ubuntu-Installation anzuwenden, da somit sichergestellt wird, dass die Hash-Werte auch richtig sind.

Kommando

  • rkhunter --propupd

Das Programm auf den aktuellen Stand zu bringen.

  • rkhunter -c

Einige Parameter

Parameter Beschreibung
-c kompletter System-Scan
--display-logfile zeigt eine Zusammenfassung des Scans am Ende
--skip-keypress man muss zwischen den einzelnen Scan-Abschnitten nicht mehr Enter drücken
--update führt ein Update der known-bad Hash-Datenbank durch
--propupd führt ein Update der known-good Hash-Datenbank durch (nur bei der manuell installierten Version bzw. > 1.3 möglich )

configfile

  • vi /etc/rkhunter.conf
ROTATE_MIRRORS=1
UPDATE_MIRRORS=1
MIRRORS_MODE=0
MAIL-ON-WARNING=""
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
TMPDIR=/var/lib/rkhunter/tmp
DBDIR=/var/lib/rkhunter/db
SCRIPTDIR=/usr/share/rkhunter/scripts
UPDATE_LANG=""
LOGFILE=/var/log/rkhunter.log
APPEND_LOG=0
COPY_LOG_ON_ERROR=0
COLOR_SET2=0
AUTO_X_DETECT=1
WHITELISTED_IS_WHITE=0
ALLOW_SSH_ROOT_USER=yes
ALLOW_SSH_PROT_V1=0
ENABLE_TESTS="all"
DISABLE_TESTS="suspscan hidden_procs deleted_files packet_cap_apps apps"
SCRIPTWHITELIST=/bin/egrep
SCRIPTWHITELIST=/bin/fgrep
SCRIPTWHITELIST=/bin/which
SCRIPTWHITELIST=/usr/bin/groups
SCRIPTWHITELIST=/usr/bin/ldd
SCRIPTWHITELIST=/usr/bin/lwp-request
SCRIPTWHITELIST=/usr/sbin/adduser
SCRIPTWHITELIST=/usr/sbin/prelink
SCRIPTWHITELIST=/usr/bin/unhide.rb
IMMUTABLE_SET=0
ALLOWHIDDENDIR="/dev/.udev"
ALLOWHIDDENFILE="/dev/.initramfs"
PHALANX2_DIRTEST=0
ALLOWDEVFILE="/dev/.udev/rules.d/root.rules"
ALLOW_SYSLOG_REMOTE_LOGGING=0
SUSPSCAN_TEMP=/dev/shm
SUSPSCAN_MAXSIZE=10240000
SUSPSCAN_THRESH=200
USE_LOCKING=0
LOCK_TIMEOUT=300
SHOW_LOCK_MSGS=1
DISABLE_UNHIDE=1
INSTALLDIR="/usr"


cronjob testscript

  • vi /usr/local/sbin/rkhunter.sh
#!/bin/bash
RKHUNTER="/usr/bin/rkhunter -c --skip-keypress --nocolors --rwo"
RKOUT="/tmp/rk.log"
MAIL="technik@xxxx.de"
$RKHUNTER > $RKOUT
if test -s $RKOUT
then
cat $RKOUT | mutt -s "$hostname rkhunter" $MAIL
fi
  • crontab -e
0 0 * * 0 /usr/local/sbin/rkhunter.sh

cron.daily deaktivieren

  • vi /etc/default/rkhunter
CRON_DAILY_RUN="no"

Warnungen

Warning: The file 'xxxx' exists on the system, but it is not present in the rkhunter.dat file.
Abhilfe: rkhunter --propupd

Fix