CLI: Herstellen der Verbindung zu einem Service

Document created by RSA Information Design and Development on May 9, 2018
Version 1Show Document
  • View in full screen mode
 

Wenn Sie eine Verbindung zu einem Security Analytics Core-Service (Decoder, Concentrator, Broker, Archiver usw.) herstellen und dann mit diesem interagieren möchten, müssen Sie zunächst den Befehl login ausführen. Sie benötigen ein Konto für den Service. Sie können jederzeit „type help login“ eingeben, um weitere Informationen zu erhalten. Die Syntax des Befehls login lautet wie folgt:

 login <hostname>:<port>[:ssl] <username> [password]

Beispiel: login 10.10.1.15:56005:ssl someuser

Wenn Sie das Passwort nicht eingeben, wird es angefordert und das entsprechende Passwort-Masking wird durchgeführt.

Wenn Sie die richtige Vertrauenseinstellung zwischen NwConsole und dem Endpunkt eingerichtet haben, können Sie den Befehl tlogin verwenden und müssen kein Passwort eingeben. Das Einrichten der Vertrauenseinstellungen geht über den Umfang dieser Dokumentation hinaus, aber es umfasst das Hinzufügen des SSL-Zertifikats von NwConsole auf dem Endpunkt über den Befehl send /sys peerCert op=add --file-data=<pathname of cert>. Bevor Sie ein Peer-Zertifikat für nachfolgende vertrauenswürdige Anmeldungen hinzufügen können, müssen Sie zunächst eine normale Anmeldung mit den entsprechenden Berechtigungen durchführen.

Sobald die Verbindung hergestellt ist, können Sie über ein virtuelles Dateisystem mit dem Endpunktservice interagieren. Anstelle von Dateien werden die Nodes des Services angezeigt. Bei einigen Nodes handelt es sich um Ordner mit untergeordneten Nodes, die eine hierarchische Struktur bilden. Jeder Node dient einem Zweck und alle unterstützen eine Untergruppe von Befehlen wie info und help. Die Meldung help gibt Informationen über die Befehle zurück, die jeder Node unterstützt. Wenn Sie sich das erste Mal anmelden, befinden Sie sich auf dem Stamm-Node. Dabei handelt es sich um den Pfad /, genau wie auf einem Linux- oder Mac-System. Geben Sie zum Anzeigen einer Liste von Nodes unter / den Befehl ls ein.

Alle Services verfügen über Nodes wie sys und logs. Für die Interaktion mit der /logs-API können Sie zunächst den Befehl help an den /logs-Node senden. Dafür müssen Sie die Meldung send mit der folgenden Syntax verwenden:

 Usage: send {node pathname} {message name} [name=value [name=value]]

[--file-data=<pathname>] [--string-data=<text>] [--binary-data=<text>]
[--output-pathname=<pathname>] [--output-append-pathname=<pathname>]
[--output-format={text,json,xml,html}]
Sends a command to a remote pathname. For remote help, use "send <pathname>help" for details.

pathname - The node pathname to retrieve information on
message - The command (message) to send
parameters - Zero or more name=value parameters for the command
--file-data - Loads data from a file and send as either a BINARY
message or as a PARAMS_BINARY message if other
parameters exist
--string-data - Sends text as a STRING message type
--binary-data - Send text as either a BINARY message type or as a
PARAMS_BINARY message type if other parameters
exist
--output-pathname - Writes the response output to the given pathname,
overwriting any existing file
--output-append-pathname - Writes the response output to the given pathname,
will append output to an existing file
--output-format - Writes the response in one of the given formats,
the default is text

Wenn Sie eine help-Meldung senden möchten, senden Sie also Folgendes:

send /logs help

Und Ihre Antwort würde wie folgt aussehen:

  description: A container node for other node types
security.roles: everyone,logs.manage
message.list: The list of supported messages for this node
ls: [depth:<uint32>] [options:<string>] [exclude:<string>]
mon: [depth:<uint32>] [options:<uint32>]
pull: [id1:<uint64>] [id2:<uint64>] [count:<uint32>] [timeFormat:<string>]
info:
help: [msg:<string>] [op:<string>] [format:<string>]
count:
stopMon:
download: [id1:<uint64>] [id2:<uint64>] [time1:<date-time>] [time2:<date-time>] op:<string>
[logTypes:<string>] [match:<string>] [regex:<string>] [timeFormat:<string>] [batchSize:<uint32>]
timeRoll: [timeCalc:<string>] [minutes:<uint32>] [hours:<uint32>] [days:<uint32>] [date:<string>]

Um weitere Informationen über eine bestimmte Nachricht oder einen Befehl zu erhalten, können Sie den msg=<message name> bei dem Hilfebefehl als Parameter angeben. So rufen Sie z. B. die Hilfe zur Meldung pull auf:

send /logs help msg=pull

  pull: Downloads N log entries
security.roles: logs.manage
parameters:
id1 - <uint64, optional> The first log id number to retrieve, this is mutually exclusive with id2
id2 - <uint64, optional> The last log id number that will be sent, defaults to most recent log
message when id1 or id2 is not sent
count - <uint32, optional, {range:1 to 10000}> The number of logs to pull
timeFormat - <string, optional, {enum-one:posix|simple}> The time format used in each log message,
default is posix time (seconds since 1970)

Die integrierte Hilfemeldung gibt zurück, dass dieser Befehl die letzten n Protokolleinträge abruft, wenn Sie id1 und id2 deaktiviert lassen. So zeigen Sie die letzten 10 Protokolleinträge dieses Service an:

send /logs pull count=10 timeFormat=simple

Fast alle Befehle auf dem Service weisen dieses einfache Format auf. Die einzigen Befehle, bei denen dies nicht der Fall ist, sind diejenigen, die kompliziertere Handshakes erfordern, wie das Importieren eines PCAP in einen Decoder. Verwenden Sie zum Importieren eines PCAP den NwConsole-Befehl import, der das komplizierte Kommunikationskanal-Handshaking übernimmt.

Einige Parameter sind spezifisch für den NwConsole-Befehl send und werden nicht an den Service gesendet. Sie können diese Parameter verwenden, um das Ausgabeformat der Antwort zu ändern, die Antwort in eine Datei zu schreiben oder eine Datei vom lokalen Computer zu lesen und an den Service zu senden. Die lokalen Parameter für den NwConsole-Befehl send beginnen alle mit zwei Bindestrichen (--).

  • --output-format: Dieser Parameter ändert die normale Ausgabe des Befehls von Klartext in einen der folgenden Typen: JSON, XML oder HTML.
  • --output-pathname: Statt die Ausgabe auf dem Terminal zu schreiben, wird diese in den angegebenen Pfadnamen geschrieben (kürzt vorhandene Dateien).
  • --output-append-pathname: Dies entspricht --output-pathname mit dem Unterschied, dass die Ausgabe an eine vorhandene Datei angehängt wird (oder die Datei erstellt wird, wenn sie nicht vorhanden ist).
  • --file-data: Liest in einer Datei und verwendet diese als Befehlsnutzlast. Dies ist nützlich für Befehle wie /sys fileEdit. Das folgende Beispiel zeigt, wie Sie eine aktualisierte index-concentrator-custom.xml-Datei mithilfe von NwConsole senden können:
 send /sys fileEdit op=put filename=index-concentrator-custom.xml --file-data="/Users/user/Documents/index-concentrator-custom.xml"
  • --file-format: Dieser Parameter zwingt NwConsole beim Lesen einer Eingabedatei mit --file-data, die Datei als einen bestimmten Eingabetyp zu interpretieren. Die folgenden Enumeration sind zulässig: binary, params, param-list, string und params-binary. Beispiel: Um eine Datei mit Anwendungsregeln (*.nwr) an einen Decoder zu senden, können Sie folgenden Befehl verwenden:
send /decoder/config/rules/application replace --file-data=/path/rules.nwr --file-format=param-list
  • --string-data: Sendet die Befehlsnutzdaten als Zeichenfolge anstelle einer Liste von Parametern.
  • --binary-data: Sendet die Befehlsnutzdaten als Binärdaten anstelle einer Liste von Parametern.

Beispiel-Streaming-Abfrage zu einer JSON-Datei (möglicherweise großer Ergebnissatz):

 send /sdk query size=0 query="select * where service=80 && time='2015-03-05 13:00:00'-'2015-03-05 13:59:59'" --output-format=json --output-pathname=/tmp/query.json 

Beim Befehl „send“ sollte beachtet werden, dass es standardmäßig zu einem Timeout von 30 Sekunden beim Warten auf eine Antwort kommt. Bei einigen Befehlen (wie der obigen Abfrage) dauert es möglicherweise länger, bis Ergebnisse empfangen werden. Um einen vorzeitigen clientseitigen Timeout zu vermeiden, können Sie den Befehltimeout [secs] verwenden, um die Wartezeit erhöhen. Beispiel: timeout 600 würde 10 Minuten auf eine Antwort warten, bevor es zu einem Timeout kommt. Nach der Ausführung wird das für alle nachfolgenden Befehle wirksam.

Um in der virtuellen Node-Hierarchie des Services zu navigieren, können Sie den Befehl cd wie in einer Befehls-Shell verwenden. Dies deckt die Grundlagen des Verbindens und der Interaktion mit einem Service ab. Sobald die Verbindung besteht, können Sie mit dem Befehl help alle Befehle auflisten lassen, die Sie zur Interaktion mit dem Endpunkt verwenden können. Diese Befehle werden nicht angezeigt, wenn Sie nicht mit einem Endpunkt verbunden sind.

You are here
Table of Contents > CLI: Herstellen der Verbindung zu einem Service

Attachments

    Outcomes