Extreme Networks-Switch-Logs erfassen

Parserversion:2.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Switch-Logs von Extreme Networks mit dem Bindplane-Agent in Google Security Operations aufnehmen.

Extreme Networks-Switches generieren Syslog-Nachrichten für Änderungen des Portstatus, SLPP-Ereignisse, Nutzerauthentifizierung, VLAN-Vorgänge und Systemereignisse. Der Parser extrahiert Felder aus Syslog im RFC-5424-Format und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Extreme Networks-Switch
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf die CLI des Extreme Networks-Switches

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:

  • Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
  • Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud Console an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM und Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B. Bindplane agent log ingestion.
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern.
  12. Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Konfiguration des Exporters.

Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profil auf.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING (WIRD AUSGEFÜHRT) angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als active (running) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agenten.

Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/extreme_switch:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: EXTREME_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/extreme_switch_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/extreme_switch
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf dem gelauscht werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zuzuhören (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur JSON-Schlüsseldatei des Dienstkontos (Option 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kundennummer, die aus der Google SecOps-Konsole kopiert wurde
    • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.
    • project: Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM & Verwaltung > Einstellungen.
    • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.

Legacy-Ingestion-API-Exporter

  • Wenn Sie die Datei zur Authentifizierung bei der Aufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie creds_file_path auf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/extreme_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EXTREME_SWITCH
        raw_log_field: body
    

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:

    sudo systemctl restart observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Dienstkonsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Rechtsklicken Sie und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Prüfen Sie die Logs auf Fehler:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Syslog auf Extreme Networks-Switch konfigurieren

  1. Melden Sie sich über die Befehlszeile oder die Konsole beim Switch an.
  2. Geben Sie den Befehl „configure“ ein, um auf die globale Konfigurationsebene zuzugreifen:

    device# configure terminal
    
  3. Geben Sie den Befehl für die Syslog-Server-IP-Adresse ein, um einen Syslog-Server hinzuzufügen:

    • Ersetzen Sie <bindplane_ip> durch die tatsächliche IP-Adresse des Bindplane-Agents.
    logging syslog-server <bindplane_ip>
    
  4. Geben Sie den Formatierungsbefehl ein, um das RFC-5424-Format für Nachrichten zu konfigurieren:

    format RFC-5424
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
account_type target.user.user_role Wenn account_type „Administrative“ oder „admin“ ist, legen Sie „ADMINISTRATOR“ fest. Andernfalls ordnen Sie target.user.attribute.roles.name zu.
application target.application Direkt zugeordnet.
attr additional.fields Geparsed, um die WWN zu extrahieren und ein Schlüssel/Wert-Paar mit dem Schlüssel „wwn“ und der extrahierten WWN als Stringwert zu erstellen.
class additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „class“ und dem Wert des Felds class als Stringwert.
Cause additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Cause“ und dem Wert des Felds Cause als Stringwert. Leeres Objekt wird erstellt, wenn keine spezifischen Authentifizierungsfelder vorhanden sind.
Info security_result.summary Direkt zugeordnet.
interface additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „interface“ und dem Wert des Felds interface als Stringwert.
ip principal.ip Direkt zugeordnet.
intermediary_ip intermediary.ip Direkt zugeordnet.
kv_data Verschiedene Wird verwendet, um Schlüssel/Wert-Paare zu extrahieren und sie anhand des Schlüssels verschiedenen UDM-Feldern zuzuordnen. Beispiel: VrIpAddr wird intermediary.ip zugeordnet, IP und Addr werden principal.ip zugeordnet, SlppRxPort wird principal.port zugeordnet und verschiedene rc*-Felder werden security_result.detection_fields zugeordnet.
log_data Verschiedene Wird geparst, um Informationen zu Nutzeranmeldungen, ‑abmeldungen und anderen Ereignissen zu extrahieren. Wird verwendet, um Felder wie principal.ip, principal.resource.name, target.user.userid, target.application, security_result.summary, security_result.description und metadata.description auszufüllen.
log_type additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „log“ und dem Wert des Felds log_type als Stringwert.
message Verschiedene Der ursprüngliche Logeintrag. Wird geparst, um verschiedene Felder zu extrahieren. Der Zeitstempel wird entweder aus dem Feld timestamp (falls vorhanden und im Format „JJJJ-MM-TTTHH:mm:ss“) oder aus dem Feld message mithilfe von Grok-Mustern extrahiert. Wenn er aus dem Nachrichtenfeld extrahiert wird, ist es der Zeitstempel im Logeintrag selbst. Wird anhand der Flags has_principal, has_target, user_login und user_logout bestimmt. Kann „USER_LOGIN“, „USER_LOGOUT“, „STATUS_UPDATE“ oder „GENERIC_EVENT“ sein. Aus dem Feld msgid zugeordnet. Statischer Wert: „EXTREME_SWITCH“. Zugeordnet aus dem Feld ver. Statischer Wert: „EXTREME_SWITCH“.
msgid metadata.product_log_id Direkt zugeordnet.
port principal.port Direkt zugeordnet und in eine Ganzzahl konvertiert.
protocol additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Protocol“ und dem Wert des Felds protocol als String-Wert.
rcPortVLacpAdminEnable security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcPortVLacpAdminEnable“ und dem zugehörigen Wert.
rcSyslogHostAddress principal.hostname Direkt zugeordnet.
rcSyslogHostAddressType security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostAddressType“ und dem zugehörigen Wert.
rcSyslogHostEnable security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostEnable“ und seinem Wert.
rcSyslogHostFacility security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostFacility“ und seinem Wert.
rcSyslogHostMapErrorSeverity security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostMapErrorSeverity“ und dem zugehörigen Wert.
rcSyslogHostMapFatalSeverity security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostMapFatalSeverity“ und seinem Wert.
rcSyslogHostMapInfoSeverity security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostMapInfoSeverity“ und dem zugehörigen Wert.
rcSyslogHostMapWarningSeverity security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostMapWarningSeverity“ und seinem Wert.
rcSyslogHostRowStatus security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostRowStatus“ und seinem Wert.
rcSyslogHostSeverity security_result.detection_fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „rcSyslogHostSeverity“ und seinem Wert.
resource principal.resource.name Direkt zugeordnet.
sec_description security_result.description Direkt zugeordnet.
seqnum additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „seqnum“ und dem Wert des Felds seqnum als Stringwert.
session_id network.session_id Direkt zugeordnet.
severity security_result.severity Mit Konvertierung zugeordnet: „CRITICAL“, „ERROR“ und „HIGH“ werden direkt zugeordnet; „INFO“ wird „INFORMATIONAL“ zugeordnet; „WARNING“ wird „MEDIUM“ zugeordnet; „LOW“, „MEDIUM“ und „INFORMATIONAL“ werden direkt zugeordnet.
SlppIncomingVlanId additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „SlppIncomingVlanId“ und dem Wert des Felds SlppIncomingVlanId als Stringwert.
SlppRxVlan additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „SlppRxVlan“ und dem Wert des Felds SlppRxVlan als Stringwert.
SlppSrcMacAddress principal.mac Direkt zugeordnet.
Status additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Status“ und dem Wert des Felds Status als Stringwert.
swname additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „swname“ und dem Wert des Felds swname als Stringwert.
timestamp metadata.event_timestamp Geparsed und in ein Zeitstempelobjekt konvertiert.
tz additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „tz“ und dem Wert des Felds tz als Stringwert.
Type additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Type“ und dem Wert des Felds Type als Stringwert.
username target.user.userid Direkt zugeordnet.
ver metadata.product_version Direkt zugeordnet.
VrId additional.fields Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „VrId“ und dem Wert des Felds VrId als Stringwert.
protocol", "VrId", "SlppRxVlan", "SlppIncomingVlanId", "Type", "Cause additional.fields Aus Änderungsprotokoll zugeordnet
ver metadata.version Aus Änderungsprotokoll zugeordnet
rcPortVLacpAdminEnable", "rcSyslogHostMapFatalSeverity", "rcSyslogHostMapWarningSeverity", "rcSyslogHostRowStatus", "rcSyslogHostFacility", "rcSyslogHostAddressType", "rcSyslogHostMapErrorSeverity", "rcSyslogHostMapInfoSeverity", "rcSyslogHostSeverity", "rcSyslogHostEnable security_result.detection_fields Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten