Tutorial

Überwachen von BGP-Ankündigungen und -Routen mit BGPalerter unter Ubuntu 18.04

Published on May 28, 2020
Deutsch
Überwachen von BGP-Ankündigungen und -Routen mit BGPalerter unter Ubuntu 18.04

Der Autor hat den COVID-19 Relief Fund dazu ausgewählt, eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

Einführung

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.

Voraussetzungen

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:

    • Einen Server, den Sie verwalten
    • Ihr Firmennetzwerk
    • Ihre lokale ISP

    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.

Schritt 1 - Identifizieren der zu überwachenden Netzwerke

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:

  1. sudo apt update
  2. 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:

  1. 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.

Output
AS | 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:

  1. 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:

Output
AS | 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:

  1. whois -h whois.cymru.com " -v as14061"

Die Ausgabe zeigt weitere Informationen zur AS:

Output
AS | 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.

Schritt 2 - Erstellen eines nicht privilegierten Benutzers für 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:

  1. 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:

  1. 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.

Schritt 3 — Installieren und Konfigurieren von BGPalerter

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:

  1. wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64

Markieren Sie die heruntergeladene Datei als ausführbar:

  1. chmod +x bgpalerter-linux-x64

Überprüfen Sie als Nächstes, ob BGPalerter erfolgreich heruntergeladen und installiert wurde, indem Sie die Versionsnummer überprüfen:

  1. ./bgpalerter-linux-x64 --version

Dadurch wird die aktuelle Versionsnummer ausgegeben:

Output
1.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:

  1. 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:

~/prefixes.yml
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:

  1. ./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:

Output
Impossible 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.

Schritt 4 - Interpretieren von BGPalerter-Warnungen

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:

Alert #1
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.

Alert #2
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.

Alert #3
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.

Alert #4
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.

Schritt 5 — Starten von BGPalerter beim Booten

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:

  1. crontab -e

Fügen Sie als Nächstes den folgenden Eintrag am Ende der crontab-Datei hinzu:

crontab
@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:

  1. logout

Fahren Sie dann mit einem normalen Systemneustart fort:

  1. 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:

  1. sudo su bgpalerter

Sie können dann jederzeit eine Verbindung zur Sitzung herstellen, um die Ausgabe von BGPalerter anzuzeigen:

  1. screen -r bgpalerter

In diesem letzten Schritt konfigurieren Sie BGPalerter so, dass es beim Booten ausgeführt wird.

Zusammenfassung

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.

Learn more about us


About the authors
Default avatar

Security Engineer

IT Security Engineer, technical writer and occasional blogger from the United Kingdom, with an interest in security defence and blue team activities.



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel