Der Autor hat den COVID-19 Relief Fund dazu ausgewählt, eine Spende im Rahmen des Programms Write for DOnations zu erhalten.
BGP (Border Gateway Protocol) ist eines der Kernprotokolle, die für das Weiterleiten von Paketen über das Internet verantwortlich sind. Wenn es also schief geht, können erhebliche Ausfälle auftreten. Beispielsweise hat ein kleiner ISP im Jahr 2019 eine BGP-Fehlkonfiguration vorgenommen, die sich leider im Upstream verbreitet und große Teile von Cloudflare und AWS über eine Stunde lang offline geschaltet hat. Ein Jahr zuvor fand außerdem ein BGP-Hijack statt, um den Datenverkehr zu einem bekannten Kryptowährungs-Wallet-Anbieter abzufangen und die Gelder ahnungsloser Kunden zu stehlen.
BGPalerter ist ein Open-Source-Tool zur Überwachung des BGP-Netzwerks, das Echtzeit-Warnungen zu BGP-Aktivitäten, einschließlich Routensichtbarkeit und Ankündigungen neuer Routen, sowie potenziell schädliche Aktivitäten wie Routen-Hijacking oder Routenlecks bereitstellen kann. BGPalerter nimmt automatisch öffentlich verfügbare Netzwerkroutinginformationen auf, was bedeutet, dass es keinen privilegierten Zugriff oder keine Integration in die Netzwerke haben muss, die Sie überwachen möchten.
Hinweis: BGPalerter nimmt automatisch öffentlich verfügbare Netzwerkroutinginformationen auf, was bedeutet, dass es keinen privilegierten Zugriff oder keine Integration in die Netzwerke haben muss, die Sie überwachen möchten. Alle Überwachungen entsprechen vollständig dem Gesetz über Computermissbrauch, dem Gesetz über Computerbetrug und -missbrauch und anderen ähnlichen Gesetzen. Es wird jedoch empfohlen, relevante Ergebnisse dem betroffenen Netzwerkbetreiber verantwortungsbewusst mitzuteilen.
In diesem Tutorial installieren und konfigurieren Sie BGPalerter, um Ihre wichtigen Netzwerke auf potenziell verdächtige Aktivitäten zu überwachen.
Um diesem Tutorial zu folgen, benötigen Sie:
Einen Ubuntu 18.04-Server, der gemäß der Ersteinrichtung eines Servers unter Ubuntu 18.04 eingerichtet wurde, einschließlich eines sudo non-root users.
Ein oder mehrere Netzwerke oder Geräte, die Sie überwachen möchten, zum Beispiel:
Für jedes Gerät oder Netzwerk müssen Sie entweder die individuelle IP-Adresse, den IP-Adressbereich oder die Nummer des autonomen Systems angeben, zu der es gehört. Dies ist in Schritt 1 abgedeckt.
Sobald Sie diese zur Verfügung haben, melden Sie sich zunächst als non-root user auf Ihrem Server an.
In diesem Schritt sehen Sie die relevanten Details der Netzwerke, die Sie überwachen möchten.
BGPalerter kann anhand einzelner IP-Adressen oder Netzwerkpräfixe überwachen. Es kann auch ganze Netzwerke anhand ihrer AS-Nummer (Autonomous System) überwachen. Dies ist eine global eindeutige Kennung für ein Netzwerk, das einer bestimmten Verwaltungseinheit gehört.
Um diese Informationen zu finden, können Sie den Suchdienst IP-to-ASN WHOIS verwenden, der vom Bedrohungsnachrichtendienst Team Cymru bereitgestellt wird. Dies ist ein benutzerdefinierter WHOIS-Server, mit dem IP-Adressen und Netzwerkroutinginformationen abgerufen werden können.
Wenn Sie whois
noch nicht installiert haben, können Sie es mit den folgenden Befehlen installieren:
- sudo apt update
- sudo apt install whois
Sobald Sie die Installation von whois
bestätigt haben, wird nun die IP-Adresse Ihres eigenen Servers anhand des Arguments -h
angezeigt, um einen benutzerdefinierten Server anzugeben:
- whois -h whois.cymru.com your-ip-address
Dies gibt ein Ergebnis ähnlich dem folgenden aus, das den AS-Namen und die AS-Nummer anzeigt, zu der Ihr Server gehört. Dies ist normalerweise der AS Ihres Server-Hosting-Anbieters, z. B. DigitalOcean.
OutputAS | IP | AS Name
14061 | your-ip-address | DIGITALOCEAN-ASN, US
Als Nächstes können Sie eine Suche durchführen, um das Netzwerkpräfix/den Netzwerkbereich zu ermitteln, zu dem Ihr Server gehört. Dazu fügen Sie Ihrer Anfrage das Argument -p
hinzu:
- whois -h whois.cymru.com " -p your-ip-address"
Die Ausgabe ist dem vorherigen Befehl sehr ähnlich, zeigt jedoch jetzt das IP-Adresspräfix an, zu dem die IP-Adresse Ihres Servers gehört:
OutputAS | IP | BGP Prefix | AS Name
14061 | your-ip-address | 157.230.80.0/20 | DIGITALOCEAN-ASN, US
Schließlich können Sie weitere Details des AS nachschlagen, zu dem Ihr Server gehört, einschließlich der geografischen Region und des Zuordnungsdatums.
Ersetzen Sie die AS-Nummer, die Sie mit den vorherigen Befehlen identifiziert haben. Mit dem Argument -v
aktivieren Sie die ausführliche Ausgabe, um sicherzustellen, dass alle relevanten Details angezeigt werden:
- whois -h whois.cymru.com " -v as14061"
Die Ausgabe zeigt weitere Informationen zur AS:
OutputAS | CC | Registry | Allocated | AS Name
14061 | US | arin | 2012-09-25 | DIGITALOCEAN-ASN, US
Sie haben wichtige Details zu den Netzwerken identifiziert, die Sie überwachen möchten. Notieren Sie sich diese Details irgendwo, da Sie sie später benötigen. Als Nächstes beginnen Sie mit der Einrichtung von BGPalerter.
In diesem Schritt erstellen Sie ein neues nicht privilegiertes Benutzerkonto für BGPalerter, da das Programm nicht mit sudo-/root-Berechtigungen ausgeführt werden muss.
Erstellen Sie zunächst einen neuen Benutzer mit einem deaktivierten Passwort:
- sudo adduser --disabled-password bgpalerter
Sie müssen weder ein Passwort noch SSH-Schlüssel einrichten, da Sie diesen Benutzer nur als Dienstkonto zum Ausführen/Verwalten von BGPalerter verwenden.
Melden Sie sich mit su
beim neuen Benutzer an:
- sudo su bgpalerter
Sie werden jetzt als neuer Benutzer angemeldet:
bgpalerter@droplet:/home/user$
Verwenden Sie den Befehl cd
, um in das Ausgangsverzeichnis Ihres neuen Benutzers zu wechseln:
bgpalerter@droplet:/home/user$ cd
bgpalerter@droplet:~$
Sie haben einen neuen nicht privilegierten Benutzer für BGPalerter erstellt. Als Nächstes installieren und konfigurieren Sie BGPalerter auf Ihrem System.
In diesem Schritt installieren und konfigurieren Sie BGPalerter. Stellen Sie sicher, dass Sie als Ihr neuer nicht privilegierter Benutzer noch angemeldet sind.
Zuerst müssen Sie die neueste Version von BGPalerter identifizieren, um sicherzustellen, dass Sie die aktuellste Version herunterladen. Navigieren Sie zur Seite BGPalerter Releases und kopieren Sie den Download-Link für die neueste Linux x64-Version.
Sie können jetzt eine Kopie von BGPalerter mit wget
herunterladen und dabei sicherstellen, dass Sie den richtigen Download-Link verwenden:
- wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64
Markieren Sie die heruntergeladene Datei als ausführbar:
- chmod +x bgpalerter-linux-x64
Überprüfen Sie als Nächstes, ob BGPalerter erfolgreich heruntergeladen und installiert wurde, indem Sie die Versionsnummer überprüfen:
- ./bgpalerter-linux-x64 --version
Dadurch wird die aktuelle Versionsnummer ausgegeben:
Output1.24.0
Bevor Sie BGPalerter ordnungsgemäß ausführen können, müssen Sie die Netzwerke, die Sie überwachen möchten, in einer Konfigurationsdatei definieren. Erstellen und öffnen Sie die Datei prefixes.yml
in Ihrem bevorzugten Texteditor:
- nano ~/prefixes.yml
In dieser Konfigurationsdatei geben Sie jede der einzelnen IP-Adressen, IP-Adressbereiche und AS-Nummern an, die Sie überwachen möchten.
Fügen Sie das folgende Beispiel hinzu und passen Sie die Konfigurationswerte mithilfe der in Schritt 1 angegebenen Netzwerkinformationen nach Bedarf an:
your-ip-address/32:
description: My Server
asn:
- 14061
ignoreMorespecifics: false
157.230.80.0/20:
description: IP range for my Server
asn:
- 14061
ignoreMorespecifics: false
options:
monitorASns:
'14061':
group: default
Sie können beliebig viele IP-Adressbereiche oder AS-Nummern überwachen. Um einzelne IP-Adressen zu überwachen, stellen Sie sie mit /32
für IPv4 und /128
für IPv6 dar.
Der Wert ignoreMorespecifics
wird verwendet, um zu steuern, ob BGPalerter Aktivitäten für Routen ignorieren soll, die spezifischer (kleiner) sind als die, die Sie überwachen. Wenn Sie beispielsweise eine /20
überwachen und eine Routingänderung für eine /24
darin festgestellt wird, wird dies als spezifischer angesehen. In den meisten Fällen möchten Sie diese nicht ignorieren. Wenn Sie jedoch ein großes Netzwerk mit mehreren delegierten Kundenpräfixen überwachen, kann dies dazu beitragen, Hintergrundgeräusche zu reduzieren.
Sie können BGPalerter jetzt zum ersten Mal ausführen, um mit der Überwachung Ihrer Netzwerke zu beginnen:
- ./bgpalerter-linux-x64
Wenn BGPalerter erfolgreich gestartet wird, wird eine Ausgabe ähnlich der folgenden angezeigt. Beachten Sie, dass es manchmal einige Minuten dauern kann, um die Überwachung zu beginnen:
OutputImpossible to load config.yml. A default configuration file has been generated.
BGPalerter, version: 1.24.0 environment: production
Loaded config: /home/bgpalerter/config.yml
Monitoring 157.230.80.0/20
Monitoring your-ip-address/32
Monitoring AS 14061
BGPalerter wird so lange ausgeführt, bis Sie es mit Strg + C
stoppen.
Im nächsten Schritt interpretieren Sie einige der Warnungen, die BGPalerter generieren kann.
In diesem Schritt werden einige beispielhafte BGPalerter-Warnungen überprüft. BGPalerter gibt Warnungen an den Hauptausgabe-Feed und optional an zusätzliche Berichtsendpunkte aus, die in config.yml
konfiguriert werden können, wie in der BGPalerter-Dokumentation beschrieben.
Standardmäßig überwacht und alarmiert BGPalerter Folgendes:
Routen-Hijacks: treten auf, wenn eine AS ein Präfix ankündigt, das nicht zulässig ist, wodurch der Datenverkehr fälschlicherweise weitergeleitet wird. Dies kann entweder ein absichtlicher Angriff oder ein versehentlicher Konfigurationsfehler sein.
Verlust der Routensichtbarkeit: Eine Route wird als sichtbar angesehen, wenn die meisten BGP-Router im Internet zuverlässig darauf routen können. Ein Verlust der Sichtbarkeit bezieht sich darauf, dass Ihr Netzwerk möglicherweise nicht verfügbar ist, z. B. wenn Ihr BGP-Peering nicht mehr funktioniert.
Neue Unterpräfixankündigungen: Wenn eine AS beginnt, ein Präfix anzukündigen, das kleiner ist als erwartet. Dies kann auf eine beabsichtigte Konfigurationsänderung, eine versehentliche Fehlkonfiguration oder in einigen Fällen auf einen Angriff hinweisen.
Aktivität innerhalb Ihrer AS: bezieht sich normalerweise auf neue Routenankündigungen. Eine Route wird als „neu“ angesehen, wenn BGPalerter noch nichts von ihr weiß.
Im Folgenden finden Sie einige Beispielwarnungen sowie eine kurze Beschreibung ihrer Bedeutung:
The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540
Diese Warnung zeigt Hinweise auf einen Routen-Hijack, bei dem AS64496 203.0.113.0/24
angekündigt hat, wenn erwartet wird, dass diese Route von AS65540 angekündigt wird. Dies ist ein starker Indikator für eine Fehlkonfiguration, die zu einem Routenleck oder zu absichtlichem Hijacking durch einen Angreifer führt.
The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers
Diese Warnung zeigt an, dass das Netzwerk 203.0.113.0/24
nicht mehr sichtbar ist. Dies kann an einem Upstream-Routing-Problem liegen oder an einem Stromausfall eines Routers.
A new prefix 203.0.113.0/25 is announced by AS64496. It should be instead 203.0.113.0/24 announced by AS64496
Diese Warnung zeigt an, dass ein spezifischeres Präfix angekündigt wurde, wenn es nicht erwartet wird, z. B. indem eine /25
angekündigt wird, wenn nur eine /24
erwartet wird. Dies ist höchstwahrscheinlich eine Fehlkonfiguration, kann jedoch in einigen Fällen ein Hinweis auf einen Routen-Hijack sein.
AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of announced prefixes
Schließlich zeigt diese Warnung, dass AS64496 ein Präfix angekündigt hat, über das BGPalerter noch nichts weiß. Dies kann daran liegen, dass Sie zu Recht ein neues Präfix ankündigen, oder an einer Fehlkonfiguration, die dazu führt, dass Sie versehentlich ein Präfix ankündigen, das einer anderen Person gehört.
In diesem Schritt haben Sie einige Beispiel-BGPalerter-Warnungen überprüft. Als Nächstes konfigurieren Sie BGPalerter so, dass es beim Booten automatisch ausgeführt wird.
In diesem letzten Schritt konfigurieren Sie BGPalerter so, dass es beim Booten ausgeführt wird.
Stellen Sie sicher, dass Sie weiterhin als Ihr neuer nicht privilegierter Benutzer angemeldet sind, und öffnen Sie dann den crontab-Editor:
- crontab -e
Fügen Sie als Nächstes den folgenden Eintrag am Ende der crontab-Datei hinzu:
@reboot sleep 10; screen -dmS bgpalerter "./bgpalerter-linux-x64"
Bei jedem Systemstart wird eine getrennte Bildschirmsitzung
mit dem Namen ‘bgpalerter’ erstellt und BGPalerter darin gestartet.
Speichern und schließen Sie den crontab-Editor. Vielleicht möchten Sie Ihr System jetzt neu starten, um sicherzustellen, dass BGPalerter beim Booten richtig startet.
Sie müssen sich zuerst von Ihrem BGPalerter-Benutzer abmelden:
- logout
Fahren Sie dann mit einem normalen Systemneustart fort:
- sudo reboot
Melden Sie sich nach dem Neustart Ihres Systems erneut bei Ihrem Server an und verwenden Sie su
, um erneut auf Ihren BGPalerter-Benutzer zuzugreifen:
- sudo su bgpalerter
Sie können dann jederzeit eine Verbindung zur Sitzung herstellen, um die Ausgabe von BGPalerter anzuzeigen:
- screen -r bgpalerter
In diesem letzten Schritt konfigurieren Sie BGPalerter so, dass es beim Booten ausgeführt wird.
In diesem Artikel haben Sie BGPalerter eingerichtet und damit Netzwerke auf Änderungen des BGP-Routings überwacht.
Wenn Sie BGPalerter benutzerfreundlicher gestalten möchten, können Sie es so konfigurieren, dass Warnungen über einen Webhook an einen Slack-Kanal gesendet werden:
Wenn Sie mehr über BGP selbst erfahren möchten, aber keinen Zugriff auf eine Produktions-BGP-Umgebung haben, können Sie DN42 verwenden, um mit BGP in einer sicheren, isolierten Umgebung zu experimentieren:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!