So richten Sie eine lokale OSSEC-Installation unter Debian ein 8

Einführung

OSSEC ist ein Open-Source-Host-basiertes Intrusion-Detection-System (HIDS), das Protokollanalysen, Integritätsprüfungen, die Überwachung der Windows-Registrierung, die Erkennung von Rootkits, zeitbasierte Warnungen und aktive Reaktionen durchführt. Es ist die Anwendung, die auf Ihrem Server installiert werden muss, wenn Sie ein Auge darauf haben möchten, was darin geschieht.

OSSEC kann so installiert werden, dass nur der Server überwacht wird, auf dem es installiert ist. Dies ist eine lokale Installation im OSSEC-Sprachgebrauch, oder es kann als Server installiert werden, um einen oder mehrere Agenten zu überwachen. In diesem Tutorial erfahren Sie, wie Sie OSSEC installieren, um den Debian 8-Server zu überwachen, auf dem es installiert ist, dh eine lokale OSSEC-Installation.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Debian 8-Droplet mit einem Benutzer ohne Rootberechtigung und SSH-Schlüsseln, die Sie einrichten können, indem Sie this tutorial .

Schritt 1 - Erforderliche Pakete installieren

In diesem Schritt installieren wir die für OSSEC erforderlichen Pakete. Aktualisieren Sie zunächst die Paketdatenbank.

sudo apt-get update

Installieren Sie dann die verfügbaren Updates.

sudo apt-get -y upgrade

Installieren Sie abschließend die OSSEC-Abhängigkeiten ("+ build-essential" und "+ inotify-toops") und "+ ntp +", einen Network Time Protocol-Dienst.

sudo apt-get install build-essential inotify-tools ntp

Aktivieren Sie schließlich den NTP-Dienst. Dies hilft dem Server dabei, die genaue Zeit automatisch einzuhalten.

sudo systemctl start ntp

Schritt 2 - Aktivieren einer Firewall

Bei einer Neuinstallation eines Debian 8-Servers ist keine Firewall-Anwendung aktiv. In diesem Schritt erfahren Sie, wie Sie die IPTables-Firewall-Anwendung aktivieren und sicherstellen, dass die Laufzeitregeln nach einem Neustart bestehen bleiben.

Die einfachste Methode, dies zu erreichen, ist die Installation des Pakets + iptables-persistent + mit:

sudo apt-get install -y iptables-persistent

Nach der Authentifizierung werden Sie aufgefordert, die IPv4- und IPv6-Firewallregeln in separaten Dateien zu speichern. Drücken Sie bei beiden Eingabeaufforderungen die Eingabetaste, um die Standardpositionen zu übernehmen: "+ / etc / iptables / rules.v4 " und " / etc / iptables / rules.v6 +".

Standardmäßig sind in diesen Dateien keine Regeln enthalten. Sie müssen daher erstellt werden, um den Server zu schützen und die offene SSH-Verbindung aufrechtzuerhalten. Wir sind nur an den IPv4-Regeln interessiert, daher ändern wir nur die Regeldatei "+ rules.v4 +".

Öffnen Sie die Regeldatei "+ rules.v4 " mit " nano +" oder Ihrem bevorzugten Texteditor.

sudo nano /etc/iptables/rules.v4

Der vollständige Inhalt dieser Datei sieht folgendermaßen aus:

Original /etc/iptables/rules.v4

# Generated by iptables-save v1.4.21 on Sat May  9 01:27:00 2015
*filter
:INPUT ACCEPT [5722:416593]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4372:503060]
COMMIT
# Completed on Sat May  9 01:27:00 2015

Der folgende Standard-Regelsatz reicht aus, um den Server und die SSH-Verbindung zu schützen. Kopieren Sie ihn also und fügen Sie ihn einfach zwischen die Zeilen *: OUTPUT ACCEPT [4372: 503060] * und * COMMIT * ein. Diese Regeln wurden der offiziellen Debian-Dokumentation entnommen; An den Inline-Kommentaren können Sie ablesen, was die einzelnen Regeln bewirken.

#  Allow all loopback traffic. Drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic
-A OUTPUT -j ACCEPT

#  Uncomment the next two lines to allow HTTP and HTTPS connections
#-A INPUT -p tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections. If you changed your SSH port, do same here.
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

Speichern und schließen Sie die Datei. Starten Sie anschließend "+ iptables-persistent +" neu, um den neuen Regelsatz anzuwenden.

sudo systemctl restart netfilter-persistent

Mit diesem Befehl können Sie jetzt überprüfen, ob die Regeln vorhanden sind.

sudo iptables -L

Ihre Ausgabe sieht folgendermaßen aus:

Iptables -L Ausgabe

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable

. . .

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Schritt 3 - Herunterladen und Überprüfen von OSSEC

OSSEC wird als komprimierter Tarball ausgeliefert. In diesem Schritt laden Sie es und seine Prüfsummendatei herunter, mit der überprüft wird, ob der Tarball manipuliert wurde. Sie können auf der Website des project nach der neuesten Version suchen. Zum Zeitpunkt dieser Veröffentlichung ist OSSEC 2.8.1 die neueste stabile Version.

Geben Sie zum Herunterladen des Tarballs Folgendes ein:

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz

Laden Sie anschließend die Prüfsummendatei mit herunter

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt

Überprüfen Sie nach dem Herunterladen beider Dateien die MD5-Summe des komprimierten Tarballs.

md5sum -c ossec-hids-2.8.1-checksum.txt

Die Ausgabe sollte sein:

md5sum Ausgabe

ossec-hids-2.8.1.tar.gz: OK
md5sum: WARNING: 1 line is improperly formatted

Überprüfen Sie anschließend die SHA1-Prüfsumme.

sha1sum -c ossec-hids-2.8.1-checksum.txt

Seine Ausgabe sollte sein:

sha1sum Ausgang

ossec-hids-2.8.1.tar.gz: OK
sha1sum: WARNING: 1 line is improperly formatted

Ignorieren Sie in jedem Fall die Zeile * WARNING *. Die Zeile * OK * bestätigt, dass die Datei fehlerfrei ist.

Schritt 4 - Installation von OSSEC

In diesem Schritt installieren wir OSSEC. Zunächst entpacken Sie es.

tar xf ossec-hids-2.8.1.tar.gz

Es wird in ein Verzeichnis mit dem Namen "+ ossec-hids-2.8.1 +" entpackt. Wechseln Sie in dieses Verzeichnis.

cd ossec-hids-2.8.1

Um den Fehler "+ / etc / hosts.deny " zu beheben, öffnen Sie die Datei " host-deny.sh " im Verzeichnis " / var / ossec / active-response +", nachdem Sie OSSEC aus dem heruntergeladenen Archiv extrahiert haben.

nano active-response/host-deny.sh

Suchen Sie am Ende der Datei nach zwei Zeilen im Code, die mit "+ TMP_FILE = " beginnen, und zwar unter dem Kommentar " # Deleting from hosts.deny ". Bearbeiten Sie beide Zeilen, um die Leerzeichen auf beiden Seiten des Zeichens " = +" zu entfernen, sodass der Codeblock so aussieht.

Modifizierter host-deny.sh Codeblock

# Deleting from hosts.deny
elif [ "x${ACTION}" = "xdelete" ]; then
  lock;

  if [ "X${TMP_FILE}" = "X" ]; then
    # Cheap fake tmpfile, but should be harder then no random data

  fi

Speichern und schließen Sie die Datei. Damit ist die Fehlerbehebung abgeschlossen.

Beginnen Sie als nächstes mit der Installation.

sudo ./install.sh

Während des Installationsvorgangs werden Sie aufgefordert, Eingaben zu machen. Sie werden zuerst aufgefordert, die Installationssprache auszuwählen, die standardmäßig Englisch (en) ist. Drücken Sie * ENTER *, wenn dies Ihre bevorzugte Sprache ist. Andernfalls geben Sie zuerst die 2 Buchstaben aus der Liste der unterstützten Sprachen ein. Drücken Sie dann erneut * ENTER *, um die Installation zu starten.

Frage 1 fragt * Welche Art von Installation möchten Sie (Server, Agent, lokaler, hybrider oder Hilfe)? *. Geben Sie * local * ein und drücken Sie * ENTER *.

Drücken Sie bei allen folgenden Fragen die EINGABETASTE, um die Standardeinstellung zu akzeptieren. Beachten Sie jedoch, dass Sie bei Frage 3.1 zur Eingabe Ihrer E-Mail-Adresse aufgefordert werden. Geben Sie es ein, und das Installationsprogramm verwendet es, um den entsprechenden SMTP-Server automatisch zu finden.

Wenn die Installation erfolgreich ist, sollten die letzten Zeilen der Ausgabe nach der Installation lauten:

OSSEC-Ausgabe für erfolgreiche Installation

- Configuration finished properly.

- To start OSSEC HIDS:
               /var/ossec/bin/ossec-control start

- To stop OSSEC HIDS:
               /var/ossec/bin/ossec-control stop

- The configuration can be viewed or modified at /var/ossec/etc/ossec.conf

. . .

Schritt 4 - Anpassen der E-Mail-Einstellungen von OSSEC

Hier überprüfen wir, ob die im vorherigen Schritt angegebenen und die von OSSEC automatisch konfigurierten E-Mail-Anmeldeinformationen korrekt sind.

Die E-Mail-Einstellungen befinden sich in der OSSEC-Hauptkonfigurationsdatei "+ ossec.conf " im Verzeichnis " / var / ossec / etc +". Um auf eine OSSEC-Datei zuzugreifen und diese zu ändern, müssen Sie zuerst zum Root-Benutzer wechseln.

sudo su

Wechseln Sie als Root in das Verzeichnis, in dem sich die OSSEC-Konfigurationsdatei befindet.

cd /var/ossec/etc

Erstellen Sie dann eine Sicherungskopie der Konfigurationsdatei.

cp ossec.conf ossec.conf.00

Öffnen Sie die Originaldatei mit dem Texteditor "+ nano +" oder Ihrem bevorzugten Texteditor.

nano ossec.conf

Die E-Mail-Einstellungen befinden sich oben in der Datei.

/var/ossec/etc/ossec.conf

<global>
   <email_notification>yes</email_notification>
   <email_to></email_to>
   <smtp_server></smtp_server>
   <email_from></email_from>
</global>
  • <email_to> * ist die E-Mail, die Sie während der Installation gesendet haben. Benachrichtigungen werden an diese E-Mail-Adresse gesendet. * <SMTP-Server> * ist der SMTP-Server, der vom Installationsskript automatisch erkannt wird. Sie müssen diese Werte nicht ändern.

  • <email_from> * ist die E-Mail-Adresse, von der die OSSEC-Benachrichtigungen stammen. Standardmäßig wird es basierend auf dem E-Mail-Benutzerkonto von OSSEC und dem Hostnamen des Servers erstellt. Sie sollten dies in eine gültige E-Mail-Adresse ändern, um die Wahrscheinlichkeit zu verringern, dass Ihre E-Mails vom SMTP-Server Ihres E-Mail-Anbieters als Spam gekennzeichnet werden. Beachten Sie, dass * <email_to> * und * <email_from> * identisch sein können, wenn auf dem empfangenden SMTP-Server keine strengen Spam-Richtlinien gelten.

Speichern und schließen Sie die Datei, nachdem Sie die E-Mail-Einstellungen geändert haben. Dann starten Sie OSSEC.

/var/ossec/bin/ossec-control start

Überprüfen Sie Ihren Posteingang auf eine E-Mail, die besagt, dass OSSEC gestartet wurde. Wenn Sie eine E-Mail von Ihrer OSSEC-Installation erhalten, wissen Sie, dass zukünftige Warnungen auch in Ihrem Posteingang ankommen. Wenn Sie dies nicht tun, überprüfen Sie Ihren Spam-Ordner.

Schritt 6 - Hinzufügen von Warnungen

Standardmäßig gibt OSSEC Warnungen zu Dateiänderungen und anderen Aktivitäten auf dem Server aus, aber keine Warnungen zu neuen Dateien und auch keine Warnungen in Echtzeit - erst nach dem geplanten System-Scan von 79200 Sekunden (oder 22 Sekunden) Stunden). In diesem Abschnitt werden wir OSSEC so ändern, dass es bei Dateizugriffen und in Echtzeit benachrichtigt werden kann.

Öffnen Sie zuerst + ossec.conf +.

nano ossec.conf

Scrollen Sie zum Abschnitt * <syscheck> *. Fügen Sie direkt unter dem Tag "+ <frequency> " " <alert \ _new \ _files> yes </ alert \ _new \ _files> +" hinzu.

<syscheck>

   <frequency>79200</frequency>

Sehen Sie sich die Liste der von OSSEC überwachten Systemverzeichnisse an, während Sie noch "+ ossec.conf " geöffnet haben. Diese befindet sich direkt unter der zuletzt von Ihnen geänderten Zeile. Fügen Sie beiden Verzeichnis-Tags " report_changes =" yes "realtime =" yes "+" hinzu.

<directories  check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories  check_all="yes">/bin,/sbin</directories>

Neben der Standardliste der Verzeichnisse, für deren Überwachung OSSEC konfiguriert wurde, können Sie auch alle zu überwachenden Verzeichnisse hinzufügen. Beispielsweise können Sie Ihr Basisverzeichnis hinzufügen. Fügen Sie dazu diese neue Zeile direkt unter den anderen Verzeichniszeilen ein und ersetzen Sie sie durch Ihren Benutzernamen.

<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>
</directories><^>

Speichern und schließen Sie nun + ossec.conf +.

Die nächste zu ändernde Datei befindet sich im Verzeichnis "+ / var / ossec / rules +". Wechseln Sie in dieses Verzeichnis.

cd /var/ossec/rules

Das Verzeichnis "+ / var / ossec / rules " enthält viele XML-Dateien, einschließlich " ossec_rules.xml ", das die Standardregeldefinitionen von OSSEC enthält, und " local_rules.xml +", in dem Sie benutzerdefinierte Regeln hinzufügen können.

In "+ ossec ruleset.xml" lautet die Regel, die beim Hinzufügen einer Datei zu einem überwachten Verzeichnis ausgelöst wird, "Regel 554". Standardmäßig sendet OSSEC keine Warnungen, wenn diese Regel ausgelöst wird. Daher besteht die Aufgabe hier darin, dieses Verhalten zu ändern. So sieht Regel 554 standardmäßig aus:

Regel 554 aus /var/ossec/rules/ossec_rules.xml

<rule id="554" level="0">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

OSSEC sendet keine Warnung, wenn eine Regel auf Stufe 0 festgelegt ist. Daher kopieren wir diese Regel in localrules.xml und ändern sie, um eine Warnung auszulösen. Öffnen Sie dazu localrules.xml