[[Vorlage(Getestet, intrepid, hardy, feisty)]] {{{#!vorlage Wissen [:Pakete_installieren:Pakete installieren] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Editor benutzen] [:Packprogramme:Archive entpacken] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [http://rkhunter.sourceforge.net/ rkhunter] {en} (Rootkit Hunter) ist ein Linux-Tool, welches nach [wikipedia:Rootkit:Rootkits], [wikipedia:Backdoor:Hintertüren] und möglichen lokalen [wikipedia:Exploit:Exploits] sucht. Dabei vergleicht es vorhandene Dateien anhand von [wikipedia:Message-Digest_Algorithm_5:MD5]-hashes mit kompromittierten Dateien, sucht nach von Rootkits angelegten Ordnern, falschen Dateirechten, versteckten Dateien, verdächtigen Strings in Kernelmodulen und führt eine Reihe weiterer Tests durch. rkhunter richtet sich dabei an professionelle Linuxadmins, wobei das Programm natürlich jeder benutzen darf. Um die Ausgabe verstehen zu können bedarf es aber mindestens Grundkenntnissen der tieferen Schichten des Betriebssystems. = Installation = == Aus den Paketquellen == Das Programm kann aus den Paketquellen von Ubuntu über das Paket * '''rkhunter''' (''universe'', [2]) installiert [1] werden. Danach sollte ein mandatorisches Update der ''known-bad'' Hash-Datenbank von rkhunter durchgeführt werden. Dies geht von der Konsole [3] aus durch den Befehl {{{#!vorlage Befehl sudo rkhunter --update }}} {{{#!vorlage Hinweis rkhunter aus den Ubuntu Paketquellen (Version 1.2.9-3) ist leider nicht kompatibel zu Ubuntu. Das bedeutet, dass rkhunter sämtliche Rootkit-Tests durchführen kann mit Ausnahme des "known-good"-Test, also das Überprüfen, ob eine vorhandene Dateiversion den gleichen Hash besitzt wie nach einer sauberen Ubuntu-Installation. Dieser Test dient dazu unbekannte Rootkits daran zu erkennen, ob sie Dateien verändert haben. Bekannte Rootkits kann die rkhunter-Version aus den Paketquellen jedoch auch unter Ubuntu erkennen, genauso wie alle übrigen Tests durchführen (mit Ausnahme des genannten "known-good"-Tests). Auch das separat erhältliche Tool hashupd.sh kann unter Ubuntu die Hash-Datenbank nicht selbstständig anlegen. rkhunter 1.3 fixt jedoch dieses Problem, ist allerdings noch nicht in den Paketquellen erhältlich und muss deswegen manuell installiert werden (siehe unten). Aktualisierung vom 18. November 2008: In den Paketquellen ist die Version 1.3.0-3 enthalten, somit dürfte die manuelle Installation gegenstandslos sein. Das Programm funktioniert m.E. einwandfrei, }}} == Manuelle Installation == Zuerst lädt man sich das aktuelle rkhunter-Paket von [http://sourceforge.net/project/showfiles.php?group_id=155034&package_id=172567 Sourceforge] {en} herunter und entpackt [5] es in ein Verzeichnis seiner Wahl. Danach öffnet man zuerst mit einem Editor [4] die Datei '''installer.sh''' und ändert die erste Zeile in {{{#!vorlage Befehl #!/bin/bash }}} um. Jetzt installiert man rkhunter vom Terminal [6] aus mit: {{{#!vorlage Befehl sudo ./installer.sh --layout /usr/local --install }}} Um nun die Probleme der Version aus den Paketquellen zu beheben, bringt man rkhunter 1.3 mit einem zusätzlichen Parameter auf den aktuellen Stand: {{{#!vorlage Befehl sudo rkhunter --propupd --update }}} {{{#!vorlage Hinweis Durch den Parameter ``--propupd`` werden die Hash-Werte für "known-good"-Dateien vom momentanen System erstellt. Bei einem Scan werden dann die gefundenen Werte mit diesen Hash-Werten verglichen. Dabei gilt zu beachten, dass dies nur funktioniert, wenn 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. }}} = Benutzung = Jetzt kann man das komplette System mit folgendem Befehl scannen: {{{#!vorlage Befehl sudo rkhunter -c }}} ||<-2 cellstyle="text-align: center; background-color: #F9EAAF;"> '''Einige Parameter'''|| || ``-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 )|| Eine vollständige Liste der möglichen Parameter findet man in den [:man:manpages] von rkhunter. {{{#!vorlage Warnung Alleine durch die Benutzung von '''rkhunter''' kann nicht garantiert werden, dass sich nicht doch ein Rootkit auf dem System befindet. Die Anwendung von nur einem einzigen Tool ist nicht sehr effektiv, da ein Autor sein Rootkit dagegen immun gemacht haben könnte. Es sollten immer noch weitere Tests durchgeführt werden, wie zum Beispiel mit [:chkrootkit:] bzw. andere Maßnahmen vorgenommen werden. Desweiteren sollte rkhunter, um dessen Integrität und damit die Verlässlichkeit sicherzustellen, immer von einem 100%ig unkompromitierten System ausgeführt werden, wie zB einer Live-CD. }}} = Automatische Tests per Cron-Job = gerade bei Servern ist es nicht immer möglich, von einer Live-CD zu booten und dann nach Rootkits zu fanden. Hierfür haben die Programmierer die Möglichkeit geschaffen rkhunter als Cron-Job auszuführen. Bevor man rkhunter als Cron-Job einplant, sollte man sich jedoch sicher sein, das Programm auf einem nicht kompromittierten System zu installieren, um die entsprechenden MD5-Fingerprints anzulegen. (zum Beispiel nach einer Neuinstallation) Nach der Installation von rkhunter sollte man zuerst {{{#!vorlage Befehl sudo rkhunter --propupd --update }}} ausführen um das Programm auf den aktuellen Stand zu bringen. {{{#!vorlage Befehl sudo rkhunter -c }}} startet dann einen umfassenden interaktiven Prüflauf. Hierbei kann es durchaus zu Fehlalarmen kommen. Diese überprüft man in der Logdatei /var/log/rkhunter.log und passt gegebenenfalls die Konfigurationsdatei /etc/rkhunter.conf an. Zum Beispiel um inetd Dienste wie „swat“ hinzuzufügen. Läuft alles sauber, d.h. man bekommt keine Fehlalarme mehr, kann man rkhunter als Cron-Job einplanen. Ich habe das direkt in /etc/crontab gemacht, mit der Zeile {{{#!vorlage Befehl 10 3 * * * root /usr/bin/rkhunter -c --cronjob }}} Man kann natürlich auch das mitgelieferte Script in /etc/cron.daily benutzen. Ach ja, eine weitere Anpassung der Konfigurationsdatei /etc/rkhunter.conf benachrichtigt bei Warnungen komfortabel per Email. Außerdem ist es sinnvoll einen weiteren Scanner wie [:chkrootkit:] regelmäßig einzuplanen. ---- # tag: Sicherheit