So installieren Sie Bro unter Ubuntu 16.04

Einführung

Bro ist ein Open-Source-Netzwerkanalyse-Framework und eine Sicherheitsüberwachungsanwendung. Es vereint einige der besten Funktionen von OSSEC und osquery. in einem schönen Paket.

Bro kann sowohl signatur- als auch verhaltensbasierte Analysen und Erkennungen durchführen. Der Großteil der Aufgaben besteht jedoch in verhaltensbasierten Analysen und Erkennungen. In der langen Liste der Funktionen von Bro sind folgende Funktionen enthalten:

  • Erkennen Sie Brute-Force-Angriffe auf Netzwerkdienste wie SSH und FTP

  • Führen Sie eine HTTP-Verkehrsüberwachung und -analyse durch

  • Erkennen Sie Änderungen in der installierten Software

  • Führen Sie eine SSL / TLS-Zertifikatüberprüfung durch

  • SQL-Injection-Angriffe erkennen

  • Führen Sie eine Dateiintegritätsüberwachung aller Dateien durch

  • Senden Sie Aktivitäts-, Zusammenfassungs- und Absturzberichte sowie Warnmeldungen per E-Mail

  • Geolokalisierung von IP-Adressen auf Stadtebene

  • Im eigenständigen oder verteilten Modus arbeiten

Bro kann von der Quelle oder über einen Paketmanager installiert werden. Die Installation von der Quelle aus ist aufwändiger, aber es ist die einzige Methode, die IP-Geolocation unterstützt, wenn die Geolocation-Bibliothek vor dem Kompilieren installiert wird.

Durch die Installation von Bro stehen dem System zusätzliche Befehle wie "+ bro " und " broctl " zur Verfügung. ` bro ` kann zur Analyse von Trace-Dateien und auch zur Live-Verkehrsanalyse verwendet werden; ` broctl +` ist das interaktive Shell- und Befehlszeilendienstprogramm zum Verwalten von eigenständigen oder verteilten Bro-Installationen.

In diesem Artikel installieren Sie Bro von der Quelle unter Ubuntu 16.04 im Standalone-Modus.

Voraussetzungen

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

Schritt 1 - Abhängigkeiten installieren

Bevor Sie Bro von der Quelle installieren können, müssen Sie seine Abhängigkeiten installieren.

Aktualisieren Sie zunächst die Paketdatenbank. Wenn Sie dies vor der Installation der Pakete nicht tun, kann dies zu Fehlern im Paketmanager führen.

sudo apt-get update

Zu den Abhängigkeiten von Bro gehören eine Reihe von Bibliotheken und Tools, z. B. Libpcap, OpenSSL und https://www.isc.org/. downloads / bind / [BIND8]. BroControl benötigt zusätzlich Python 2.6 oder höher. Da wir Bro aus dem Quellcode erstellen, benötigen wir einige zusätzliche Abhängigkeiten wie CMake, SWIG, https: // www.gnu.org/software/bison/[Bison] und einen C / C ++ - Compiler.

Sie können alle erforderlichen Abhängigkeiten auf einmal installieren:

sudo apt-get install bison cmake flex g++ gdb make libmagic-dev libpcap-dev libgeoip-dev libssl-dev python-dev swig2.0 zlib1g-dev

Nachdem die Installation abgeschlossen ist, müssen Sie im nächsten Schritt die Datenbanken herunterladen, die Bro für die IP-Geolocation verwendet.

Schritt 2 - Herunterladen einer GeoIP-Datenbank

Hier laden wir eine GeoIP-Datenbank herunter, von der Bro für die Geolokalisierung von IP-Adressen abhängig sein wird. Wir laden zwei komprimierte Dateien mit einer IPv4- und einer IPv6-Datenbank herunter, dekomprimieren sie und verschieben sie in das Verzeichnis "+ / usr / share / GeoIP +".

Laden Sie sowohl die IPv4- als auch die IPv6-Datenbank herunter.

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz

Dekomprimieren Sie beide Dateien, wodurch zwei Dateien mit den Namen "+ GeoLiteCity.dat " und " GeoLiteCityv6.dat +" in Ihrem Arbeitsverzeichnis abgelegt werden.

gzip -d GeoLiteCity.dat.gz
gzip -d GeoLiteCityv6.dat.gz

Wechseln Sie dann in das entsprechende Verzeichnis und benennen Sie sie dabei um.

sudo mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
sudo mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat

Mit der vorhandenen GeoIP-Datenbank können wir Bro im nächsten Schritt selbst installieren.

Schritt 3 - Bro From Source installieren

Um Bro von der Quelle zu installieren, müssen wir zuerst das Repository von GitHub klonen.

Git ist unter Ubuntu bereits standardmäßig installiert, sodass Sie das Repository mit dem folgenden Befehl klonen können. Die Dateien werden in einem Verzeichnis mit dem Namen "+ bro +" abgelegt.

git clone --recursive git://git.bro.org/bro

Wechseln Sie in das Projektverzeichnis.

cd bro

Führen Sie Bros Konfiguration aus, die weniger als eine Minute dauern sollte.

./configure

Verwenden Sie dann "+ make +", um das Programm zu erstellen. Dies kann je nach Server bis zu 20 Minuten dauern.

make

Sie sehen eine prozentuale Fertigstellung am Anfang der meisten Ausgabezeilen, während sie ausgeführt wird.

Wenn es fertig ist, installiere Bro, was weniger als eine Minute dauern sollte.

sudo make install

Bro wird im Verzeichnis + / usr / local / bro + installiert.

Nun müssen Sie das Verzeichnis "+ / usr / local / bro / bin" zu Ihrem "+ $ PATH" hinzufügen. Um sicherzustellen, dass es global verfügbar ist, geben Sie am besten den Pfad in einer Datei im Verzeichnis "+ / etc / profile.d " an. Wir nennen diese Datei " 3rd-party.sh +".

Erstellen und öffnen Sie "+ 3rd-party.sh +" mit Ihrem bevorzugten Texteditor.

sudo nano /etc/profile.d/3rd-party.sh

Kopieren Sie die folgenden Zeilen und fügen Sie sie ein. Die erste Zeile ist ein erklärender Kommentar, und die zweite Zeile stellt sicher, dass "+ / usr / local / bro / bin +" zum Pfad eines Benutzers im System hinzugefügt wird.

/etc/profile.d/3rd-party.sh

# Expand PATH to include the path to Bro's binaries

export PATH=$PATH:/usr/local/bro/bin

Speichern und schließen Sie die Datei und aktivieren Sie die Änderungen mit + source.

source /etc/profile.d/3rd-party.sh

Artefakte aus alten Einstellungen bleiben jedoch bestehen, sodass Sie sich zusätzlich abmelden und erneut anmelden können, um sicherzustellen, dass Ihr Pfad ordnungsgemäß geladen wird.

Nachdem Bro installiert ist, müssen wir einige Konfigurationsänderungen vornehmen, damit es ordnungsgemäß ausgeführt wird.

Schritt 4 - Bro konfigurieren

In diesem Schritt passen wir einige Dateien an, um sicherzustellen, dass Bro ordnungsgemäß funktioniert. Alle Dateien befinden sich im Verzeichnis + / usr / local / bro / etc + und sind:

  • + node.cfg +, mit dem konfiguriert wird, welche Knoten überwacht werden sollen.

  • + networks.cfg +, enthält eine Liste der Netzwerke in CIDR-Notation, die für den Knoten lokal sind.

  • + broctl.cfg +, das ist die globale BroControl-Konfigurationsdatei für Mail, Protokollierung und andere Einstellungen.

Schauen wir uns an, was in jeder Datei geändert werden muss.

Konfigurieren der zu überwachenden Knoten

Um die Knoten zu konfigurieren, die Bro überwachen wird, müssen wir die Datei + node.cfg + modifizieren.

Bro ist werkseitig für den Betrieb im Standalone-Modus konfiguriert. Da es sich um eine eigenständige Installation handelt, sollten Sie diese Datei nicht ändern müssen. Es empfiehlt sich jedoch zu überprüfen, ob die Werte korrekt sind.

Öffnen Sie die Datei zum Bearbeiten.

sudo nano /usr/local/bro/etc/node.cfg

Suchen Sie im Abschnitt "+ bro " nach dem Parameter " interface". Es ist standardmäßig "+ etho0 +" und dies sollte mit der öffentlichen Schnittstelle Ihres Ubuntu 16.04-Servers übereinstimmen. Ist dies nicht der Fall, aktualisieren Sie es unbedingt.

/usr/local/bro/etc/node.cfg

[bro]
type=standalone
host=localhost
interface=

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Wir konfigurieren die privaten Netzwerke, zu denen der Knoten als Nächstes gehört.

Konfigurieren der privaten Netzwerke des Knotens

In der Datei "+ networks.cfg +" konfigurieren Sie, zu welchen IP-Netzwerken der Knoten gehört (d. H. das IP-Netzwerk der Schnittstellen Ihres Servers, die Sie überwachen möchten).

Öffnen Sie zunächst die Datei.

sudo nano /usr/local/bro/etc/networks.cfg

Standardmäßig enthält die Datei die drei bereits konfigurierten privaten IP-Blöcke als Beispiel dafür, wie Ihre angegeben werden müssen.

/usr/local/bro/etc/networks.cfg

# List of local networks in CIDR notation, optionally followed by a
# descriptive tag.
# For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes.

10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space

Löschen Sie die vorhandenen drei Einträge und fügen Sie Ihre eigenen hinzu. Sie können "+ ip addr show" verwenden, um die Netzwerkadressen für Ihre Serverschnittstellen zu überprüfen. Die endgültige Version Ihrer + networks.cfg + sollte ungefähr so ​​aussehen:

Beispiel /usr/local/bro/etc/networks.cfg

         Public IP space
        Private IP space

Speichern und schließen Sie die Datei, wenn Sie mit der Bearbeitung fertig sind. Als Nächstes werden die Einstellungen für E-Mail und Protokollierung konfiguriert.

Konfigurieren der Mail- und Protokollierungseinstellungen

In der Datei "+ broctl.cfg +" konfigurieren Sie, wie BroControl seine E-Mail- und Protokollierungsverantwortlichkeiten handhabt. Die meisten Standardeinstellungen müssen nicht geändert werden. Sie müssen nur die Ziel-E-Mail-Adresse angeben.

Öffnen Sie die Datei zum Bearbeiten.

sudo nano /usr/local/bro/etc/broctl.cfg

Suchen Sie im Abschnitt * Mail-Optionen * oben in der Datei nach dem Parameter * MailTo * und ändern Sie ihn in eine gültige E-Mail-Adresse, die Sie steuern. Alle Bro-E-Mail-Benachrichtigungen werden an diese Adresse gesendet.

/usr/local/bro/etc/broctl.cfg

. . .
# Mail Options

# Recipient address for all emails sent out by Bro and BroControl.
MailTo =
. . .

Speichern und schließen Sie die Datei, wenn Sie mit der Bearbeitung fertig sind.

Dies ist die Konfiguration, die Bro benötigt. Jetzt können Sie BroControl zum Starten und Verwalten von Bro verwenden.

Schritt 5 - Bro mit BroControl verwalten

BroControl wird zum Verwalten von Bro-Installationen verwendet - Starten und Beenden des Dienstes, Bereitstellen von Bro und Ausführen anderer Verwaltungsaufgaben. Es ist sowohl ein Befehlszeilen-Tool als auch eine interaktive Shell.

Wenn + broctl + mit + sudo / usr / local / bro / bin / broctl + aufgerufen wird, wird die interaktive Shell gestartet:

OutputWelcome to BroControl 1.5-21

Type "help" for help.

[BroControl] >

Sie können die interaktive Shell mit dem Befehl + exit + verlassen.

Über die Shell können Sie jeden gültigen Bro-Befehl ausführen. Dieselben Befehle können auch direkt über die Befehlszeile ausgeführt werden, ohne die Shell aufzurufen. Das Ausführen der Befehle in der Befehlszeile ist oftmals ein nützlicherer Ansatz, da Sie die Ausgabe eines "+ broctl " - Befehls in einen Standard-Linux-Befehl umleiten können. Für den Rest dieses Schritts rufen wir die Befehle " broctl +" in der Befehlszeile auf.

Verwenden Sie zuerst "+ broctl deploy +", um Bro zu starten, und stellen Sie sicher, dass die von BroControl und Bro benötigten Dateien basierend auf den Konfigurationen in Schritt 4 auf den neuesten Stand gebracht werden.

sudo /usr/local/bro/bin/broctl deploy

Sie sollten diesen Befehl auch ausführen, wenn Änderungen an den Konfigurationsdateien oder Skripten vorgenommen werden.

Sie können den Bro-Status mit dem Befehl "+ status +" überprüfen.

sudo /usr/local/bro/bin/broctl status

Die Ausgabe sieht folgendermaßen aus. Neben "+ running " kann der Status auch " crashed " oder " stops +" sein.

OutputName         Type       Host          Status    Pid    Started
bro          standalone localhost     running   6807   12 Apr 05:42:50

Wenn Sie Bro neu starten müssen, können Sie + sudo / usr / local / bro / bin / broctl restart + verwenden.

Lassen Sie uns als Nächstes den Bro-Dienst robuster gestalten, indem wir a einrichten Cron-Job.

Schritt 6 - Cron für Bro konfigurieren

Bro verfügt nicht über eine Systemd-Servicedeskriptordatei, enthält jedoch ein Cron-Skript, das, falls aktiviert, Bro bei einem Absturz neu startet und andere Aufgaben ausführt, z. B. das Überprüfen auf ausreichenden Speicherplatz und das Entfernen abgelaufener Protokolldateien.

Bros Befehl "+ cron " ist standardmäßig aktiviert, Sie müssen jedoch einen Cron-Job installieren, der das Skript tatsächlich auslöst. Sie müssen zuerst eine Cron-Paketdatei für Bro in ` / etc / cron.d ` hinzufügen. Nach der Konvention wird diese Datei als " bro +" bezeichnet. Erstellen und öffnen Sie sie daher.

sudo nano /etc/cron.d/bro

Der Eintrag zum Kopieren und Einfügen in die Datei wird als nächstes angezeigt. Alle fünf Minuten wird Bros + cron + ausgeführt. Wenn es feststellt, dass Bro abgestürzt ist, wird es neu gestartet.

/etc/cron.d/bro

*/5 * * * * root /usr/local/bro/bin/broctl cron

Sie können das "+ 5 +" im obigen Befehl ändern, wenn Sie möchten, dass es öfter ausgeführt wird.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Wenn der Cron-Job aktiviert ist, sollten Sie eine E-Mail erhalten, die besagt, dass ein Verzeichnis für die Statistikdatei unter "+ / usr / local / bro / logs / stats " erstellt wurde. Sei dir bewusst, dass Bro tatsächlich abstürzen muss (d. H. kurzerhand gestoppt werden), damit dies funktioniert. Es wird nicht funktionieren, wenn Sie Bro selbst mit BroControls ` stop +` anmutig stoppen.

Um zu testen, ob es funktioniert, müssen Sie entweder den Server neu starten oder einen der Bro-Prozesse beenden. Wenn Sie den Neustart ausführen, wird Bro fünf Minuten nach Abschluss des Neustarts durch den Server neu gestartet. Um den anderen Ansatz zu verwenden, müssen Sie zunächst eine der Prozess-IDs von Bro abrufen.

ps aux | grep bro

Beenden Sie dann einen der Prozesse.

sudo kill -9

Wenn Sie dann den Status überprüfen mit:

sudo /usr/local/bro/bin/broctl status

Die Ausgabe zeigt, dass es abgestürzt ist.

OutputName         Type       Host          Status    Pid    Started
bro          standalone localhost     crashed

Rufen Sie denselben Befehl einige Minuten später auf, und die Ausgabe zeigt an, dass er wieder ausgeführt wird.

Wenn Bro vollständig arbeitet, sollten Sie ungefähr jede Stunde eine Zusammenfassung der E-Mails mit interessanten Aktivitäten erhalten, die auf der Benutzeroberfläche erfasst wurden. Sollte es jemals abstürzen und neu starten, erhalten Sie eine E-Mail mit der Meldung, dass es nach einem Absturz gestartet wurde. Schauen wir uns im nächsten und letzten Schritt einige andere wichtige Dienstprogramme von Bro an.

Schritt 7 - Verwenden von "+ bro ", " bro-cut +" und "Bro Policy Scripts"

+ bro + und + bro-cut + sind die beiden anderen Hauptbefehle, die mit Bro geliefert werden. Mit + bro + können Sie Live-Verkehr erfassen und mit anderen Tools erfasste Tracedateien analysieren. + bro-cut + ist ein benutzerdefiniertes Tool zum Lesen und Abrufen von Daten aus Bro-Protokollen.

Der Befehl zum Erfassen des Live-Verkehrs mit "+ bro " hat das Format " sudo / usr / local / bro / bin / bro -i ". Sie müssen mindestens angeben, von welcher Schnittstelle der Datenverkehr erfasst werden soll. "+" bezieht sich auf Richtlinienskripten, die definieren, welche Bro-Prozesse ausgeführt werden. Sie müssen kein Skript oder keine Skripte angeben, sodass der Befehl auch wie folgt aussehen kann: "+ sudo / usr / local / bro / bin / bro -i +".

Da "+ bro " viele Dateien aus einer einzelnen Erfassungssitzung in das Arbeitsverzeichnis erstellt, ist es am besten, einen " bro " - Erfassungsbefehl in einem Verzeichnis aufzurufen, das nur für diese Erfassungssitzung erstellt wurde. Das folgende Beispiel zeigt eine lange Liste (` ls -l +`) der Dateien, die während einer Live-Verkehrserfassungssitzung erstellt wurden.

Outputtotal 152
-rw-r--r-- 1 root root   277 Apr 14 09:20 capture_loss.log
-rw-r--r-- 1 root root  4711 Apr 14 09:20 conn.log
-rw-r--r-- 1 root root  2614 Apr 14 04:49 dns.log
-rw-r--r-- 1 root root 25168 Apr 14 09:20 loaded_scripts.log
-rw-r--r-- 1 root root   253 Apr 14 09:20 packet_filter.log
-rw-r--r-- 1 root root   686 Apr 14 09:20 reporter.log
-rw-r--r-- 1 root root   708 Apr 14 04:49 ssh.log
-rw-r--r-- 1 root root   793 Apr 14 09:20 stats.log
-rw-r--r-- 1 root root   373 Apr 14 09:20 weird.log

Sie können jetzt versuchen, einen der Erfassungsbefehle auszuführen. Nachdem Sie es ein wenig laufen gelassen haben, verwenden Sie "+ STRG + C ", um die " bro " - Erfassungssitzung zu beenden. Sie können jedes mit ` bro-cut ` lesen, indem Sie einen Befehl wie ` cat | verwenden / usr / local / bro / bin / bro-cut -C -d + `.

Fazit

Dieser Artikel hat Sie mit Bro bekannt gemacht und erklärt, wie Sie es von der Quelle aus eigenständig installieren können. Sie haben auch gelernt, wie Sie die IPv4- und IPv6-GeoIP-Datenbanken von MaxMind installieren, die Bro zum geografischen Auffinden von IP-Adressen auf Stadtebene verwendet. Für diesen eigenständigen Installationsmodus haben Sie auch gelernt, wie Sie relevante Aspekte der Konfigurationsdateien ändern, mit "+ broctrl " verwalten, " bro " verwenden, um den Live-Verkehr zu erfassen, und " bro-cut +", um das Ergebnis auszugeben und zu lesen Protokolldateien.

Weitere Informationen zur Verwendung von Bro finden Sie unter project’s documentation site.