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 local
rules.xml