Aus Linux-Magazin 10/2015

Unix-Systeme härten mit Lynis

© ndoeljindoel, 123RF

Mit der freien Software Lynis lassen Admins ihre Zöglinge zur Sicherheitsinspektion antreten, um im Vorfeld potenzielle Sicherheitsmängel zu entdecken. Das Linux-Magazin schaut dem Inspektor auf die Finger und wirft auch einen Blick auf die kommerzielle Variante.

Auf frisch installierten Systemen laufen häufig Dienste, die der Admin nicht unbedingt braucht und die einem Angreifer unnötig Angriffsfläche bieten. Auch voreingestellte Kernelparameter und Dateizugriffsrechte machen das System unsicher, hinzu kommen die installierten Anwendungen. Der aktuelle Hype um Docker tut ein Übriges und öffnet Angreifern unter Umständen Tür und Tor.

Da kommt ein Werkzeug wie Lynis gerade recht. Es absolviert lokale Sicherheitschecks und erleichtert dem Admin damit das Leben. Der Test betrachtet die Einsatzfähigkeit im täglichen Betrieb.

Fleißaufgabe

Muss der Admin die Sicherheit einzelner Hosts überprüfen, ist das zwangsläufig eine Fleißaufgabe. Mit Scannern wie Open VAS [1] erkennt er noch mit wenig Aufwand, welche Dienste die Hosts nach außen anbieten und ob es für diese bekannte Sicherheitslücken gibt. Ob die Systeme aber lokal die passenden Einstellungen für Dateizugriffsrechte, Benutzerverwaltung oder Kernelparameter verwenden, findet er nur mühsam heraus. Betreut er dann noch viele Systeme mit unterschiedlichen Linux-Distributionen, artet das nicht nur schnell in Arbeit aus, sondern wird auch unübersichtlich.

Auftritt Lynis

Das Leben derart geplagter Admins zu vereinfachen – das schreibt sich Lynis auf die Fahne. Sortiert nach Kategorien stellt die Software viele Tests bereit und lässt sich nach eigenen Vorstellungen erweitern. Lynis stammt von der Firma Ciscofy [2] und steht unter [3] zum Download bereit. Neben der freien Version, die unter der GPL steht, gibt es eine kostenpflichtige Enterprise-Variante [4]. Die sammelt als Reportserver die Daten aller Audits ein und liefert dem Admin damit eine Übersicht über den Gesamtzustand der betreuten Systeme.

Entwickler und Admin Michael Boelen startete das Projekt im Jahr 2007. Als der Niederländer wiederholt Systeme härten musste, schrieb er sich – wie jeder gute Admin – ein Skript, um die Aufgabe zu automatisieren. Die Wahl der Sprache fiel auf die Bash, da er es vermeiden wollte, auf den Zielsystemen jeweils größere Mengen an Werkzeugen installieren zu müssen.

Sein Skript wuchs und wuchs und mit ihm die Zahl der absolvierten Tests. Nach einer zwischenzeitlichen Schaffenspause beschloss Boelen, aus dem Projekt eine Firma zu machen, die auch eine Enterprise-Version anbietet.

Lynis im Einsatz

Die Installation von Lynis ist simpel. Entweder stellt der Paketmanager ein Paket bereit oder der Admin lädt die TGZ-Datei von [5] herunter, entpackt sie und arbeitet direkt in dem Verzeichnis.

Lynis ist ein Bash-Skript, das für die einzelnen Tests auf eine Bibliothek mit weiteren Skripten zugreift. Um gleich loszulegen, ruft der Admin »./lynis –auditor Name des Admin« auf. Dieser Parameter ist der einzig notwendige. Dabei ergibt es Sinn, Lynis mit Rootrechten aufzurufen, nur so kann es wirklich alle relevanten Dateien anschauen. Es läuft auch mit den Rechten unprivilegierter Benutzer, spricht dann aber bei einigen Tests lediglich Warnungen aus.

Nach dem Start präsentiert Lynis zuerst eine Statusseite (Listing 1), die dem Tester anzeigt, welches Betriebssystem die Software testet (inklusive der Distributionsversion), welches Profil sie verwendet und wo sie die Ergebnisse in Form einer Logdatei sowie eines maschinenlesbaren Reports ablegt.

Listing 1

Startseite des Lynis-Laufs

01 [+] Initializing program
02 ------------------------------------
03   - Detecting O                        [ DONE ]
04
05   ---------------------------------------------
06   Program version:           2.1.0
07   Operating system:          Linux
08   Operating system name:     Debian
09   Operating system version:  7.8
10   Kernel version:            3.2.0
11   Hardware platform:         x86_64
12   Hostname:                  debian
13   Auditor:                   Root
14   Profile:                   ./default.prf
15   Log file:                  /var/log/lynis.log
16   Report file:               /var/log/lynis-report.dat
17   Report version:            1.0
18   Plugin directory:          ./plugins
19   ---------------------------------------------
20   - Checking profile file (./default.prf)...
21   - Program update status..         [ UNKNOWN ]

Im Anschluss klopft Lynis das System auf installierte Werkzeuge ab, die es verwenden kann, um seine Tests zu durchlaufen. Ist die Suche abgeschlossen, startet die Testphase. Lynis arbeitet mit verschiedenen Sektionen, die jeweils eine Gruppe von Tests enthalten. Listing 2 zeigt als Beispiel den Bereich »File Systems« . Nach jeder abgefertigten Sektion muss der Admin [Enter] drücken, damit es weitergeht. Er kann dies über die Option »-Q« für Quick auch deaktivieren.

Listing 2

Audit bei der Arbeit

01 [+] File systems
02 ------------------------------------
03   - Checking mount points
04     - Checking /home mount point                         [ SUGGESTION ]
05     - Checking /tmp mount point                          [ SUGGESTION ]
06     - Checking /var mount point                          [ OK ]
07   - Querying FFS/UFS mount points (fstab)                [ NONE ]
08   - Query swap partitions (fstab)                        [ OK ]
09   - Testing swap partitions                              [ OK ]
10   - Checking for old files in /tmp                       [ OK ]
11   - Checking /tmp sticky bit                             [ OK ]
12   - ACL support root file system                         [ ENABLED ]
13   - Checking Locate database                             [ FOUND ]
14
15 [ Press [ENTER] to continue, or [CTRL]+C to stop ]

In der aktuellen Release 2.1 unterstützt Lynis zwei Modi: System und Dockerfile. Wie die Namen vermuten lassen, testet die Software mit »System« das aktuelle System und mit »Dockerfile« eine Konfigurationsdatei für Docker.

Die Tests erstrecken sich auf offene Dienste, auf Dateizugriffsrechte systemkritischer Dateien, auf vorkonfigurierte Kernelparameter, auf installierte Pakete sowie auf Konfigurationen häufig verwendeter Dienste, zu denen populäre Mail- oder Webserver gehören.

Lynis nimmt auch die Authentisierung beim System unter die Lupe. Existiert ein Tool, das die installierte Software gegen aktuelle Verwundbarkeiten checkt – wie etwa »glsa-check« bei Gentoo –, führt Lynis auch dieses aus.

Ergebnisse

Nach dem Lauf des Programms bekommt der Tester auf der Standardausgabe eine Liste von Ergebnissen, die Lynis nach Warnungen gruppiert und nach Vorschlägen, was sich am System verbessern ließe. Die Vorschläge enthalten jeweils einen Link auf die Cisofy-Webseite (etwa https://cisofy.com/controls/AUTH-9262/), wo den Admin detailliertere Informationen erwarten. Die Ergebnisliste schließt mit einer Zusammenfassung der Tests, die auch einen Härtungsgrad ausgibt. Listing 3 zeigt sie für eine Debian-Test-VM.

Listing 3

Zusammenfassung des Tests

01   Lynis security scan details:
02
03   Hardening index : 63 [############        ]
04   Tests performed : 176
05   Plugins enabled : 0
06
07   Quick overview:
08   - Firewall [X] - Malware scanner [X]
09
10   Lynis Modules:
11   - Heuristics Check [NA] - Security Audit [V]
12   - Compliance Tests [X] - Vulnerability Scan [V]
13
14   Files:
15   - Test and debug information      : /var/log/lynis.log
16   - Report data                     : /var/log/lynis-report.dat
17
18 =======================================================================
19   Tip: Disable all tests which are not relevant or are too strict for the
20        purpose of this particular machine. This will remove unwanted suggestions
21        and also boost the hardening index. Each test should be properly analyzed
22        to see if the related risks can be accepted, before disabling the test.
23 =======================================================================

Neben dieser Ausgabe auf der Konsole erzeugt Lynis eine Logdatei in »/var/log/lynis.log« , die die gleichen Informationen enthält, wenn auch ausführlicher. Dort steht dann zum Beispiel, wie Lynis die Tests ausgeführt hat. Zugleich wartet auf den Admin unter »/var/log/lynis-report.dat« ein Report, der maschinenlesbar ist – vor allem für den Lynis Enterprise Server. Diese Datei überschreibt Lynis jedes Mal, und die freien Version liefert auch keinen Parser oder ein vergleichbares Werkzeug, das die Ergebnisse zweier Läufe vergleicht.

Steuerung und Erweiterbarkeit

Welche Tests Lynis übernimmt, steuert eine so genannte Profildatei. Gibt der Administrator über die Option »-P« keine Datei vor, kommt die »default.prf« zum Zuge, die er auch als Vorlage für eigene Dateien heranziehen kann.

Eine Profildatei besteht aus verschiedenen Blöcken. Die zu absolvierenden Tests stecken in der Plugin-Sektion. In den Bereichen »[kernel]« , »[network]« und »[security]« finden sich »sysctl« -Einstellungen [6] für den Kernel, die der Admin prüfen sollte. Schließlich warten dort noch Einstellungen für einzelne Dienste wie Apache oder NTP und spezifische Pfade, für die der Admin die Zugriffsrechte prüfen sollte.

Über die Kommandozeilenoptionen »–tests« beziehungsweise »–tests-category« schränkt der Admin ein, welche Tests Lynis in einem Durchgang durchlaufen soll.

Im Plugins-Ordner hinterlegt er eigene Skripte, die einem bestimmten Muster gehorchen. Lynis liefert eine Beispieldatei mit, die dem Autor eines Plugins eine Idee vermitteln, wie so ein Test auszusehen hat. Leider ist keine vollständige Dokumentation enthalten, die zum Beispiel erklärt, welche Umgebungsvariablen Lynis vererbt. Hier muss der Admin zunächst nach dem Versuch-und-Fehler-Verfahren vorgehen.

Lynis Enterprise

Lynis Enterprise bringt im Vergleich zur freien Version zusätzliche Features mit und hat Client-seitig mehr Tests an Bord. Die Version bedient auch Compliance-Anforderungen wie PCI DSS [7] oder den amerikanischen Hipaa-Standard [8]. Der spannendste Teil der Enterprise-Lösung besteht aber im Portalserver, der die Ergebnisse eines Lynis-Scans einsammelt und optisch gut aufbereitet. Gibt der Admin einem Lynis-Scan die Option »–upload« mit auf den Weg, findet der Upload statt. In der Profildatei muss der Admin zuvor die Lizenz und den Portalserver eintragen.

Abbildung 1: Das Enterprise-Dashboard von Lynis zeigt eine Übersicht der verwalteten Systeme.

Abbildung 1: Das Enterprise-Dashboard von Lynis zeigt eine Übersicht der verwalteten Systeme.

Abbildung 1 zeigt das Dashboard, das eine Übersicht der verwalteten Systeme liefert. Klickt der Anwender auf einen Host, präsentiert der Portalserver die Details etwas übersichtlicher als in der reinen Textversion (Abbildung 2).

Abbildung 2: Der Klick auf einen einzelnen Host im Dashboard liefert Details.

Abbildung 2: Der Klick auf einen einzelnen Host im Dashboard liefert Details.

Den Enterprise-Service realisiert Cisofy Cloud-basiert, das heißt, die Daten liegen bei Cisofy. Die Kosten fallen pro System an, wobei die Firma nach Basic, Plus und Premium unterscheidet, die in der Summe der präsentierten Informationen variieren. Wer die Daten lieber auf einem lokalen Server speichern will, erfährt die Preise nur auf Anfrage.

Die Enterprise-Version bietet auch einen Verbesserungsplan, der praktische Härtungsmaßnahmen vorschlägt, um ein erkanntes Problem zu beheben. Dabei stehen neben Shellskripten auch Templates für diverse Automatisierungswerkzeuge wie Chef, Puppet oder Ansible bereit. Allerdings fand sich im Test nicht für jeden Verbesserungsvorschlag auch ein Template für jedes Tool, Abbildung 3 zeigt dies an einem Beispiel.

Abbildung 3: Lynis macht in der Enterprise-Version auch Verbesserungsvorschläge.

Abbildung 3: Lynis macht in der Enterprise-Version auch Verbesserungsvorschläge.

Fazit

Lynis bietet einen einfachen Weg, um zu überprüfen, ob die eigenen Systeme sichere Einstellungen verwenden. Ob der Admin jedes angezeigte Ergebnis unbedingt behandeln muss, liegt in seinem Ermessen: Mitunter ist es durchaus gewollt, dass sich zum Beispiel »root« mit einem Passwort anmelden darf. Die Erweiterbarkeit ermöglicht es, Lynis an Vorgaben der Konzernsicherheitsabteilung anzupassen, so es denn welche gibt.

Im Interview mit dem Linux-Magazin gab der Cisofy-Gründer Michael Boelen an, dass eine der nächsten Versionen es erlauben soll, die verschiedenen Scans desselben Hosts zu vergleichen. So erkennt der Admin bei regelmäßigen Scans, ob sich die Lage verbessert hat.

Leider hat nur die Enterprise-Version den »Reparieren« -Knopf, der Vorschläge macht, wie sich die empfohlenen Maßnahmen auch umsetzen lassen. Nutzt er die freie Version, braucht der Admin dann entweder Handarbeit oder auch neue Templates im Automatisierungswerkzeug der Wahl. Trotzdem macht Lynis dem Admin das Leben ein wenig leichter.

Infos

  1. Stefan Schwarz, “Noch ganz dicht?”: Linux-Magazin 09/11, S. 80
  2. Cisofy: https://cisofy.com
  3. Lynis: https://cisofy.com/lynis
  4. Lynis Enterprise: https://cisofy.com/lynis-enterprise/
  5. Download: https://cisofy.com/downloads/
  6. Sysctl: https://en.wikipedia.org/wiki/Sysctl
  7. PCI DSS: https://pcisecuritystandards.org
  8. Hipaa: https://www.hipaa.com

Der Autor

Konstantin Agouros arbeitet bei der Xantaro Deutschland als Solutions Architect mit dem Schwerpunkt auf Netzwerk und Cloud Security und Automation. Sein Buch “DNS/DHCP” ist bei Open Source Press erschienen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben