Durchführen von Sicherheitsüberprüfungen mit Lynis unter Ubuntu 16.04

Einführung

Lynis ist eine hostbasierte Open-Source-Sicherheitsüberwachungsanwendung, mit der das Sicherheitsprofil und die Sicherheitslage von Linux und anderen UNIX-ähnlichen Betriebssystemen bewertet werden können.

In diesem Tutorial installieren Sie Lynis auf und verwenden es, um eine Sicherheitsüberprüfung Ihres Ubuntu 16.04-Servers durchzuführen. Anschließend untersuchen Sie die Ergebnisse eines Beispielaudits und konfigurieren Lynis so, dass Tests übersprungen werden, die für Ihre Anforderungen nicht relevant sind.

Lynis führt keine automatische Systemhärtung durch. Es enthält jedoch Vorschläge, die Ihnen zeigen, wie Sie das System selbst härten können. Daher ist es hilfreich, wenn Sie über grundlegende Kenntnisse der Linux-Systemsicherheit verfügen. Sie sollten auch mit den Diensten vertraut sein, die auf dem zu überwachenden Computer ausgeführt werden, z. B. Webserver, Datenbanken und andere Dienste, die Lynis möglicherweise standardmäßig überprüft. Auf diese Weise können Sie Ergebnisse identifizieren, die Sie ignorieren können.

Voraussetzungen

Um diesen Artikel zu vervollständigen, benötigen Sie:

Schritt 1 - Installieren von Lynis auf Ihrem Server

Es gibt verschiedene Möglichkeiten, Lynis zu installieren. Sie können es aus dem Quellcode kompilieren, die Binärdatei herunterladen und an einen geeigneten Speicherort auf dem System kopieren oder mit dem Paket-Manager installieren. Die Verwendung des Paket-Managers ist die einfachste Möglichkeit, Lynis zu installieren und auf dem neuesten Stand zu halten.

Unter Ubuntu 16.04 ist die im Repository verfügbare Version jedoch nicht die neueste. Um auf die neuesten Funktionen zugreifen zu können, installieren wir Lynis über das offizielle Repository des Projekts.

Das Software-Repository von Lynis verwendet das HTTPS-Protokoll. Daher müssen wir sicherstellen, dass die HTTPS-Unterstützung für den Paket-Manager installiert ist. Verwenden Sie den folgenden Befehl, um zu überprüfen:

dpkg -s apt-transport-https | grep -i status

Wenn es installiert ist, sollte die Ausgabe dieses Befehls wie folgt lauten:

OutputStatus: install ok installed

Wenn die Ausgabe besagt, dass es nicht installiert ist, installieren Sie es mit + sudo apt-get install apt-transport-https +

Mit der nun installierten Lone-Abhängigkeit installieren wir Lynis. Fügen Sie den Schlüssel des Repositorys hinzu, um diesen Vorgang zu starten:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

Die folgende Ausgabe zeigt an, dass der Schlüssel erfolgreich hinzugefügt wurde:

OutputExecuting: /tmp/tmp.AnVzwb6Mq8/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-keys
C80E383C3DE9F082E01391A0366C67DE91CA5D5F
gpg: requesting key 91CA5D5F from hkp server keyserver.ubuntu.com
gpg: key 91CA5D5F: public key "CISOfy Software (signed software packages) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Fügen Sie dann das Lynis-Repository zu der Liste der für den Paketmanager verfügbaren Repositorys hinzu:

sudo add-apt-repository "deb [arch=amd64] https://packages.cisofy.com/community/lynis/deb/ xenial main"

Aktualisieren Sie die Paketdatenbank, um die Pakete im neu hinzugefügten Repository für das System verfügbar zu machen:

sudo apt-get update

Zum Schluss installieren Sie Lynis:

sudo apt-get install lynis

Nach Abschluss der Installation sollten Sie Zugriff auf den Befehl "+ lynis +" und seine Unterbefehle haben. Schauen wir uns als nächstes an, wie man Lynis benutzt.

Schritt 2 - Durchführen eines Audits

Nach Abschluss der Installation können Sie nun mit Lynis Sicherheitsüberprüfungen Ihres Systems durchführen. Lassen Sie uns zunächst eine Liste der Aktionen anzeigen, die Sie mit Lynis ausführen können. Führen Sie den folgenden Befehl aus:

lynis show commands

Sie sehen die folgende Ausgabe:

Output
Commands:
lynis audit
lynis configure
lynis show
lynis update
lynis upload-only

Lynis-Audits werden mithilfe von Profilen ermöglicht, die wie Konfigurationsdateien mit Einstellungen aussehen, die steuern, wie Lynis ein Audit durchführt. Zeigen Sie die Einstellungen für das Standardprofil an:

lynis show settings

Die Ausgabe sieht folgendermaßen aus:

Output# Colored screen output
colors=1

# Compressed uploads
compressed-uploads=0

# Use non-zero exit code if one or more warnings were found
error-on-warnings=0

...

# Upload server (ip or hostname)
upload-server=[not configured]

# Data upload after scanning
upload=no

# Verbose output
verbose=0

# Add --brief to hide descriptions, --configured-only to show configured items only, or --nocolors to remove colors

Es ist immer eine gute Idee, vor der Durchführung eines Audits zu überprüfen, ob eine neue Version verfügbar ist. Auf diese Weise erhalten Sie die aktuellsten Vorschläge und Informationen. Führen Sie den folgenden Befehl aus, um nach Updates zu suchen:

lynis update info

Die Ausgabe sollte der folgenden ähneln, was zeigt, dass die Version von Lynis die neueste ist:

Output == Lynis ==

 Version            : 2.4.8
 Status             : Up-to-date
 Release date       : 2017-03-29
 Update location    : https://cisofy.com/lynis/


2007-2017, CISOfy - https://cisofy.com/lynis/

Alternativ können Sie + lynis update check + eingeben, wodurch die folgende einzeilige Ausgabe generiert wird:

Outputstatus=up-to-date

Wenn für die Version ein Update erforderlich ist, verwenden Sie Ihren Paketmanager, um das Update durchzuführen.

Verwenden Sie den Befehl + lynis audit system +, um eine Prüfung Ihres Systems durchzuführen. Sie können Lynis im privilegierten und nicht privilegierten (Pentest-) Modus ausführen. Im letzteren Modus werden einige Tests, die Root-Berechtigungen erfordern, übersprungen. Aus diesem Grund sollten Sie Ihre Prüfung im privilegierten Modus mit + sudo + ausführen. Führen Sie diesen Befehl aus, um Ihr erstes Audit durchzuführen:

sudo lynis audit system

Nach der Authentifizierung führt Lynis die Tests durch und überträgt die Ergebnisse auf Ihren Bildschirm. Ein Lynis-Audit dauert in der Regel eine Minute oder weniger.

Wenn Lynis ein Audit durchführt, durchläuft es eine Reihe von Tests, die in Kategorien unterteilt sind. Nach jedem Audit werden die Testergebnisse, Debuginformationen und Vorschläge zur Härtung des Systems auf die Standardausgabe (den Bildschirm) geschrieben. Detailliertere Informationen werden in "+ / var / log / lynis.log " gespeichert, während die Berichtsdaten in " / var / log / lynis-report.dat +" gespeichert werden. Die Berichtsdaten enthalten allgemeine Informationen über den Server und die Anwendung selbst. Die Datei, auf die Sie achten müssen, ist die Protokolldatei. Die Protokolldatei wird bei jedem Audit gelöscht (überschrieben), sodass die Ergebnisse eines vorherigen Audits nicht gespeichert werden.

Nach Abschluss des Audits überprüfen Sie die Ergebnisse, Warnungen und Vorschläge und implementieren dann alle relevanten Vorschläge.

Sehen wir uns die Ergebnisse eines Lynis-Audits an, das auf dem Computer durchgeführt wurde, auf dem dieses Tutorial geschrieben wurde. Die Ergebnisse, die Sie bei Ihrer Prüfung sehen, können unterschiedlich sein, aber Sie sollten trotzdem in der Lage sein, mitzumachen.

Der erste wichtige Teil eines Lynis-Prüfungsergebnisses dient lediglich der Information. Es zeigt Ihnen das Ergebnis jedes Tests, gruppiert nach Kategorien. Die Informationen haben die Form von Schlüsselwörtern wie * NONE *, * WEAK *, * DONE *, * FOUND *, * NOT_FOUND *, * OK * und * WARNING *.

Output[+] Boot and services
------------------------------------
- Service Manager                                           [ systemd ]
- Checking UEFI boot                                        [ DISABLED ]
- Checking presence GRUB                                    [ OK ]
- Checking presence GRUB2                                   [ FOUND ]
  - Checking for password protection                        [ WARNING ]

..

[+] File systems
------------------------------------
- Checking mount points
   - Checking /home mount point                              [ SUGGESTION ]
   - Checking /tmp mount point                               [ SUGGESTION ]
   - Checking /var mount point                               [ OK ]
- Query swap partitions (fstab)                             [ NONE ]
- Testing swap partitions                                   [ OK ]
- Testing /proc mount (hidepid)                             [ SUGGESTION ]
- Checking for old files in /tmp                            [ OK ]
- Checking /tmp sticky bit                                  [ OK ]
- ACL support root file system                              [ ENABLED ]
- Mount options of /                                        [ OK ]
- Checking Locate database                                  [ FOUND ]
- Disable kernel support of some filesystems
   - Discovered kernel modules: udf

...

[+] Hardening
------------------------------------
- Installed compiler(s)                                   [ FOUND ]
- Installed malware scanner                               [ NOT FOUND ]
- Installed malware scanner                               [ NOT FOUND ]

...

[+] Printers and Spools
------------------------------------
- Checking cups daemon                                      [ NOT FOUND ]
- Checking lp daemon                                        [ NOT RUNNING ]

Obwohl Lynis mehr als 200 Tests sofort durchführt, sind nicht alle für Ihren Server erforderlich. Wie können Sie feststellen, welche Tests notwendig sind und welche nicht? Hier kommt ein gewisses Wissen darüber ins Spiel, was auf einem Server ausgeführt werden soll oder nicht. Wenn Sie beispielsweise den Ergebnisbereich eines typischen Lynis-Audits überprüfen, finden Sie zwei Tests in der Kategorie * Drucker und Spools *:

Output[+] Printers and Spools
------------------------------------
- Checking cups daemon                                      [ NOT FOUND ]
- Checking lp daemon                                        [ NOT RUNNING ]

Führen Sie tatsächlich einen Druckserver auf einem Ubuntu 16.04-Server aus? Sofern Sie keinen cloudbasierten Druckserver verwenden, muss Lynis diesen Test nicht jedes Mal ausführen.

Während dies ein perfektes Beispiel für einen Test ist, den Sie überspringen können, sind andere nicht so offensichtlich. Nehmen Sie diesen Teilergebnisabschnitt, zum Beispiel:

Output[+] Insecure services
------------------------------------
 - Checking inetd status                                     [ NOT ACTIVE ]

Diese Ausgabe besagt, dass "+ inetd " nicht aktiv ist, dies wird jedoch auf einem Ubuntu 16.04-Server erwartet, da Ubuntu " inetd " durch " systemd +" ersetzt hat. Wenn Sie das wissen, können Sie diesen Test als einen Test kennzeichnen, den Lynis im Rahmen einer Prüfung auf Ihrem Server nicht durchführen sollte.

Wenn Sie die Testergebnisse überprüfen, erhalten Sie eine ziemlich gute Liste überflüssiger Tests. Mit dieser Liste in der Hand können Sie Lynis dann anpassen, um sie bei zukünftigen Audits zu ignorieren. Wie das geht, erfahren Sie in Schritt 5.

In den nächsten Abschnitten werden die verschiedenen Teile einer Lynis-Audit-Ausgabe behandelt, damit Sie besser verstehen, wie Sie Ihr System mit Lynis ordnungsgemäß auditieren können. Schauen wir uns zunächst an, wie mit Warnungen von Lynis umgegangen wird.

Schritt 3 - Lynis Audit Warnungen beheben

Eine Lynis-Audit-Ausgabe enthält nicht immer einen Abschnitt mit Warnungen. In diesem Fall wissen Sie jedoch, wie Sie die Probleme beheben können, die nach dem Lesen dieses Abschnitts aufgetreten sind.

Warnungen werden nach dem Ergebnisbereich aufgeführt. Jede Warnung beginnt mit dem Warnungstext selbst und dem Test, der die Warnung in derselben Zeile in Klammern generiert hat. Die nächste Zeile enthält einen Lösungsvorschlag, falls vorhanden. Die letzte Zeile ist eine Sicherheitssteuerungs-URL, in der Sie möglicherweise Hinweise zur Warnung finden. Leider bietet die URL nicht immer eine Erklärung, so dass Sie möglicherweise weitere Nachforschungen anstellen müssen.

Die folgende Ausgabe stammt aus dem Warnungsabschnitt eines Lynis-Audits, das auf dem für diesen Artikel verwendeten Server ausgeführt wurde. Lassen Sie uns jede Warnung durchgehen und untersuchen, wie Sie sie beheben oder beheben können:

OutputWarnings (3):
 ----------------------------
! Version of Lynis is very old and should be updated [LYNIS]
   https://cisofy.com/controls/LYNIS/

! Reboot of system is most likely needed [KRNL-5830]
   - Solution : reboot
     https://cisofy.com/controls/KRNL-5830/

! Found one or more vulnerable packages. [PKGS-7392]
     https://cisofy.com/controls/PKGS-7392/

Die erste Warnung besagt, dass Lynis aktualisiert werden muss. Das bedeutet auch, dass bei dieser Prüfung Lynis verwendet wurde, sodass die Ergebnisse möglicherweise nicht vollständig sind. Dies hätte vermieden werden können, wenn wir vor dem Ausführen der Ergebnisse eine grundlegende Versionsprüfung durchgeführt hätten, wie in Schritt 3 gezeigt. Die Lösung für dieses Problem ist einfach: Aktualisieren Sie Lynis.

Die zweite Warnung weist darauf hin, dass der Server neu gestartet werden muss. Dies liegt wahrscheinlich daran, dass kürzlich ein Systemupdate durchgeführt wurde, das ein Kernel-Upgrade beinhaltete. Die Lösung besteht darin, das System neu zu starten.

Wenn Sie Zweifel an einer Warnung oder an einem Testergebnis haben, können Sie weitere Informationen zum Test erhalten, indem Sie Lynis nach der Test-ID fragen. Der dazu erforderliche Befehl hat folgende Form:

sudo lynis show details

Für die zweite Warnung, die die Test-ID * KRNL-5830 * hat, können wir den folgenden Befehl ausführen:

sudo lynis show details KRNL-5830

Die Ausgabe für diesen speziellen Test folgt. Dies gibt Ihnen eine Vorstellung von dem Prozess, den Lynis für jeden durchgeführten Test durchläuft. Aus dieser Ausgabe gibt Lynis sogar spezifische Informationen zu dem Element, das die Warnung ausgelöst hat:

Output2017-03-21 01:50:03 Performing test ID KRNL-5830 (Checking if system is running on the latest installed kernel)
2017-03-21 01:50:04 Test: Checking presence /var/run/reboot-required.pkgs
2017-03-21 01:50:04 Result: file /var/run/reboot-required.pkgs exists
2017-03-21 01:50:04 Result: reboot is needed, related to 5 packages
2017-03-21 01:50:04 Package: 5
2017-03-21 01:50:04 Result: /boot exists, performing more tests from here
2017-03-21 01:50:04 Result: /boot/vmlinuz not on disk, trying to find /boot/vmlinuz*
2017-03-21 01:50:04 Result: using 4.4.0.64 as my kernel version (stripped)
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-64-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-65-generic
2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-66-generic
2017-03-21 01:50:04 Action: checking relevant kernels
2017-03-21 01:50:04 Output: 4.4.0.64 4.4.0.65 4.4.0.66
2017-03-21 01:50:04 Result: Found 4.4.0.64 (= our kernel)
2017-03-21 01:50:04 Result: found a kernel (4.4.0.65) later than running one (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.65
2017-03-21 01:50:04 Result: found a kernel (4.4.0.66) later than running one (4.4.0.64)
2017-03-21 01:50:04 Result: Found 4.4.0.66
2017-03-21 01:50:04 Warning: Reboot of system is most likely needed [test:KRNL-5830] [details:] [solution:text:reboot]
2017-03-21 01:50:04 Hardening: assigned partial number of hardening points (0 of 5). Currently having 7 points (out of 14)
2017-03-21 01:50:04 Checking permissions of /usr/share/lynis/include/tests_memory_processes
2017-03-21 01:50:04 File permissions are OK
2017-03-21 01:50:04 ===---------------------------------------------------------------===

Für die dritte Warnung, * PKGS-7392 *, die sich auf anfällige Pakete bezieht, führen wir den folgenden Befehl aus:

sudo lynis show details PKGS-7392

Die Ausgabe enthält weitere Informationen zu den Paketen, die aktualisiert werden müssen:

Output2017-03-21 01:39:53 Performing test ID PKGS-7392 (Check for Debian/Ubuntu security updates)
2017-03-21 01:39:53 Action: updating repository with apt-get
2017-03-21 01:40:03 Result: apt-get finished
2017-03-21 01:40:03 Test: Checking if /usr/lib/update-notifier/apt-check exists
2017-03-21 01:40:03 Result: found /usr/lib/update-notifier/apt-check
2017-03-21 01:40:03 Test: checking if any of the updates contain security updates
2017-03-21 01:40:04 Result: found 7 security updates via apt-check
2017-03-21 01:40:04 Hardening: assigned partial number of hardening points (0 of 25). Currently having 96 points (out of 149)
2017-03-21 01:40:05 Result: found vulnerable package(s) via apt-get (-security channel)
2017-03-21 01:40:05 Found vulnerable package: libc-bin
2017-03-21 01:40:05 Found vulnerable package: libc-dev-bin
2017-03-21 01:40:05 Found vulnerable package: libc6
2017-03-21 01:40:05 Found vulnerable package: libc6-dev
2017-03-21 01:40:05 Found vulnerable package: libfreetype6
2017-03-21 01:40:05 Found vulnerable package: locales
2017-03-21 01:40:05 Found vulnerable package: multiarch-support
2017-03-21 01:40:05 Warning: Found one or more vulnerable packages. [test:PKGS-7392] [details:-] [solution:-]
2017-03-21 01:40:05 Suggestion: Update your system with apt-get update, apt-get upgrade, apt-get dist-upgrade and/or unattended-upgrades [test:PKGS-7392] [details:-] [solution:-]
2017-03-21 01:40:05 ===---------------------------------------------------------------===

Die Lösung hierfür besteht darin, die Paketdatenbank zu aktualisieren und das System zu aktualisieren.

Nachdem Sie das Problem behoben haben, das zu einer Warnung geführt hat, sollten Sie das Audit erneut ausführen. Nachfolgende Audits sollten frei von derselben Warnung sein, obwohl möglicherweise neue Warnungen angezeigt werden. Wiederholen Sie in diesem Fall den in diesem Schritt gezeigten Vorgang und korrigieren Sie die Warnungen.

Nachdem Sie nun wissen, wie Sie die von Lynis generierten Warnungen lesen und korrigieren, schauen wir uns an, wie Sie die von Lynis angebotenen Vorschläge umsetzen.

Schritt 4 - Implementierung von Lynis Audit-Vorschlägen

Nach dem Abschnitt mit den Warnungen wird eine Reihe von Vorschlägen angezeigt, die dazu führen können, dass Ihr Server weniger anfällig für Angriffe und Malware ist. In diesem Schritt erfahren Sie, wie Sie einige von Lynis nach einer Prüfung eines Ubuntu 16.04-Testservers generierte Vorschläge implementieren. Der Vorgang hierfür ist identisch mit den Schritten im vorherigen Abschnitt.

Ein bestimmter Vorschlag beginnt mit dem Vorschlag selbst, gefolgt von der Test-ID. Abhängig vom Test werden Sie in der nächsten Zeile genau darüber informiert, welche Änderungen in der Konfigurationsdatei des betroffenen Dienstes vorgenommen werden müssen. Die letzte Zeile ist eine Sicherheitssteuerungs-URL, in der Sie weitere Informationen zum Thema finden.

Hier ist zum Beispiel ein Teil eines Vorschlags aus einem Lynis-Audit, der Vorschläge zum SSH-Service enthält:

OutputSuggestions (36):
 ----------------------------
 * Consider hardening SSH configuration [SSH-7408]
   - Details  : ClientAliveCountMax (3 --> 2)
     https://cisofy.com/controls/SSH-7408/

 * Consider hardening SSH configuration [SSH-7408]
   - Details  : PermitRootLogin (YES --> NO)
     https://cisofy.com/controls/SSH-7408/

 * Consider hardening SSH configuration [SSH-7408]
   - Details  : Port (22 --> )
     https://cisofy.com/controls/SSH-7408/

 * Consider hardening SSH configuration [SSH-7408]
   - Details  : TCPKeepAlive (YES --> NO)
     https://cisofy.com/controls/SSH-7408/

 * Consider hardening SSH configuration [SSH-7408]
   - Details  : UsePrivilegeSeparation (YES --> SANDBOX)
     https://cisofy.com/controls/SSH-7408/
...

Abhängig von Ihrer Umgebung sind alle diese Vorschläge sicher umzusetzen. Um diese Entscheidung treffen zu können, müssen Sie jedoch wissen, was jede Direktive bedeutet. Da diese sich auf den SSH-Server beziehen, müssen alle Änderungen in der Konfigurationsdatei des SSH-Daemons vorgenommen werden, + / etc / ssh / sshd_config +. Wenn Sie Zweifel an einem Vorschlag von Lynis zu SSH haben, lesen Sie die Direktive mit + man sshd_config + nach. Diese Informationen finden Sie auch unter available online.

Einer der Vorschläge sieht vor, den Standard-SSH-Port von "+ 22 +" zu ändern. Wenn Sie diese Änderung vornehmen und die Firewall konfiguriert ist, müssen Sie eine Regel für den SSH-Zugriff über diesen neuen Port einfügen.

Wie im Abschnitt "Warnungen" können Sie detailliertere Informationen zu einem Vorschlag erhalten, indem Sie Lynis nach der Test-ID mit "+ sudo lynis show details +" fragen.

Andere Vorschläge erfordern, dass Sie zusätzliche Software auf Ihrem Server installieren. Nehmen Sie diesen zum Beispiel:

Output* Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]
   - Solution : Install a tool like rkhunter, chkrootkit, OSSEC
     https://cisofy.com/controls/HRDN-7230/

Der Vorschlag ist, "+ rkhunter ", " chkrootkit " oder "OSSEC" zu installieren, um einen Härtungstest (HRDN-7230) zu bestehen. OSSEC ist ein hostbasiertes Intrusion Detection-System, mit dem Alarme generiert und gesendet werden können. Es ist eine sehr gute Sicherheitsanwendung, die bei einigen von Lynis durchgeführten Tests hilfreich ist. Weitere Informationen zu diesem Tool finden Sie unter https://www.digitalocean.com/community/tutorials?q=ossec[in diesen DigitalOcean-Tutorials]. Die Installation von OSSEC alleine führt jedoch nicht zum Bestehen dieses speziellen Tests. Die Installation von ` chkrootkit +` bringt es endlich zum Laufen. Dies ist ein weiterer Fall, in dem Sie manchmal zusätzliche Nachforschungen anstellen müssen, die über die von Lynis vorgeschlagenen hinausgehen.

Schauen wir uns ein anderes Beispiel an. Hier ist ein Vorschlag, der als Ergebnis eines Dateiintegritätstests angezeigt wird.

Output* Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]
     https://cisofy.com/controls/FINT-4350/

Der in der Sicherheitssteuerungs-URL angegebene Vorschlag erwähnt nicht das im vorherigen Vorschlag erwähnte OSSEC-Programm, aber die Installation hat ausgereicht, um den Test bei einem nachfolgenden Audit zu bestehen. Dies liegt daran, dass OSSEC ein ziemlich gutes Tool zur Überwachung der Dateiintegrität ist.

Sie können einige Vorschläge ignorieren, die für Sie nicht zutreffen. Hier ist ein Beispiel:

Output* To decrease the impact of a full /home file system, place /home on a separated partition [FILE-6310]
     https://cisofy.com/controls/FILE-6310/

 * To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310]
     https://cisofy.com/controls/FILE-6310/

In der Vergangenheit wurden Linux-Kerndateisysteme wie "+ / home", "+ / tmp", "+ / var" und "+ / usr" auf einer separaten Partition gemountet, um die Auswirkungen auf den gesamten Server zu minimieren, wenn diese ausgehen Festplattenplatz. Dies ist nicht so häufig anzutreffen, insbesondere auf Cloud-Servern. Diese Dateisysteme werden jetzt nur noch als Verzeichnis auf derselben Root-Partition gemountet. Wenn Sie jedoch ein Lynis-Audit für ein solches System durchführen, erhalten Sie einige Vorschläge, wie sie in der vorherigen Ausgabe aufgeführt sind. Sofern Sie nicht in der Lage sind, die Vorschläge umzusetzen, möchten Sie sie wahrscheinlich ignorieren und Lynis so konfigurieren, dass der Test, der zu ihrer Erstellung geführt hat, bei zukünftigen Audits nicht durchgeführt wird.

Die Durchführung einer Sicherheitsüberprüfung mit Lynis umfasst mehr als nur das Beheben von Warnungen und das Umsetzen von Vorschlägen. Es geht auch darum, überflüssige Tests zu identifizieren. Im nächsten Schritt erfahren Sie, wie Sie das Standardprofil anpassen, um solche Tests zu ignorieren.

Schritt 5 - Anpassen von Lynis Security Audits

In diesem Abschnitt erfahren Sie, wie Sie Lynis so anpassen, dass nur die für Ihren Server erforderlichen Tests ausgeführt werden. Profile, die bestimmen, wie Audits ausgeführt werden, werden in Dateien mit der Erweiterung "+ .prf " im Verzeichnis " / etc / lynis " definiert. Das Standardprofil hat den passenden Namen " default.prf ". Sie bearbeiten dieses Standardprofil nicht direkt. Stattdessen fügen Sie alle gewünschten Änderungen an einer Datei " custom.prf +" im selben Verzeichnis wie die Profildefinition hinzu.

Erstellen Sie eine neue Datei mit dem Namen "+ / etc / lynis / custom.prf +" mit Ihrem Texteditor:

sudo nano /etc/lynis/custom.prf

Verwenden wir diese Datei, um Lynis anzuweisen, einige Tests zu überspringen. Hier sind die Tests, die wir überspringen möchten:

  • * FILE-6310 *: Dient zum Überprüfen der Trennung von Partitionen.

  • * HTTP-6622 *: Wird zum Testen der Installation des Nginx-Webservers verwendet.

  • * HTTP-6702 *: Wird verwendet, um die Installation des Apache-Webservers zu überprüfen. Dieser Test und der obige Nginx-Test werden standardmäßig durchgeführt. Wenn Sie also Nginx und nicht Apache installiert haben, möchten Sie den Apache-Test überspringen.

  • * PRNT-2307 * und * PRNT-2308 *: Wird verwendet, um nach einem Druckserver zu suchen.

  • * TOOL-5002 *: Dient zum Suchen nach Automatisierungswerkzeugen wie Marionette und Salz. Wenn Sie auf Ihrem Server keine solchen Tools benötigen, können Sie diesen Test überspringen.

  • * SSH-7408: tcpkeepalive *: Mehrere Lynis-Tests können unter einer einzigen Test-ID zusammengefasst werden. Wenn sich in dieser Test-ID ein Test befindet, den Sie überspringen möchten, können Sie diesen hier angeben.

Um einen Test zu ignorieren, übergeben Sie der Direktive * skip-test * die Test-ID, die Sie ignorieren möchten, eine pro Zeile. Fügen Sie Ihrer Datei den folgenden Code hinzu:

/etc/lynis/custom.prf

# Lines starting with "#" are comments
# Skip a test (one per line)

# This will ignore separation of partitions test
skip-test=FILE-6310

# Is Nginx installed?
skip-test=HTTP-6622

# Is Apache installed?
skip-test=HTTP-6702

# Skip checking print-related services
skip-test=PRNT-2307
skip-test=PRNT-2308

# If a test id includes more than one test use this form to ignore a particular test
skip-test=SSH-7408:tcpkeepalive

Speichern und schließen Sie die Datei.

Wenn Sie das nächste Mal ein Audit durchführen, überspringt Lynis die Tests, die mit den im benutzerdefinierten Profil konfigurierten Test-IDs übereinstimmen. Die Tests werden im Ergebnisabschnitt der Audit-Ausgabe sowie im Abschnitt mit den Vorschlägen weggelassen.

Mit der Datei "+ /etc/lynis/custom.prf " können Sie auch alle Einstellungen in einem Profil ändern. Kopieren Sie dazu die Einstellung von ` / etc / lynis / default.prf ` in ` / etc / lynis / custom.prf +` und ändern Sie sie dort. Sie müssen diese Einstellungen selten ändern. Konzentrieren Sie sich daher auf die Suche nach Tests, die Sie überspringen können.

Schauen wir uns als nächstes an, was Lynis den hardening index nennt.

Schritt 6 - Interpretation des Härteindex

Im unteren Bereich jeder Lynis-Audit-Ausgabe, direkt unterhalb des Vorschlagsbereichs, finden Sie einen Bereich, der wie folgt aussieht:

OutputLynis security scan details:

 Hardening index :
 Tests performed : 206
 Plugins enabled : 0

Diese Ausgabe gibt an, wie viele Tests durchgeführt wurden, zusammen mit einem Härtungsindex, einer Zahl, die Lynis angibt, um Ihnen ein Gefühl dafür zu vermitteln, wie sicher Ihr Server ist. Diese Nummer ist einzigartig für Lynis. Der Härteindex ändert sich in Bezug auf die von Ihnen korrigierten Warnungen und die von Ihnen umgesetzten Vorschläge. Diese Ausgabe, die zeigt, dass das System einen Härteindex von 64 hat, stammt aus dem ersten Lynis-Audit auf einem neuen Ubuntu 16.04-Server.

Nachdem die Warnungen behoben und die meisten Vorschläge umgesetzt wurden, ergab ein neues Audit die folgenden Ergebnisse. Sie sehen, dass der Härteindex etwas höher ist:

OutputLynis security scan details:

Hardening index : 86 [#################   ]
Tests performed : 205
Plugins enabled : 0

Der Härtungsindex ist keine genaue Einschätzung der Sicherheit eines Servers, sondern lediglich ein Maß dafür, wie gut der Server auf der Grundlage der von Lynis durchgeführten Tests sicher konfiguriert (oder gehärtet) ist. Und wie Sie gesehen haben, ist es umso besser, je höher der Index ist. Das Ziel eines Lynis-Sicherheits-Audits besteht nicht nur darin, einen hohen Härteindex zu erhalten, sondern die von ihm erzeugten Warnungen und Vorschläge zu korrigieren.

Fazit

In diesem Lernprogramm haben Sie Lynis installiert, eine Sicherheitsüberprüfung eines Ubuntu 16.04-Servers durchgeführt, die Behebung der von ihm generierten Warnungen und Vorschläge sowie die Anpassung der von Lynis durchgeführten Tests untersucht.

Es kostet ein wenig mehr Zeit und Mühe, aber es lohnt sich, Ihre Maschine sicherer zu machen, und Lynis vereinfacht diesen Vorgang erheblich.

Weitere Informationen zu Lynis finden Sie in der offiziellen Dokumentation unter Get Started with Lynis. Lynis ist ein Open-Source-Projekt. Wenn Sie also einen Beitrag leisten möchten, besuchen Sie die GitHub page des Projekts.