One place for hosting & domains

      BGPalerter

      Ü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:

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

      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:

      • 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:

      • 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:

      • 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:

      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:

      • 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:

      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:

      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:

      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:

      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:

      Fahren Sie dann mit einem normalen Systemneustart fort:

      Melden Sie sich nach dem Neustart Ihres Systems erneut bei Ihrem Server an und verwenden Sie su, um erneut auf Ihren BGPalerter-Benutzer zuzugreifen:

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

      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:



      Source link

      Cómo monitorear los anuncios y las rutas de BGP utilizando BGPalerter en Ubuntu 18.04


      El autor seleccionó el COVID-19 Relief Fund para que reciba una donación como parte del programa Write for DOnations.

      Introducción

      BGP (Protocolo de puerta de enlace de borde) es uno de los protocolos principales responsable de redirigir paquetes a través de Internet; por lo tanto, si presenta errores, se pueden producir interrupciones importantes. Por ejemplo, en 2019, un pequeño proveedor de servicios de Internet hizo una mala configuración de BGP que, lamentablemente, se propagó de manera ascendente y dejó importantes partes de Cloudflare y AWS sin conexión durante más de una hora.  Además, hace un año, se realizó un ataque a BGP para interceptar el tráfico a un proveedor de monederos de criptomonedas y robar los fondos de clientes desprevenidos.

      BGPalerter es una herramienta de monitoreo de la red de BGP de código abierto que puede proporcionar alertas en tiempo real sobre la actividad de BGP, incluso la visibilidad de rutas y los anuncios de nuevas rutas, así como actividades potencialmente nefastas, como intercepciones o fugas en las rutas. BGPalerter ingiere automáticamente la información de redireccionamiento de la red disponible públicamente, lo que significa que no necesita tener ningún nivel de acceso con privilegios ni integración en las redes que quiere controlar.

      Nota: BGPalerter ingiere automáticamente la información de redireccionamiento de la red disponible públicamente, lo que significa que no necesita tener ningún nivel de acceso con privilegios ni integración en las redes que quiere controlar. Todo el monitoreo cumple plenamente con la Ley de Uso Indebido de Computadoras (Computer Misuse Act), la Ley de Fraude y Abuso de Computadoras (Computer Fraud and Abuse Act), y otras leyes similares.  Sin embargo, se recomienda revelar de forma responsable cualquier hallazgo relevante al operador de la red afectado.

      En este tutorial, instalará y configurará BGPalerter para monitorear sus redes importantes, a fin de detectar actividades potencialmente sospechosas.

      Requisitos previos

      Para completar este tutorial, necesitará lo siguiente:

      Para cada dispositivo o red, necesitará identificar la dirección IP individual, el intervalo de la dirección IP o el número de sistema autónomo del que es parte. Esto se abarca en el paso 1.

      Una vez que tenga todo esto listo, inicie sesión en su servidor como non-root user.

      Paso 1: Identificar las redes que se quieren monitorear

      En este paso, identificará los detalles pertinentes de las redes que quiere monitorear.

      BGPalerter puede monitorear sobre la base de direcciones IP individuales o prefijos de red. También puede monitorear redes enteras sobre la base de su número de sistema autónomo (AS), que es un identificador global único de una red propiedad de una entidad administrativa en particular.

      Para encontrar esta información, puede utilizar el servicio de búsqueda IP-to-ASN de WHOIS, proporcionado por el servicio de inteligencia de amenazas Team Cymru. Se trata de un servidor de WHOIS personalizado diseñado para buscar información de dirección IP y enrutamiento de red.

      Si no tiene whois instalado, puede instalarlo usando el siguiente comando:

      • sudo apt update
      • sudo apt install whois

      Una vez que haya confirmado que whois está instalado, comience por realizar una búsqueda de la dirección IP de su propio servidor, utilizando el argumento -h para especificar un servidor personalizado:

      • whois -h whois.cymru.com your-ip-address

      Esto generará un resultado similar al siguiente, que muestra el nombre y el número de AS del que su servidor es parte. Normalmente, será el AS de su proveedor de alojamiento del servidor, por ejemplo, DigitalOcean.

      Output

      AS | IP | AS Name 14061 | your-ip-address | DIGITALOCEAN-ASN, US

      A continuación, puede realizar una búsqueda para identificar el prefijo de la red o el intervalo del que su servidor es parte. Para hacerlo, agregue el argumento -p a su solicitud:

      • whois -h whois.cymru.com " -p your-ip-address"

      El resultado será muy similar al comando anterior, pero, ahora, mostrará el prefijo de dirección IP al que pertenece la dirección IP de su servidor:

      Output

      AS | IP | BGP Prefix | AS Name 14061 | your-ip-address | 157.230.80.0/20 | DIGITALOCEAN-ASN, US

      Por último, puede buscar más detalles del AS del que forma parte su servidor, incluyendo la región geográfica y la fecha de asignación.

      Sustituya el número de AS que identificó usando los comandos anteriores. Utiliza el argumento -v para habilitar el resultado detallado, lo que garantiza que se muestren todos los detalles relevantes:

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

      El resultado mostrará más información sobre el AS:

      Output

      AS | CC | Registry | Allocated | AS Name 14061 | US | arin | 2012-09-25 | DIGITALOCEAN-ASN, US

      identificó detalles clave sobre las redes que quiere monitorear. Tome nota de estos detalles en algún lugar, ya que los necesitará más adelante. A continuación, comenzará a configurar BGPalerter.

      Paso 2: Crear un usuario sin privilegios para BGPalerter

      En este paso, creará una nueva cuenta de usuario sin privilegios para BGPalerter, dado que el programa no necesita ejecutarse con privilegios sudo/root.

      Primero, cree un usuario nuevo con contraseña deshabilitada:

      • sudo adduser --disabled-password bgpalerter

      No necesita configurar una contraseña o una clave de SSH, dado que solo utilizará este usuario como una cuenta de servicio para ejecutar/mantener BGPalerter.

      Inicie sesión con el usuario nuevo utilizando su:

      Ahora, está conectado con su usuario nuevo:

      bgpalerter@droplet:/home/user$
      

      Utilice el comando cd para dirigirse al directorio de inicio de su usuario nuevo:

      bgpalerter@droplet:/home/user$ cd
      bgpalerter@droplet:~$
      

      Creó un usuario sin privilegios nuevo para BGPalerter. A continuación, instalará y configurará BGPalerter en su sistema.

      Paso 3: Instalar y configurar BGPalerter

      En este paso, instalará y configurará BGPalerter. Asegúrese de seguir conectado con su usuario sin privilegios nuevo.

      Primero, debe identificar la última versión de BGPalerter, a fin de asegurarse de descargar la más reciente. Diríjase a la página de Lanzamientos de BGPalerter y copie el enlace de descarga de la versión de Linux x64 más reciente.

      Ahora, puede descargar una copia de BGPalerter usando wget, asegurándose de sustituir el enlace de descarga correcto:

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

      Una vez que el archivo haya terminado de descargarse, márquelo como ejecutable:

      • chmod +x bgpalerter-linux-x64

      A continuación, compruebe que BGPalerter se haya descargado e instalado correctamente comprobando el número de la versión:

      • ./bgpalerter-linux-x64 --version

      Esto dará como resultado el número de la versión actual:

      Output

      1.24.0

      Para poder ejecutar BGPalerter adecuadamente, deberá definir las redes que desea monitorear en un archivo de configuración. Cree y abra el archivo prefixes.yml en su editor de texto favorito:

      En este archivo de configuración, especificará cada una de las direcciones IP individuales, los intervalos de dirección IP y los números de AS que quiere monitorear.

      Añada el siguiente ejemplo y ajuste los valores de configuración según sea necesario usando la información de la red que identificó en el paso 1:

      ~/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
      

      Puede monitorear todos los intervalos de dirección IP o números de AS que quiera. Para monitorear direcciones IP individuales, represéntelas utilizando /32 para IPv4 y /128 para IPv6.

      El valor ignoreMorespecifics se utiliza para determinar si BGPalerter debe ignorar la actividad de las rutas más específicas (pequeñas) que la que está monitoreando. Por ejemplo, si está monitoreando /20 y se detecta un cambio de enrutamiento para /24 en su interior, se considera que es más específica. En la mayoría de los casos, no es recomendable ignorarlas si está monitoreando una red grande con varios prefijos de cliente delegados, sin embargo, puede ayudar a reducir interferencias de fondo.

      Ahora, puede ejecutar BGPalerter por primera vez para comenzar a monitorear sus redes:

      Si BGPalerter se inicia correctamente, verá un resultado similar al siguiente. Tenga en cuenta que, a veces, el monitoreo puede tardar unos minutos en iniciarse:

      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 se seguirá ejecutando hasta que lo detenga usando Ctrl+C.

      En el siguiente paso, interpretará algunas de las alertas que BGPalerter puede generar.

      Paso 4: Interpretar alertas de BGPalerter

      En este paso, revisará algunas alertas de BGPalerter de ejemplo. BGPalerter emitirá alertas en la fuente de salida principal, y también, de forma opcional, en cualquier otro extremo de información que pueda configurarse dentro de config.yml, como se describe en la documentación de BGPalerter.

      De manera predeterminada, BGPalerter monitorea y alerta sobre lo siguiente:

      • Intercepciones de ruta: se produce cuando un AS anuncia un prefijo que no está permitido, lo que provoca que el tráfico se enrute de forma errónea. Puede ser un ataque deliberado o un error de configuración accidental.

      • Pérdida de visibilidad de la ruta: una ruta se considera visible cuando la mayoría de los enrutadores de BGP de Internet pueden redirigir de forma fiable hacia ella. La pérdida de visibilidad significa que su red no está disponible, por ejemplo, si su emparejamiento de BGP ha dejado de funcionar.

      • Nuevos anuncios de subprefijos: sucede cuando un AS comienza a anunciar un prefijo que es más pequeño de lo que se espera. Esto puede indicar un cambio de configuración previsto, un error de configuración accidental o, en algunos casos, un ataque.

      • Actividad en su AS: normalmente, se refiere a anuncios de rutas nuevas. Una ruta se considera “nueva” si BGPalerter todavía no la conoce.

      A continuación, se presentan algunas alertas de ejemplo, junto con una descripción breve de su significado:

      Alert #1

      The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540
      

      Esta alerta muestra pruebas de una intercepción de la ruta, donde AS64496 anunció 203.0.113.0/24 cuando se esperaba que se anuncie AS65540. Esto es un claro indicio de un error de configuración que conduce a una fuga de la ruta o a una intercepción deliberada de un atacante.

      Alert #2

      The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers
      

      Esta alerta indica que la red 203.0.113.0/24 ya no está visible. Esto puede deberse a un problema de enrutamiento previo o a un fallo de energía en un enrutador.

      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
      

      Esta alerta indica que se anunció un prefijo más específico en un caso en el que no estaba previsto, por ejemplo, si se anunció /25 cuando se esperaba /24. Es muy probable que esto sea un error de configuración, sin embargo, en algunos casos, puede indicar la intercepción de la ruta.

      Alert #4

      AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of announced prefixes
      

      Por último, esta alerta indica que AS64496 anunció un prefijo que BGPalerter todavía no conoce. Esto podría deberse a que usted está anunciando legítimamente un nuevo prefijo o podría ser un indicio de un error de configuración que haya provocado que anunciara accidentalmente un prefijo propiedad de otra persona.

      En este paso, revisó algunas alertas de BGPalerter de ejemplo. A continuación, configurará BGPalerter para que se ejecute de forma automática en el arranque.

      Paso 5: Iniciar BGPalerter en el arranque

      En este último paso, configurará BGPalerter para que se ejecute en el arranque.

      Asegúrese de seguir conectado con su usuario sin privilegios nuevo y, luego, abra el editor de crontab:

      Luego, añada la siguiente línea a la parte inferior del archivo de crontab:

      crontab

      @reboot sleep 10; screen -dmS bgpalerter "./bgpalerter-linux-x64"
      

      Cada vez que su sistema se arranque, esto creará una sesión screen separada denominada ‘bgpalerter’ en la que se iniciará BGPalerter.

      Guarde y salga del editor de crontab. Ahora, es conveniente que reinicie su sistema para asegurarse de que BGPalerter se inicie correctamente en el arranque.

      Primero, cierre la sesión de su usuario de BGPalerter:

      Luego, proceda con un reinicio normal del sistema:

      Una vez que su sistema se haya reiniciado, vuelva a iniciar sesión en su servidor y utilice su para volver a acceder a su usuario de BGPalerter:

      Luego, puede unirse a la sesión en cualquier momento para ver el resultado de BGPalerter:

      En este último paso, configuró BGPalerter para que se ejecute en el arranque.

      Conclusión

      En este artículo, configuró BGPalerter y lo utilizó para monitorear cambios de enrutamiento de BGP en las redes.

      Si quiere hacer que BGPalerter sea más fácil de usar, puede configurarlo para que envíe alertas a un canal de slack a través de un webhook:

      Si quiere obtener más información sobre BGP, pero no tiene acceso a un entorno de producción de BGP, puede utilizar DN42 para realizar pruebas con BGP en un entorno seguro y aislado:



      Source link

      Мониторинг объявлений и мероприятий по BGP при помощи BGPalerter в Ubuntu 18.04


      Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      BGP (таблица пограничного межсетевого протокола) — один из ключевых протоколов, отвечающих за маршрутизацию пакетов через Интернет, поэтому когда он работает неправильно, могут возникать серьезные перебои с Интернетом. Например, в 2019 году небольшой интернет-провайдер создал неправильную конфигурацию BGP, которая, к сожалению, распространилась на более высокие уровни и вывела большие сегменты Cloudflare и AWS оффлайн более чем на час. Кроме того, годом ранее был осуществлен захват BGP, чтобы перехватить трафик к известному провайдеру криптовалютных кошельков и похитить средства ничего не подозревающих клиентов.

      BGPalerter — сетевое средство мониторинга с открытым исходным кодом, которое может предоставлять уведомления в реальном времени об активности BGP, включая видимость маршрутов и новые сообщения о маршрутах, а также потенциально опасную деятельность — например, перехваты маршрутов или утечки маршрутов. BGPalerter автоматически принимает общедоступную информацию о маршрутизации, т.е. ему не нужен какой-либо уровень привилегированного доступа или интеграции с сетью/сетями, которые вы хотите отслеживать.

      Примечание: BGPalerter автоматически принимает общедоступную информацию о маршрутизации, т.е. ему не нужен какой-либо уровень привилегированного доступа или интеграции с сетью/сетями, которые вы хотите отслеживать. Весь мониторинг полностью соответствует Закону о компьютерных злоупотреблениях, Закону о мошенничестве с использованием компьютеров и иным аналогичным законам. Тем не менее, рекомендуется ответственно относиться к передаче любой соответствующей информации пострадавшему сетевому оператору.

      В этом обучающем руководстве вы установите и настроите BGPalerter для мониторинга ваших важных сетей на предмет потенциально подозрительной деятельности.

      Предварительные требования

      Для данного обучающего руководства вам потребуется следующее:

      • Сервер Ubuntu 18.04, настроенный согласно руководству по первоначальной настройке сервера с Ubuntu 18.04, включая пользователя non-root user с привилегиями sudo.

      • Одна или несколько сетей и устройств, которые вы хотите отслеживать, например:

        • Ваш сервер
        • Сеть вашей компании
        • Ваш локальный интернет-провайдер

      Для каждого устройства или сети вам потребуется идентифицировать либо отдельный IP-адрес, диапазон IP-адресов, либо номер автономной системы в этом диапазоне. Эти действия рассматриваются в шаге 1.

      Подготовив все вышеперечисленное, войдите на сервер в качестве non-root user, чтобы начать подготовку.

      Шаг 1 — Определение сетей для мониторинга

      На этом шаге вы узнаете соответствующие данные о сетях, которые вы хотите отслеживать.

      BGPalerter может выполнять мониторинг на основе отдельных IP-адресов или сетевых префиксов. Он также может отслеживать целые сети на основе номера автономной системы — уникального в глобальном масштабе идентификатора сети, принадлежащего конкретному административному объекту.

      Для нахождения этой информации вы можете использовать службу пооиска IP-to-ASN WHOIS, которую предоставляет служба разведки угроз Team Cymru. Это пользовательский сервер WHOIS, предназначенный для просмотра IP-адресов и информации о сетевой маршрутизации.

      Если у вас не установлен whois, вы можете сделать это с помощью следующих команд:

      • sudo apt update
      • sudo apt install whois

      Как только вы убедились, что whois установлен, начните с поиска IP-адресов вашего собственного сервера с помощью аргумента -h для указания настраиваемого сервера:

      • whois -h whois.cymru.com your-ip-address

      Это выведет примерно следующий результат, где указано имя и номер AS, в котором находится ваш сервер. Как правило, это будет AS вашего хостинг-провайдера — например, DigitalOcean.

      Output

      AS | IP | AS Name 14061 | your-ip-address | DIGITALOCEAN-ASN, US

      Далее вы можете выполнить поиск для определения префикса/диапазона сети, в которой находится ваш сервер. Это можно сделать, добавив к запросу аргумент -p:

      • whois -h whois.cymru.com " -p your-ip-address"

      Вывод будет очень похож на предыдущую команду, но теперь он будет показывать префикс IP-адреса, к которому относится IP-адрес вашего сервера:

      Output

      AS | IP | BGP Prefix | AS Name 14061 | your-ip-address | 157.230.80.0/20 | DIGITALOCEAN-ASN, US

      В итоге, вы сможете найти дополнительные сведения об AS, в котором находится ваш сервер, включая географический регион и дату распределения.

      Подставьте номер AS, который вы определили с помощью предыдущих команд. Вы используете аргумент -v для активации вывода подробной информации с отображением всех соответствующих данных:

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

      При этом будет показана дополнительная информация об AS:

      Output

      AS | CC | Registry | Allocated | AS Name 14061 | US | arin | 2012-09-25 | DIGITALOCEAN-ASN, US

      Вы определили ключевую информацию о сетях, которые вы хотите отслеживать. Запишите эти данные, т.к. они потребуются вам позднее. Далее вы начнете настройку BGPalerter.

      Шаг 2 — Создание непривилегированного пользователя для BGPalerter

      На этом шаге вы создадите новую учетную запись непривилегированного пользователя для BGPalerter, т.к. для работы этой программы не требуются права sudo/root.

      Сначала создайте нового пользователя с отключенным паролем:

      • sudo adduser --disabled-password bgpalerter

      Вам не нужно настраивать пароль или ключи SSH, поскольку вы будете использовать этого пользователя только в качестве служебной учетной записи для работы/обслуживания BGPalerter.

      Войдите под именем нового пользователя с помощью команды su:

      Вы вошли как новый пользователь:

      bgpalerter@droplet:/home/user$
      

      Используйте команду cd для перехода в домашнюю директорию нового пользователя:

      bgpalerter@droplet:/home/user$ cd
      bgpalerter@droplet:~$
      

      Вы создали нового непривилегированного пользователя для BGPalerter. Далее вы установите и настроите BGPalerter в своей системе.

      Шаг 3 — Установка и настройка BGPalerter

      На этом шаге вы установите и настроите BGPalerter. Убедитесь, что вы все еще в системе под именем своего нового непривилегированного пользователя.

      Сначала вам нужно определить последний выпуск BGPalerter, чтобы убедиться, что вы загружаете актуальную версию. Перейдите на страницу Выпуски BGPalerter и скопируйте ссылки на загрузку самой последней версии Linux x64.

      Теперь вы можете загрузить копию BGPalerter с помощью wget, если подставите правильную ссылку на загрузку:

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

      Когда файл загрузится, отметьте его как исполняемый:

      • chmod +x bgpalerter-linux-x64

      Затем убедитесь, что BGPalerter загружен и успешно установлен, сверив номер версии:

      • ./bgpalerter-linux-x64 --version

      В результате будет выведен текущий номер версии:

      Output

      1.24.0

      Чтобы корректно запустить BGPalerter, необходимо сначала определить сети, которые вы хотите отслеживать в файле конфигурации. Создайте и откройте файл prefixes.yml в предпочитаемом текстовом редакторе:

      В этом файле конфигурации вы укажете каждый пользовательский IP-адрес, диапазоны IP-адресов и номера AS, которые вы хотите отслеживать.

      Добавьте следующий пример и измените значения конфигурации, как необходимо, используя сетевую информацию, которую вы определили на шаге 1:

      ~/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
      

      Вы можете отслеживать столько диапазонов IP-адресов или номеров AS, сколько захотите. Чтобы отслеживать отдельные IP-адреса, указывайте /32 для IPv4 и /128 для IPvv6.

      Значение ignoreMorespecifics используется, чтобы контролировать, должен ли BGPalerter игнорировать деятельность на маршрутах, более специфичных (меньших) по сравнению с тем, который вы отслеживаете. Например, если вы отслеживаете /20, и изменение маршрутизации обнаружено в нем для /24, то это считается более специфичным маршрутом. В большинстве случаев их не нужно игнорировать, но если вы отслеживаете большую сеть с несколькими префиксами делегированных пользователей, то это может снизить фоновый шум.

      Теперь вы можете запустить BGPalerter в первый раз, чтобы начать отслеживать свои сети:

      Если BGPalerter запущен успешно, то вы увидите примерно следующий результат. Обратите внимание, что запуск мониторинга может занять несколько минут:

      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 будет продолжать работать, пока вы не остановите его нажатием Ctrl+C.

      На следующем шаге вы перейдете к интерпретации некоторых предупреждений, которые может создавать BGPalerter.

      Шаг 4 — Интерпретация интерфейсов BGPalerter

      На этом шаге вы рассмотрите несколько типовых предупреждений BGPalerter. BGPalerter будет выдавать предупреждения в основном потоке выдачи, а также, опционально, в любые дополнительные конечные точки отчетности, которые можно настроить в файле config.yml, как указано в документации BGPalerter.

      По умолчанию BGPalerter отслеживает и предупреждает о следующем:

      • Route hijacks: выдается в случае, когда AS объявляет запрещенный префикс, вызывая ошибочную маршрутизацию трафика. Это может быть либо преднамеренным нападением, либо случайной ошибки в конфигурации.

      • Потеря видимости маршрута: маршрут считается видимым, когда большинство маршрутизаторов BGP в Интернете может надежно создавать маршруты к нему. Потеря видимости указывает на потенциальную недоступность вашей сети — например, если ваш BGP peering прекращает работать.

      • Новые объявления субпрефиксов заключаются в том, что AS начинает объявлять префикс, который меньше ожидаемого. Это может свидетельствовать об изменении целевой конфигурации, случайной ошибочной конфигурации или, в некоторых случаях — о нападении.

      • Деятельность в рамках вашего AS: обычно используется для новых сообщений о маршрутах. Трафик считается «новым», если BGPalerter еще не знает о нем.

      Ниже представлены некоторые примеры предупреждений, а также краткое описание их значения:

      Alert #1

      The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540
      

      Это предупреждение свидетельствует о захвате маршрута, т.к. AS64496 объявил 203.013.0/24, хотя ожидается, что этот маршрут будет объявлен AS65540. Это надежный показатель ошибочной конфигурации, приводящей к утечке маршрута, либо преднамеренного захвата злоумышленником.

      Alert #2

      The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers
      

      Это предупреждение говорит о том, что сеть 203.013.0/24 стала невидимой. Это может быть связано с проблемой исходящей маршрутизации, либо произошел сбой питания маршрутизатора.

      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
      

      Это предупреждение показывает, что был объявлен более специфичный префикс там, где это не ожидалось — например, /25, когда ожидалось только /24. Скорее всего, это ошибочная конфигурация, но в некоторых случаях это может свидетельствовать о захвате маршрута.

      Alert #4

      AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of announced prefixes
      

      Помимо этого, данное предупреждение показывает, что AS64496 объявил префикс, который BGPalerter еще не знает. Это может быть связано с тем, что вы обоснованно объявляете новый префикс, или может говорить об ошибочной конфигурации, из-за которой вы случайно объявили чужой префикс.

      На этом шаге вы рассмотрели несколько примеров предупреждений BGPalerter. Далее вы настроите BGPalerter для автоматического запуска во время начальной загрузки.

      Шаг 5 — Запуск BGPalerter во время начальной загрузки

      На этом последнем шаге вы настроите BGPalerter для запуска во время начальной загрузки.

      Убедитесь, что вы все еще в системе под именем нового непривилегированного пользователя, затем откройте crontab:

      Добавьте следующую строку внизу файла crontab:

      crontab

      @reboot sleep 10; screen -dmS bgpalerter "./bgpalerter-linux-x64"
      

      При каждой загрузке системы будет создаваться отдельная экранная сессия с именем bgpalerter, в которой будет запускаться BGPalerter.

      Сохраните изменения и закройте редактор crontab. Теперь можно перезагрузить систему, чтобы убедиться, что BGPalerter корректно запускается во время начальной загрузки.

      Сначала нужно выйти из вашего пользователя BGPalerter:

      Затем перезагрузите систему, как обычно:

      После перезагрузки системы снова войдите на сервер и при помощи su еще раз получите доступ к вашему пользователю BGPalerter:

      Затем можно в любой момент присоединиться к сессии для просмотра вывода BGPalerter:

      На этом последнем шаге вы настроили BGPalerter для запуска во время начальной загрузки.

      Заключение

      В этой статье вы настроили BGPalerter и использовали его для отслеживания сетей с целью внесения изменений в маршрутизацию BGP.

      Если хотите сделать BGPalerter более удобным для пользователя, то можно настроить его для отправки предупреждений через канал Slack посредством веб-хука:

      Если хотите узнать больше о самой системе BGP, но у нас нет доступа к производственной среде BGP, то вам может пригодиться DN42 для экспериментов с BGP в безопасной изолированной среде:



      Source link