Archiv der Kategorie: Linux

Diese Seite zeigt alle Beiträge an, die einen Bezug zum Themenbereich Linux haben.

© Kesu - Fotolia.com

Automatisiertes Log Management mit Graylog2

Die Wichtigkeit der Auswertung von Log-Dateien der Netzwerke-Hardware oder von Servern ist den meisten Administratoren bewusst. In der Praxis ist es jedoch häufig, das sich die Analyse darauf beschränkt, die wichtigsten Protokolldateien der letzten Tage durchzuschauen und die Erreichbarkeit von Services zu prüfen. Durch den Verzicht auf ein effizientes Log-(bzw. Event-)Management werden viele Gelegenheiten verpasst, drohende Systemstörungen oder Ausfälle frühzeitig zu erkennen.

Ich möchte in diesem Beitrag eine Möglichkeit vorstellen, große Protokollmengen mit mehreren Millionen Einträgen systematisch, automatisiert und zeitsparend auswerten zu können. Als Software werde ich hierbei das Open Source Log Management Tool Graylog2 verwenden.

Graylog2 - Dashboards

Teil eines effizienten Log Management Prozesses sind Dashboards, das sind kleine Übersichten mit vordefinierten Auswertungen der Log-Daten. Ein Dashboard für eine DMZ könnte zum Beispiel wie folgt aussehen:

Log Management Graylog2 Security Dashboard

Im Optimalfall werden sämtliche Logmeldungen bereits automatisiert so stark gefiltert und ausgewertet, dass das Dashboard auf einen Blick den Zustand der Infrastruktur visualisiert. Ein Klick auf den Wert des Dashboards zeigt Details zum angezeigten Item.

Weiterlesen

© Maksim Kabakou - Fotolia.com

Härtung eines OpenVPN Servers

Dieser Beitrag wurde am 23.April 2017 auf die OpenVPN-Version 2.4 aktualisiert, insbesondere Kapitel 4.1 bis 4.3.

OpenVPN ist ein beliebtes Tool, um verschlüsselte Netzwerkverbindungen herstellen zu können. Dieser BLOG Beitrag beschäftigt sich mit der Härtung des OpenVPN Servers und beschreibt alle Konfigurationsoptionen, die Auswirkungen auf die Sicherheit der OpenVPN Verbindung haben.

Das Verständnis dieses Artikels setzt voraus, dass die grundlegende Arbeitsweise von OpenVPN bekannt ist. Einige nachfolgend beschriebenen Optionen setzen mindestens die OpenVPN Version 2.3 voraus, ein Großteil der Konfigurationsoptionen funktioniert bereits ab OpenVPN Version 2.0.x.

Nicht näher beschrieben werden Optionen, die ausschließlich den "Static key mode" betreffen. Der Fokus liegt auf dem gebräuchlicheren, zertifikatebasiertem "TLS-negotiated key mode". Ausgelassen wurden ebenfalls pkcs11/ pkcs12 Optionen.

1 Allgemeine OpenVPN Grundlagen

OpenVPN Server und Client markiert

1.1 Basics: Control- vs. Data-Channel

OpenVPN stellt zwei unabhängige Datenverbindungen her: Einen Kontroll- und einen Datenkanal.

Der Kontroll- und Datenkanal einer OpenVPN Verbindung

Der Kontrollkanal hat unter anderem folgende Aufgaben:

  • den SSL/TLS Handshake (z.B. Session Start, Schlüsselaustausch, Authentifikation, Cipher-Suite Vereinbarung) durchführen,
  • einige Aufräumarbeiten in der finalen Phase der Verbindung zu realisieren und
  • bei der Nutzung von UDP die "Nachteile" der UDP Transport Layer Unzuverlässigkeit durch Einführung von Time-Out, Packet Acknowledgement und Transmission Mechanismen auszugleichen.

Weiterlesen

© Natalia Merzlyakova - Fotolia.com

Trusted Path Execution des Grsecurity Kernel Patches

Bevor wir uns im nächsten Beitrag mit der Installation, sicheren Konfiguration und Härtung eines Nginx-Servers befassen, möchte ich im Folgenden noch etwas Grundlagenarbeit erörtern: Die Funktionsweise der Trusted Path Execution unter Linux.

Die Trusted Path Execution sind als Teil des Grsecurity Patches während der Konfiguration optional aktivierbar.

Linux Menuconfig Security > Grsecurity > Executable Protections / Trusted Path Execution ausgewählt
Security Options -> Grsecurity -> Executable Protections

Funktionsweise der Trusted Path Execution

Die Ausführung von schädlichem Code auf einem Linux System, entweder durch einen externen Angreifer oder (un)gewollt durch einen lokalen Nutzer, ist eine der größten IT-Sicherheitsbedrohungen der heutigen Tage. Um diese Gefahr zu vermindern, ist Trusted Path Execution (TPE) ein weiterer Sicherheits-Layer, der die Ausführbarkeit von Dateien unter bestimmten Umständen einschränkt.

Die Nutzung von TPE erschwert beispielsweise den Versuch einer Privilege Escalation deutlich - wenn der Account mithilfe von TPE geschützt wird, ist es einem Angreifer nicht möglich, benutzerdefinierte Dateien auszuführen, die nicht in einem vertrauenswürdigem Pfad liegen. Im Rahmen vieler Angriffe versuchen Angreifer oftmals, nach dem Einbruch in das System Code nachzuladen und auszuführen, beispielsweise um eine lokale Sicherheitslücke auszunutzen.

Weiterlesen

© violetkaipa - Fotolia.com

DNSCrypt für mehr Sicherheit und Privatsphäre

DNSCrypt ist eine interessante Möglichkeit für PCs, Server und Android-Smartphones, die Sicherheit, Integrität und Privatsphäre im Internet deutlich zu erhöhen. DNSCrypt geht auf eine Initiative von OpenDNS zurück, ein globaler, öffentlicher DNS Anbieter.

Die Relevanz der Sicherheit von DNS Anfragen wird häufig von Administratoren und sicherheitsbewussten IT Nutzern übersehen, obwohl die Manipulationen von DNS Antworten eines der häufigsten und einfachsten Möglichkeiten darstellt, ein System zu kompromittieren.

DNSSEC war ein erstes Vorhaben, die Authentizität und Integrität der DNS Daten sicherzustellen.

Was ist DNS, wie funktioniert es?

Ein kurzer Abriss zu den Funktionsweisen des DNS Systems, ich beschreibe im Folgenden die Standardfunktionsweise der Namensauflösung unter Windows, Linux und Android:

DNS Aufloesung ohne DNSCrypt als Flussdiagramm

DNS Auflösung ohne DNSCrypt als Flussdiagramm

Das Diagramm ist einfach verständlich, die Schwachstellen liegen vor allem an den Punkten 1 und 2, worauf ich gleich näher eingehen werde. DNS Anfragen und Antworten werden grundsätzlich im Klartext über das Internet versendet, für jeden lesbar. Mit einem Netzwerk-Sniffer extrahiert, sieht die Anfrage (Punkt 1 in der oberen Darstellung) wie folgt aus: Weiterlesen

© Maksim Kabakou - Fotolia.com

Ein gehärteter Linux Kernel mit PaX und Grsecurity

Pax Tux

Das Linux-Maskottchens in der PaX Variante.

Einen eigenen, sicheren Linux Kernel mit PaX und Grsecurity zu kompilieren hat eine Menge Vorteile, insbesondere bei öffentlich erreichbaren Servern. Ich kann jedem nur empfehlen, seinen Computer mit diesen beiden Kernel-Patchsammlungen zu härten.

In der IT-Sicherheit gibt es das Prinzip, optimiert-minimalistisch vorzugehen. Minimalistisch bedeutet, dass die Anzahl der Services, Anwendungen und Dateien auf einem Server und auf dem Netzwerkpfad auf dem Weg dorthin quantitativ möglichst gering gehalten werden sollte. Jedes Netzwerkgerät, jede Firewall, jeder Virenscanner und jedes Intrusion Detection System das sich in einem Netzwerk oder auf einem Computer befindet, kann prinzipiell Schwachstellen enthalten und angreifbar sein.

Optimiert vorzugehen bedeutet, das die notwendigen Tools hochsicher konfiguriert worden, in einer sicheren Umgebung kontrolliert laufen und, wenn möglich, gehärtet worden sind.

Zusammenfassung: Viele Tools zur Absicherung sind oftmals unsicherer als wenige, hoch optimierte und gehärtete Komponenten!

Auf jedem Linux Server ist ein Linux-Kernel vorhanden, es handelt sich daher um eine notwendige Komponente, die es im Folgenden zu härten gilt.

Was ist ein Kernel?

Der Kernel ist der "essentielle Kern" eines jeden Betriebssystems. Es ist der "unterste Teil" des Betriebssystems, der jedoch mit den höchsten Rechten läuft. Sollte dieses Grundwissen über den Kernel nicht vorhanden sein, empfehle ich jedem, sich vor einer Härtung mit PaX & Co. ein grundlegendes Wissen zu der Thematik anzueignen. Ein falsch konfigurierter, selbst kompilierter, gehärteter Kernel kann anfälliger sein, als der Kernel der Distribution!

Was ist PaX?

PaX beinhaltet eine Reihe von Patches, die für den Linux Kernel entwickelt worden sind. Die Patches bieten eine Reihe Vorteile, neue Funktionalitäten und einige Verbesserung vorhandener Kernel-Features. Als Schutz vor Exploits bietet PaX beispielsweise eine verbesserte ASLR (Address Space Layout Randomization).

Was ist Grsecurity?

Grsecurity sind weitere Patches für den Linux Kernel. PaX und Grsecurity wurden für eine Zusammenarbeit entwickelt und bedingen einander. Die Hauptfeatures von Grsecurity sind:

  1. Ein RBAC-System (eine Rollenbasierte Zugriffskontrolle)
  2. Memory Execution Prevention (NX-Bit), Memory Randomization (ASLR) und eine Verhinderung des Ausnutzens von Buffer-Overflows (über die PaX Patches)
  3. Trusted Path Execution.
  4. Zusätzliche chroot (Change Root) Härtung
  5. Randomisierungen (TCP/IP Stack und Prozess-IDs)
  6. Eingeschränkte Sichtbarkeit von Prozessen (z.B. den Kernel Threads)

Die Funktionalitäten lassen sich über Sysctl konfigurieren.

Weiterlesen