Erschwingliche Ein-Platinen-Computer und günstige Cloudinstanzen haben den Aufwand erheblich gesenkt, einen Linux-Server zu betreiben. Bei jedem von außen erreichbaren Server sind aber rigorose Sicherheitsvorkehrungen Pflicht, die das System sicher halten und einen Einbruch unwahrscheinlich machen. Das betrifft auch heimische Miniserver, die nur an einer DSL-Leitung hängen und lediglich über eine dynamische Hostadresse erreichbar sind. Auch dort werden ungebetene Besucher anklopfen und Einlass begehren. Dieser Beitrag zeigt erst zwei einfache Methoden, das System per Logauswertung im Auge zu behalten, und geht dann auf das Intrusion Detection System (IDS) Tripwire ein.
Vor Einbrüchen: Das System checken
Ein Linux kann nur so nur sicher sein, wie es seine Konfiguration zulässt. Automatisierte Checks helfen, potenziell unsichere Einstellungen, manipulierte Dateien und typische Konfigurationsfehler aufzuspüren. Je nachdem, welche Serverdienste auf einem System aktiv sind, wählt Lynis die passenden Tests aus seiner Datenbank und liefert eine englischsprachige Auswertung in seiner eigenen Logdatei. Die stets aktuelle Version von Lynis ist auf der Entwickler-Seite bei Github verfügbar und mit einigen Befehlen schnell eingerichtet: Zuerst holt
git clone https://github.com/CISOfy/lynis
die Dateien von Github. Dann geht es mit
cd lynis
in das Verzeichnis, wo der Befehl
sudo chown -R 0:0 *
den Scripts die benötigten Berechtigungen gibt. Der Befehl
sudo ./lynis audit system
führt das Tool mit sudo-Recht aus. Lynis zeigt den Fortschritt und Warnungen im Terminalfenster. Nach dem Abschluss des Testlaufs präsentiert Lynis Empfehlungen zur Absicherung des Systems sowie URLs mit Hintergrundinformationen. Die Warnung zu „systemd-analyze security“ kann man dabei ignorieren, denn dabei geht es nur um optionale Sandbox-Funktionen von Systemd, welche Linux-Distributionen in ihrer Standardkonfiguration nicht nutzen.

Logwatch: Über Angriffe informiert
Eine schnell eingerichtete automatische Auswertung von Logdateien, die Angriffsmuster über das Netzwerk zeigt, liefert das Programm Logwatch. Es erstellt täglich einen Bericht über ungewöhnliche Vorkommnisse auf dem System. Auf Servern mit einem Mailserver wie Postfix/Sendmail/ Exim2 kann es den Bericht auch per Mail an einen User auf dem lokalen System senden, die dieser per „mutt“ abruft – also mit dem Mailprogramm in der Shell. Soll ein Benutzer wie root auf dem System die Zusammenfassung im lokalen Postfach erhalten, so genügt dazu auch ein lokaler Mailserver ohne Verbindung zu einem anderen SMTP-Server im Internet.
Debian, Raspbian, Ubuntu, Fedora, Open Suse und Arch bieten alle das Paket „logwatch“ in ihren Paketquellen. In Debian & Co. wird es mit
sudo apt install logwatch
installiert. Das Kommando sudo logwatch präsentiert im Terminal eine Übersicht zu Ereignissen. Erkannte Scans gegen einen Webserver wie Apache und Nginx sowie SSH-Angriffe sind ganz oben aufgelistet.
Tripwire: Einen Stolperdraht spannen
Auf wichtigen oder exponierten Linux-Servern kann ein IDS (Intrusion Detection System) helfen, unautorisierte Manipulationen an vordefinierten Dateien sofort zu erkennen. Prominente Konfigurationsdateien von Webservern bieten sich dafür an. Das wäre für einen Server der größte anzunehmende Unfall und das System wird danach als Ganzes nicht zu retten sein. Die Gewissheit darüber ist aber enorm wichtig, denn unentdeckte Einbrüche, übernommene Server unter fremder Kontrolle sind ein wahrer Alptraum.

Ein lange bewährtes IDS auf Dateisystemebene ist Tripwire („Stolperdraht“). Es kontrolliert Dateien nach vorher erstellten Checksummen, welche in einer geschützten signierten Datenbank hinterlegt sind. Auf Änderungen hin schlägt Tripwire Alarm – nach einem manuellen Check, automatisch per E-Mail oder auch in einer eigenen Logdatei. Zu beachten ist, dass Tripwire auch bei unbeaufsichtigten Updates anschlägt und die Berichte dann sehr umfangreich werden. Es verlangt daher etwas Übung, die Berichte zu lesen. Tripwire ist dennoch einfach genug, um beispielsweise das Verzeichnis eines Webservers und bestimmte Konfigurationsdateien im Auge zu behalten. Die Installation gelingt in den tonangebenden Distributionen über die Standard-Paketquellen, in Debian/ Ubuntu über dieses Kommando:
sudo apt install tripwire
Die Installation sorgt auch gleich für die erste Initialisierung des Wächters mit einigen Abfragen.
1. Mailversand: Soll der Administrator Mails von Tripwire erhalten, so kann hier Postfix konfiguriert werden. „Nur lokal“ ist die richtige Option für den Mailempfang nur auf dem gleichen System.
2. Passwörter: Die Abfrage nach der Erzeugung der Site-Passphrase für Tripwire und des lokalen Schlüssels beantwortet man mit „Ja“. Ebenso die Frage, ob die Tripwire-Konfigurationsdatei und Richtliniendatei neu erzeugt werden sollen. Gut merken muss man sich die dann vergebenen neuen Passwörter für die Tripwire-Administration, denn sie werden später immer wieder verlangt.
3. Neue Regel definieren: In diesem Beispiel soll Tripwire das Apache-Konfigurationsverzeichnis „/etc/apache2/sites-available“ mitüberwachen. Dazu öffnet man die Datei „/etc/tripwire/twpol.txt“ mit root-Recht oder vorangestelltem „sudo“ in einem Texteditor. Ans Ende der Datei kommen folgende Zeilen:
(
rulename = "Apache2",
severity= $(SIG_HI)
)
{
/etc/apache2/sites-available -> $(SEC_CRIT);
}
Anschließend erzeugt das Kommando
sudo twadmin -m P /etc/tripwire/twpol.txt
die Regel-Datei neu und fragt dazu die zuvor vergebene Site-Passphrase ab.
4. Datenbank erstellen: Nun soll Tripwire die Checksummen der überwachten Dateien erstellen, was der Befehl
sudo tripwire --init
nach der Eingabe des Tripwire-Passworts („local passphrase“) erledigt. Dieser Schritt ist immer nach Änderungen am System und Aktualisierungen notwendig, um neue Checksummen zu erzeugen.
5. Check ausführen: Eine manuelle Überprüfung führt nun der Befehl
sudo tripwire --check
aus. Wurde die Apache-Konfiguration zwischenzeitlich geändert, so moniert die Ausgabe von Tripwire dies im Abschnitt „Rule Name: Apache2“ und listet dort die betroffenen Dateien auf.
Virenscanner: Für Dateiserver wichtig
Für ein stets aktualisiertes Linux-System ist Malware kaum ein Risiko, zumal die Zahl von wirksamen Linux-Viren verschwindend gering ist. Eine reale Gefahr ist aber die versehentliche Verbreitung von Windows-Viren und Würmern in Netzwerken über einen Linux-Dateiserver, dem zwar die Malware nichts ausmacht, der diese aber im Netzwerk verteilt. Linux-Anwender sollten daher verdächtige Downloads, insbesondere ausführbare Windows-Dateien, zum Check auf den von Google betriebenen Onlinedienst Virustotal hochladen und analysieren lassen.
Für automatisierte Scans per Kommandozeile gibt es für Linux den Virenscanner Clam AV . Die Erkennungsraten für Malware liegen bei Tests bei 76 Prozent, damit ist Clam AV im Mittelfeld. Verweise auf Paketquellen für verbreitete Linux-Distributionen liefert die Projektwebseite. Für Nextcloud als Dateiserver gibt es Clam AV übrigens auch als Plug-in.