CLI: Establecimiento de conexión con un servicio

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

Para conectarse e interactuar con un servicio Security Analytics Core (Decoder, Concentrator, Broker, Archiver, etc.), primero debe emitir el comando login. Debe tener una cuenta en ese servicio. Puede ingresar type help en cualquier momento para obtener más información. Esta es la sintaxis del comando login:

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

Por ejemplo: login 10.10.1.15:56005:ssl someuser

Si no incluye la contraseña, se le solicita y se realiza el enmascaramiento de contraseña adecuado.

Si configuró confianza adecuada entre NwConsole y el terminal, puede usar el comando tlogin y evitar tener que ingresar una contraseña. La configuración de confianza va más allá del alcance de esta documentación, pero implica agregar certificados SSL de NwConsole al terminal mediante el comando send /sys peerCert op=add file-data=<pathname of cert>. Primero debe usar un inicio de sesión normal con los permisos correctos para poder agregar un certificado de par para los inicios de sesión de confianza posteriores.

Una vez conectado, puede interactuar con el servicio del terminal mediante un sistema de archivos virtual. En lugar de archivos, lo que puede ver son los nodos de ese servicio. Algunos nodos son carpetas que tienen nodos secundarios, lo cual forma una estructura jerárquica. Cada nodo tiene un propósito y todos ellos son compatibles con un subconjunto de comandos como info y help. El mensaje help muestra información sobre los comandos compatibles con cada nodo. Cuando inicia sesión por primera vez, se encuentra en el nodo raíz, que es la ruta /, igual que en un sistema Mac o Linux. Para ver una lista de nodos que están debajo de /, ingrese el comando ls.

Todos los servicios tienen nodos como sys y logs. Para interactuar con la API /logs, primero puede enviar el comando help al nodo /logs. Para ello, debe usar el mensaje send, el cual tiene la siguiente sintaxis:

 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

Por lo tanto, para enviar un mensaje help, debe enviar esto:

send /logs help

Y su respuesta sería algo como esto:

  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>]

Para obtener más información acerca de un comando o mensaje específicos, puede especificar msg=<message name> en el comando de ayuda como un parámetro. Por ejemplo, observe la ayuda del mensaje pull:

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)

La ayuda del mensaje integrada indica que este comando explora las últimas n entradas del registro si deja fuera id1 e id2. Para mirar las últimas 10 entradas del registro que escribió este servicio:

send /logs pull count=10 timeFormat=simple

Casi todos los comandos en el servicio siguen este formato simple. Los únicos comandos que no lo siguen son aquellos que requieren un protocolo de enlace más complejo, como la importación de un PCAP a un Decoder. Para importar un PCAP, use el comando import de NwConsole, que se encarga del protocolo de enlace de canal de comunicación complejo.

Algunos parámetros son específicos del comando send de NwConsole y no se envían realmente al servicio. Puede utilizar estos parámetros para cambiar el formato de salida de la respuesta, escribir la respuesta en un archivo o leer un archivo desde la máquina local y enviarlo al servicio.

  • output-format: Este parámetro cambia la salida normal del comando de texto sin formato a uno de estos tipos: JSON, XML o HTML.
  • output-pathname: En lugar de escribir la salida en el terminal, la escribe en el nombre de ruta especificado (trunca los archivos existentes).
  • output-append-pathname: Esto es igual a output-pathname, salvo que anexa la salida a un archivo existente (o crea el archivo si no existe).
  • file-data: Lee un archivo y lo utiliza como la carga útil del comando. Esto es útil para comandos como /sys fileEdit. El siguiente ejemplo muestra cómo se puede enviar un archivo index-concentrator-custom.xml actualizado mediante NwConsole:
 send /sys fileEdit op=put filename=index-concentrator-custom.xml file-data="/Users/user/Documents/index-concentrator-custom.xml"
  • string-data: Envía la carga útil del comando como una cadena en lugar de una lista de parámetros.
  • binary-data: Envía la carga útil de comandos como archivo binario en lugar de una lista de parámetros.

Ejemplo de transmisión de consulta a un archivo JSON (podría ser un conjunto de resultados grande):

 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 

Para desplazarse por la jerarquía de nodo virtual del servicio, puede usar el comando cd como lo haría en cualquier shell de comandos. Esto abarca los aspectos básicos de la conexión y la interacción con un servicio. Una vez que está conectado, el comando help enumera todos los comandos que puede utilizar para interactuar con el terminal. Estos comandos no se muestran cuando no está conectado a un terminal.

You are here
Table of Contents > RSA Security Analytics Console > Establecimiento de conexión con un servicio

Attachments

    Outcomes