Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBewährte Verfahren
Linux-Server-Härtung und bewährte Sicherheitsmethoden

Linux-Server-Härtung und bewährte Sicherheitsmethoden

Einführung

Die Implementierung sicherer Konfigurationen in Ihrer gesamten Computerumgebung, einschließlich Ihrer Unix- und Linux-Systeme, ist eine wichtige Sicherheitsbest-Practice, da sie Ihre Angriffsfläche verringert und den Schaden begrenzt, den Cyberangriffe anrichten können. Tatsächlich ist die Systemhärtung eine Kernkontrolle in vielen Compliance-Richtlinien.

Dieser Leitfaden erklärt, was Konfigurationshärtung ist und wie Sie gehärtete Build-Standards für Ihre Linux- und Unix-Systeme etablieren.

Die Grundlagen der Systemhärtung

Der sicherste Linux-Server oder anderer Computer ist der, der ausgeschaltet und vom Netzwerk getrennt ist. Aber wenn wir die Maschine tatsächlich nutzen wollen, um IT-Dienste zu erbringen, müssen wir ihre Sicherheitsvorkehrungen maximieren, wenn sie hochgefahren und mit dem Netzwerk oder sogar dem Internet verbunden ist.

Hier kommt das Härten ins Spiel. Ein System zu härten bedeutet, seine Konfiguration für sicheren Betrieb und Datenschutz zu optimieren. Die Bandbreite ausnutzbarer Schwachstellen ist groß, daher gibt es drei Hauptregeln zu befolgen:

  • Entfernen Sie Funktionen, die für die Rolle des Computers nicht benötigt werden. Zum Beispiel werden Betriebssysteme und andere Anwendungen typischerweise in einem „Schnellstart“-Zustand ausgeliefert, hilfreicherweise vorab geladen mit Dienstprogrammen und Funktionen, die Benutzer möglicherweise wünschen. Je mehr Funktionen jedoch bereitgestellt werden, desto größer ist die Angriffsfläche, die vom Host präsentiert wird. Deaktivieren Sie daher unbedingt Funktionen, die Sie nicht benötigen, und vermeiden Sie es, unnötige Funktionen hinzuzufügen, wo immer dies möglich ist.
  • Patchen und aktualisieren Sie umgehend. Fehler in der Softwarekonstruktion schaffen Schwachstellen, die Angreifer ausnutzen können. Softwareanbieter stellen Patches oder aktualisierte Versionen der Software zur Behebung dieser Probleme bereit, also stellen Sie sicher, dass alle Software, einschließlich Betriebssysteme, jederzeit vollständig aktualisiert ist.
  • Halten Sie sichere Konfigurationseinstellungen aufrecht. Es ist entscheidend, dass sichere Einstellungen aktiviert und beibehalten werden.

Linux-Systemhärtung

Es überrascht nicht, dass die Absicherung von Linux eine spezialisierte Prozedur für sich ist, angesichts der breiten Palette an subtil unterschiedlichen Linux-Distributionen. Obwohl es keinen Mangel an Leitfäden, Checklisten und Tipps für bewährte Verfahren zur Absicherung von Linux-Servern gibt – einschließlich der Benchmarks des Center for Internet Security (CIS) und der DISA STIGs – wird dieser Leitfaden die wichtigsten Konfigurationsoptionen vorstellen, die man übernehmen sollte.

Wichtig: Stellen Sie sicher, dass Sie Ihre Systeme sichern, bevor Sie gehärtete Einstellungen anwenden und testen Sie nach einem Neustart. Es ist leicht, ausgesperrt zu werden!

Entfernen Sie unnötige Funktionalitäten

Beginnen Sie damit, alle Funktionen, Dienstprogramme und Dienste zu entfernen, die für den Betrieb des Servers nicht erforderlich sind. Deinstallieren Sie unnötige Software und deaktivieren Sie Systemdienste, die nicht benötigt werden. Da auch die Hardware in Ihrer Infrastruktur ausnutzbare Schwachstellen aufweist, stellen Sie sicher, dass alle zugänglichen Schnittstellen, wie USB-Anschlüsse, deaktiviert oder sogar physisch vom Gerät entfernt werden.

Der Arbeitsablauf hier besteht darin, sich einzuloggen und einen Bericht über installierte Pakete und Dienste zu erhalten und diesen zu überprüfen, um alle zu identifizieren, die entfernt oder deaktiviert werden können. Für die wesentlichen verbleibenden Elemente sollten verfügbare Patches geprüft werden, um bekannte Schwachstellen gegen Exploits zu beheben.

So listen Sie Software auf Linux/Unix-Systemen auf

System

Befehle zur Verwendung

Linux (z. B. RedHat oder CentOS)

rpm -qa --qf '%{NAME} %{VERSION} %{VENDOR}\\n'

Debian Linux (z. B. Ubuntu)

dpkg -l

Fedora Linux

Um Software von einem Terminal oder einer Putty-Sitzung aufzulisten:

service --status-all

chkconfig --list

systemctl -a

Um einen Dienst zu stoppen:

Dienst <Service-Name> anhalten

Chkconfig <Service-Name>

Systemctl stop <Service-Name>

Um einen Dienst zu deaktivieren:

Systemctl disable <Service-Name>

Chkconfig <Service-Name> aus

Überprüfen Sie auch den Pfad /etc/init.d/ auf Service-Kontrollskripte und führen Sie ls /etc/init.d/ aus, um alle Startskripte anzuzeigen; benennen Sie dann die zu deaktivierenden um oder entfernen Sie diese.

Minimieren Sie offene Ports und andere Netzwerkschwachstellen

Netzwerkbasierte Angriffe gehören zu den häufigsten Bedrohungen. Um Ihr Risiko zu verringern, identifizieren Sie offene netzwerkzugängliche Ports und entfernen Sie alle entsprechenden Prozesse, die nicht benötigt werden. Um offene Ports unter Linux aufzulisten, verwenden Sie den folgenden Befehl:

      ss -tulpn | egrep “LISTEN” | awk ‘{print “IP-Port “ $4 “ PID/Name “ $7}’
      

Zusätzlich:

  • Stellen Sie sicher, dass der TCP Wrappers-Dienst aktiv ist.
  • Definieren Sie sowohl eine etc/hosts.allow Whitelist als auch eine etc/hosts.deny Blacklist.
  • Verwenden Sie die Dienste iptables oder Firewalld mit einer Deny All-Richtlinie für sowohl IP V4 als auch V6-Datenverkehr, selbst wenn Sie WAFs und Firewall-Schutz von Drittanbietern im Netzwerk verwenden.
  • Blockieren Sie ICMP-Verkehr, um Ping-Scans zu verhindern, die von Hacker-Tools zur Geräteerkennung verwendet werden.

Überprüfung von Benutzerkonten und Authentifizierung

Überprüfen Sie lokale Benutzerkonten und entfernen Sie alle, die nicht benötigt werden. Für verbleibende lokale Benutzerkonten sollte eine starke Passwortrichtlinie konfiguriert werden, die Passwortkomplexität, Länge, Ablauf, Wiederverwendung und Änderungshäufigkeit umfasst. Stellen Sie außerdem sicher, dass Sie starke Hash-Algorithmen für gespeicherte Passwörter verwenden.

Benutzerkonten und Authentifizierung sollten mit einem zentralisierten Kontrollsystem wie Active Directory oder noch besser, einer modernen Privileged Access Management (PAM)-Lösung verwaltet werden, die eine Zero Standing Privilege-Strategie ermöglicht, welche viele Probleme mit traditionellen Benutzerkonten und dauerhaft zugewiesenen Privilegien negiert. Natürlich sollten Sie niemals root verwenden und immer sicherstellen, dass sudo-Erhöhungen nur bei Bedarf verwendet werden.

So konfigurieren Sie eine Kennwortrichtlinie für lokale Konten

Suchen und bearbeiten Sie die folgende Konfigurationsdatei: /etc/security/pwquality.conf

Um ein 14-Zeichen-Passwort durchzusetzen:

      minlen = 14
      

Um Komplexität für alle Passwörter durchzusetzen:

      minclass = 14
      

ODER

      dcredit = -1

ucredit = -1

ocredit = -1

lcredit = -1
      


Um eine starke Passwortsperrenrichtlinie durchzusetzen:

Aktualisieren Sie die Dateien /etc/pam.d/system-auth und /etc/pam.d/password-auth, um die folgenden Optionen festzulegen:

      auth required pam_faillock.so preauth silent deny=5 unlock_time=900

auth required pam_faillock.so authfail deny=5 unlock_time=900
      

Um eine Passworthistorienrichtlinie von 5 oder mehr Passwörtern durchzusetzen:

Fügen Sie die Option remember=5 zu den Zeilen pam_pwhistory.so und pam_unix.so in /etc/pam.d/password-auth hinzu:

      password requisite pam_pwhistory.so try_first_pass local_users_only enforce-for-root retry=3 remember=5

password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=5
      

Um eine starke Passworthashierung durchzusetzen:

Aktualisieren Sie die /etc/pam.d/system-auth und /etc/pam.d/password-auth Dateien wie folgt:

/etc/pam.d/password-auth:

      password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok
      

/etc/pam.d/system-auth:

      password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=5
      

Servicekonten überprüfen

System- und Dienstkonten sollten überprüft und alle nicht mehr benötigten Konten entfernt werden.

Dienstkonten sind „gehärtet“, da sie nur den Betrieb eines lokal ausgeführten Prozesses unterstützen und keine Benutzer-Shell bereitstellen, sodass diese Konten niemals für den Zugriff auf den Server durch eine Benutzeranmeldung verwendet werden können. Dennoch ist ein zentraler Grundsatz der Härtung, die Funktionalität zu minimieren, daher sollten ungenutzte Dienstkonten immer noch entfernt werden.

SSH-Härtung für Linux und Unix

Als primärer Weg zur Fernverwaltung Ihrer Linux-Systeme erfordert SSH besondere Aufmerksamkeit. Es gibt eine Reihe von Standardeinstellungen in der Datei /etc/ssh/sshd_config, die aktiviert werden müssen, um den Betrieb des SSH-Servers zu härten. 

SSH wird für den gesamten Zugriff auf Linux und Unix verwendet, daher gelten die folgenden Richtlinien auch für die Absicherung von Unix.

Aktivieren Sie v2 des SSH-Protokolls

Zum Beispiel aktiviert die Standardkonfiguration die veraltete und weniger sichere Version 1 des SSH-Protokolls. Die CIS-Härtungsrichtlinien empfehlen, Version 2 zu aktivieren, um die Sicherheit zu erhöhen. Um dies zu tun, entfernen Sie einfach das Kommentarzeichen # vor der Einstellung Protocol 2 in der Konfigurationsdatei (/etc/ssh/sshd_config), wie folgt:

Standard-Eintrag in /etc/ssh/sshd_config:

      # The default requires explicit activation of protocol 1

# Protocol 2
      

Eine sicherere Konfiguration:

      # The default requires explicit activation of protocol 1

Protocol 2
      

Zusätzliche Absicherung

Zusätzlich wenden Sie die folgenden empfohlenen CIS-Härtungseinstellungen auf die Konfigurationsdatei an:

      LogLevel INFO

IgnoreRhosts yes

…

PermitEmptyPasswords no

…

LoginGraceTime 60

PermitRootLogin no

MaxAuthTries 4

HostbasedAuthentication no

…

X11Forwarding no…

PermitUserEnvironment no

…

ClientAliveInterval 300

ClientAliveCountMax 0

…

Banner /etc/issue.net

 …

AllowUsers <Specify user names, separated by spaces, e.g. user1 user2>
      

Zusätzliche Anmerkungen:

/etc/issue.net muss erstellt/bearbeitet werden, um einen angemessenen Banner einzufügen, z.B.

Warnung! Der unbefugte Zugriff auf dieses System ist verboten und wird gesetzlich verfolgt. Durch den Zugriff auf dieses System erklären Sie sich damit einverstanden, dass Ihre Aktionen überwacht werden können, wenn der Verdacht auf unbefugte Nutzung besteht.

Zusammen mit AllowUsers, AllowGroups wird auch als Konfigurationsschalter/-schlüsselwort unterstützt.

Absicherung des Apache Web Servers

Linux ist die bevorzugte Plattform für das Hosting von internetbasierten Webanwendungen, und Apache Tomcat sowie Apache HTTP Server (oft als Apache HTTPD bezeichnet) sind zwei der beliebtesten Optionen zur Bereitstellung von Webinhalten.

Der Ansatz zur Absicherung der Apache-Konfiguration ist derselbe: Minimieren Sie die Funktionalität und implementieren Sie sichere Konfigurationseinstellungen, wo verfügbar.

Stellen Sie sicher, dass nur die wesentlichen Apache-Module aktiviert sind:

      httpd -M
      

Zum Beispiel sollten mod_dav und mod_dav_fs immer deaktiviert sein, während das log_config-Modul immer geladen und aktiviert sein sollte.

Bestätigen Sie, dass die Definition von package.access nur die folgenden erlaubten Pakete enthält:

package.access = sun.,org.apache.catalina.,org.apache.coyote.,

org.apache.tomcat.,org.apache.jasper.

Konfigurieren Sie die server.xml-Datei:

Die server.xml-Datei im Pfad CATALINA_HOME/conf ist der zentrale Konfigurationsspeicher für den Webserver. Die empfohlenen Einstellungen, die in server.xml aufgenommen werden sollten, sind wie folgt:

  • Deaktivieren Sie den Shutdown-Port:
      Server port="-1" shutdown="SHUTDOWN">
      
  • Entfernen Sie ungenutzte Konnektoren, einschließlich des Standard-HTTPConnector und des AJPConnector. Um den HTTPConnector zu entfernen, löschen oder kommentieren Sie diesen Tag aus:
      Connector className="org.apache.catalina.connector.http.HttpConnector"

...

connectionTimeout="60000"/>
      

Entfernen Sie die standardmäßigen Einstellungen zur Präsenzwerbung:

Für Tomcat:

Setzen Sie das xpoweredBy Attribut auf false:

      xpoweredBy="false" />
      

Für HTTP Server:

  • Entfernen Sie die Standard-index.html und kommentieren Sie das Folgende in der /etc/httpd/conf.d/welcome.conf aus, indem Sie jede Zeile mit # oder ## auskommentieren:
      ##<LocationMatch "^/+$">

## Options -Indexes

## ErrorDocument 403 /error/noindex.html

##</LocationMatch>
      
  • Kommentieren Sie den Abschnitt Server-Status aus:
      ##<Location /server-status>

## SetHandler server-status

## Order deny,allow

## Deny from all

## Allow from .example.com

##</Location>
      
  • Kommentieren Sie den Abschnitt server-info aus:
      ##<Location /server-info>

## SetHandler server-info

## Order deny,allow

## Deny from all

## Allow from .example.com

##</Location>
      

Deaktivieren Sie die Diagnose-Trace-Funktionen:

Setzen Sie das Attribut allowTrace für jeden Connector auf false

Deaktivieren Sie die automatische Bereitstellung von Anwendungen und deaktivieren Sie die Bereitstellung beim Start:

      autoDeploy="false"

deployOnStartup="false"
      

Zusätzliche Absicherung:

  • Stellen Sie sicher, dass Datei- und Ordnerberechtigungen restriktiv sind und dass Apache-Dienste mit Nicht-Shell-Dienstkonten ausgeführt werden (d.h. Konten, die nicht zum Anmelden am System verwendet werden können). Deaktivieren Sie das Auflisten und Durchsuchen von Verzeichnissen.
      $CATALINA_HOME

$CATALINA_BASE
      

Kernel-Härtung für Linux

SELinux modifiziert den Linux-Kernel, um verpflichtende Zugriffskontrollen durchzusetzen, die beschränken, wie Linux-Prozesse auf Dateien und Programme zugreifen können. Diese zusätzliche Einschränkungsebene bietet einen grundlegenden Schutzmechanismus gegen Rootkit-Malware. AppArmor bietet ein äquivalentes Niveau von MAC für Debian-Distributionen.

SELinux-Einstellungen

Installieren Sie SELinux auf CentOS/RHEL:

      dnf install libselinux
      

SELinux aktivieren:

Standardmäßig wird SELinux deaktiviert sein. Um SELinux beim Booten zu aktivieren, edit/etc/default/grub und entfernen Sie diese Standardeinstellungen:

      selinux=0

enforcing=0
      

Setzen Sie die SELinux-Konfiguration auf Durchsetzung

Bearbeiten Sie die Datei /etc/selinux/config, um Folgendes einzuschließen:

      SELINUX=enforcing

SELINUXTYPE=default
      

Stellen Sie sicher, dass alle Dienste in einem von SELinux kontrollierten Sicherheitskontext ausgeführt werden:

Der folgende Befehl listet alle Dienste auf, die vom Init-Prozess gestartet werden und denen möglicherweise ein nicht standardmäßiger Sicherheitskontext zugewiesen werden muss:

      ps -eZ | egrep "initrc" | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'
      

Starten Sie den Computer neu, um sicherzustellen, dass alle Einstellungen geladen wurden.

AppArmor-Einstellungen

Installieren Sie AppArmor auf Ubuntu/Debian:

      apt-get install apparmor apparmor-profiles apparmor-utils
      

AppArmor beim Booten aktivieren:

Bearbeiten Sie /etc/default/grub und fügen Sie die folgenden Einstellungen hinzu:

      GRUB_CMDLINE_LINUX="apparmor=1 security=apparmor"
      

Stellen Sie sicher, dass alle AppArmor-Profile im Durchsetzungsmodus sind:

      aa-enforce /etc/apparmor.d/*
      

Embedded Linux Absicherung

Embedded Linux bietet ein abgespecktes Betriebssystem für eingebettete Geräte oder eingebettete Systeme, wie Smartphones, Smart-TVs, Set-Top-Boxen und Breitband-Internet-Router.

Ein vereinfachtes Betriebssystem mit reduziertem Umfang ist attraktiv, wenn der volle Funktionsumfang, der normalerweise von servergeeigneten Linux-Geräten bereitgestellt wird, nicht erforderlich ist und Hardware-Ressourcen wie Speicher, Arbeitsspeicher und CPU minimiert wurden, um Herstellungskosten zu sparen. Zum Beispiel ist die von Google entwickelte Open-Source-Plattform Android für Smartphones und Fernseher optimiert und die OpenWrt-Router-Firmware wird für eine breite Palette von Breitbandroutern verwendet.

Die in das Betriebssystem integrierte Funktionalität variiert stark je nach vorgesehener Anwendung. Zum Beispiel beinhaltet Android einen Bildschirmsperrmechanismus, Gesichtserkennung, PIN-Eingabeunterstützung und Ortungsdienste; diese sind in Betriebssystemen für Heimrouter nicht notwendig, aber VPN, Gast-WLAN und Bandbreiten-Drosselungsfunktionen sind enthalten. Daher ist die Anleitung zur Absicherung speziell mit dem jeweiligen Gerät und der Plattform verbunden, die verwendet wird.

Highlights zur Android-Härtung

Stellen Sie sicher, dass die Firmware des Geräts auf dem neuesten Stand ist:

Gehen Sie zu Einstellungen | System | Systemaktualisierungen; wählen Sie Nach Updates suchen und installieren Sie alle verfügbaren Updates.

Installieren Sie Google Play und Sicherheitsupdates:

Gehen Sie zu Einstellungen | Sicherheit:

  • Wählen Sie Google Security Check-Up und führen Sie verfügbare Aktualisierungen durch.
  • Wählen Sie Google Play system update und führen Sie alle verfügbaren Updates durch.

Aktivieren Sie die allgemeine Gerätesicherheit:

  1. Gehen Sie zu Einstellungen | Sicherheit | Gerätesicherheit und führen Sie Folgendes aus:
  • Stellen Sie ‘Screen Lock’ auf ‘Aktiviert’.
  • Setzen Sie ‘Pattern Visible’ auf ‘Disabled’.
  • Set ‘Automatically Lock’ to ‘Immediately’.
  • Stellen Sie ‘Power Button Instantly Locks’ auf ‘Ein’.
  • Legen Sie Geräte-Admin-Apps ‘Find My Device’ auf ‘Aktiviert’.
  • Stellen Sie ‘Allow remote lock and erase’ auf ‘Enabled’.

2. Gehen Sie zu Settings | System | Advanced und führen Sie Folgendes durch:

  • Stellen Sie ‘Developer Options’ auf ‘Aus’.

3. Gehen Sie zu Settings | Apps & Notifications | Advanced | Special App Access und führen Sie Folgendes durch:

  • Setzen Sie ‘Install Unknown Apps’ auf ‘Nicht erlaubt’.

4. Starten Sie Play Store | Menü und führen Sie Folgendes durch:

  • Wählen Sie ‘My Apps & Games’ und klicken Sie auf ‘Update All’.

OpenWrt-Härtungshöhepunkte

  • Ändern Sie das Admin-Passwort vom Standard.
  • Stellen Sie sicher, dass die Firmware immer auf die neueste Version aktualisiert wird.

Kali Linux Hardening

Kali Linux wurde optimiert, um die bevorzugte Plattform für Penetrationstester zu sein, daher verfügt es über eine breite Palette von Sicherheitsüberprüfungs- und Penetrationstest-Utilities.

Da Kali Linux eine auf Debian basierende Linux-Distribution ist, können Sie die oben genannten Linux-Härtungstipps verwenden, um die Sicherheitsschwächen in Kali Linux-Systemen zu beheben.

Linux Mint Sicherheitshärtung

Ebenso sollte für Linux Mint, als eine von Ubuntu abgeleitete Desktop-Linux-Plattform, dieselben Härtungsverfahren wie für Debian-Linux angewendet werden. Arbeiten Sie die früheren Schritte der Linux-Härtungscheckliste durch und wenden Sie diese auf Ihre Linux Mint-Systeme an.

Arch Linux härten

Als eine unabhängige Linux-Distribution, die nicht direkt von Debian oder Fedora abgeleitet ist, stellt Arch Linux einen individuellen Fall dar, wenn es um Absicherungsmaßnahmen geht, obwohl die Konzepte, wie und was abgesichert werden soll, ähnlich sind. Der Arch-Code ist absichtlich als eine gestraffte 'no filler' Linux-Distribution konzipiert und wird daher weniger Absicherungsarbeit erfordern, wenn es darum geht, unnötige Dienste zu entfernen/deaktivieren.

Letztes Wort

Selbst ein gehärtetes System kann immer noch kompromittiert werden, insbesondere durch Folgendes:

  • Zero-Day-Bedrohungen — Exploits, von denen wir keine Kenntnis hatten und gegen die wir daher keinen Schutz boten
  • Ransomware und andere Schadsoftware
  • Insider-Bedrohungen, einschließlich Hacker, die entführte Anmeldeinformationen nutzen, und Benutzer, die ihren Zugang missbrauchen

Daher benötigen Sie neben der Absicherung Ihrer Systeme zusätzliche Verteidigungsmaßnahmen. Insbesondere ist es entscheidend, die Integrität von Systemen und Dateien zu überwachen. Jede unerwartete Änderung könnte zu einem Sicherheitsvorfall oder einer anderen Sicherheitsverletzung führen. Netwrix Change Tracker bietet Echtzeitwarnungen für alle ungeplanten Änderungen und unterstützt alle Linux- und Unix-Plattformen.

Netwrix Change Tracker

Gewinnen Sie Vertrauen in die Integrität Ihres Linux/Unix-Systems mit Software für das Security Configuration Management von Netwrix

Kostenlose Testversion anfordern

Teilen auf