Configuración

La configuración del software se realiza de la misma forma que el resto de componentes del sistema luIDS, tal y como se describe en Proceso de inicialización. Luego, cada componente tiene sus propias secciones particulares como se describirá en Configuración xlistd y Configuración xlget.

Proceso de inicialización

La configuración de un servicio luIDS puede realizarse de varias formas:

  1. Mediante un fichero de configuración (en formatos yaml o toml)

  2. Mediante parámetros de línea de comandos.

  3. Mediante variables de entorno.

Todas las secciones menos aquellas opciones que están definidas como sólo argumentos pueden configurarse por cualquiera de las tres vías, siguiendo el siguiente proceso de inicialización:

  1. Si se especifica la opción --config se utilizará el fichero definido en dicha opción.

  2. Leerá el resto de opciones de configuración de la línea de comandos.

  3. Leerá las opciones de configuración desde variables de entorno.

  4. Valida y aplica la configuración.

  5. Si se ha pasado el parámetro --dry-run detendrá la ejecución con salida ok si todo ha ido bien.

  6. Inicializará los servidores que se hayan configurado.

En caso de que algunas opciones de configuración diverjan: las variables de entorno tienen prioridad sobre los parámetros de línea de comando y estos a su vez, tienen prioridad sobre un fichero de configuración.

Configuración xlistd

Ejemplos

Ejemplo de /etc/luids/xlist/xlistd.toml
[xlistd]
datadir   = "/var/lib/luids/xlist"

[xlistd.service]
files      = [ "/etc/luids/xlist/services.json" ]
Ejemplo completo de /etc/luids/xlist/xlistd.toml
######################
## Service settings ##
######################
[xlistd]
certsdir  = "/etc/luids/ssl"
datadir   = "/var/lib/luids/xlist"

[xlistd.service]
files      = [ "/etc/luids/xlist/services.json" ]
dirs       = [ "/etc/luids/xlist/services.d" ]

[xlistd.plugin.dnsxl]
resolvers  = [ "8.8.8.8", "8.8.4.4" ]
#resolvconf = true

#[xlistd.plugin.sblookup]
#apikey="TOKEN"

[service.xlist.check]
enable     = true
rootid     = "root"
log        = true

#########################
## Client API settings ##
#########################
[ids.api]
certsdir  = "/etc/luids/ssl"
files     = [ "/etc/luids/apiservices.json" ]
#dirs      = [ "/etc/luids/apiservices.d" ]

#####################
## Server settings ##
#####################
[server]
listenuri  = "tcp://0.0.0.0:5801"
certca     = "/etc/luids/ssl/certs/CA.crt"
certfile   = "/etc/luids/ssl/certs/server.crt"
keyfile    = "/etc/luids/ssl/ssl/private/server.key"
clientauth = true
allowed    = [ "127.0.0.1", "192.168.0.0/16" ]
metrics    = true

#####################
## Health settings ##
#####################
[health]
listenuri  = "tcp://127.0.0.1:8081"
metrics    = true
#profile    = true
allowed    = [ "127.0.0.1" ]

##################
## Log settings ##
##################
[log]
format  = "log"
level   = "info"

Configuración xlget

Ejemplos

Ejemplo de /etc/luids/xlist/xlget.toml
[xlget]
outputdir = "/var/lib/luids/xlist"
cachedir  = "/var/cache/luids/xlist"
statusdir = "/var/lib/luids/xlist/status"

[xlget.source]
dirs    = [ "/etc/luids/xlist/sources.d" ]

Referencia de configuración

Sólo argumentos

Parámetro Tipo Requerido Defecto Descripción

config

string

No

Usa el parámetro como fichero de configuración en lugar de los ficheros definidos por defecto. Admite la configuración en formatos toml y yaml. Para la correcta detección del formato, config deberá incorporar la extensión correspondiente.

debug

boolean

No

false

Habilita el modo debug.

dry-run

boolean

No

false

Chequea y construye las listas del servicio pero no lo inicializa. Puede emplearse para comprobar que la configuración es correcta.

help

boolean

No

false

Muestra la ayuda.

version

boolean

No

false

Muestra la versión de la aplicación.

Sección xlistd

Parámetro Tipo Requerido Defecto Descripción

certsdir

string

No

Especifica el directorio donde estarán los certificados referenciados en la configuración del servicio.

datadir

boolean

No

Especifica el directorio donde se almacenan los datos de los ficheros referenciados en la configuración del servicio.

Sección xlistd.service

Parámetro Tipo Requerido Defecto Descripción

files

[]string

No

Listado de ficheros donde se encuentra la definición del servicio.

dirs

[]string

No

Listado de directorios donde se encuentran los ficheros de definición del servicio con extensión json.

Sección xlistd.plugin.dnsxl

Parámetro Tipo Requerido Defecto Descripción

resolvconf

boolean

No

false

Empleará los resolvedores dns definidos en /etc/resolv.conf por defecto en los componentes de la clase dnsxl.

resolvers

[]string

No

Empleará los resolvedores dns definidos en los componentes de la clase dnsxl.

timeout

int

No

Establece un timeout por defecto en milisegundos para las consultas DNS realizadas por los componentes de la clase dnsxl.

Sección xlistd.plugin.sblookup

Parámetro Tipo Requerido Defecto Descripción

apikey

string

No

false

Define la api key de Google Safe Browsing que usará por defecto en todos los componentes de la clase sblookup.

serverurl

string

No

Define la URL del servidor que tiene la API de Google Safe Browsing en todos los componentes de la clase sblookup. Si no se definirá utilizará los de google.

Sección service.xlist.check

Parámetro Tipo Requerido Defecto Descripción

enable

boolean

true

Habilita la api luids.xlist.Check.

rootid

boolean

root

Define el identificador de la lista que será expuesta por el servicio.

log

boolean

No

true

Habilita el log del servicio.

Sección ids.api

Parámetro Tipo Requerido Defecto Descripción

certsdir

string

No

Especifica el directorio donde estarán los certificados referenciados en la configuración de clientes de la API.

files

[]string

No

Listado de ficheros donde se encuentra la definición estática de los clientes de servicios de la api luids.

dirs

[]string

No

Listado de ficheros donde se encuentra la definición estática de los clientes de servicios de la api luids.

Sección server

Parámetro Tipo Requerido Defecto Descripción

allowed

[]string

No

Incluye el listado como orígenes permitidos para el uso del servicio.

cacert

string

No

Utilizará la cadena como al certificado de la CA del servidor.

certfile

string

No

Utilizará la cadena como trayectoria al certificado del servidor.

clientauth

boolean

No

false

Requiere la autenticación del certificado del cliente en el servicio.

keyfile

boolean

No

Utilizará la cadena como trayectoria al fichero de clave privada del servidor.

listenuri

string

No

tcp://127.0.0.1:58XX

Lanzará un servidor GRPC escuchando en la uri.

Sección health

Parámetro Tipo Requerido Defecto Descripción

allowed

[]string

No

Incluye el listado como orígenes permitidos para el uso del servicio.

listenuri

string

No

Lanzará un servidor http escuchando en la uri con información de métricas y estado.

metrics

boolean

No

false

Habilita el uso de métricas.

Sección log

Parámetro Tipo Requerido Defecto Descripción

format

string

No

text

Define el formato del log.

level

string

No

info

Define el el nivel de log empleado.

Sólo argumentos xlget

Parámetro Tipo Requerido Defecto Descripción

auto

bool

No

false

Habilita el modo automático, que hará que el comando se mantenga en ejecución y cada minuto compruebe si necesita actualizar alguna fuente en base a su programación.

config

string

No

Usa el parámetro como fichero de configuración en lugar de los ficheros definidos por defecto. Admite la configuración en formatos toml y yaml. Para la correcta detección del formato, config deberá incorporar la extensión correspondiente.

debug

boolean

No

false

Habilita el modo debug.

dry-run

boolean

No

false

Chequea y construye las listas del servicio pero no lo inicializa. Puede emplearse para comprobar que la configuración es correcta.

help

boolean

No

false

Muestra la ayuda.

version

boolean

No

false

Muestra la versión de la aplicación.

Sección xlget

Parámetro Tipo Requerido Defecto Descripción

cachedir

string

No

Especifica el directorio donde se almacenarán los datos temporales e intermedios de las descargas.

outputdir

string

No

Especifica el directorio de salida de las listas descargadas.

statusdir

string

No

Especifica el directorio de los ficheros de información de estado.

Sección xlget.source

Parámetro Tipo Requerido Defecto Descripción

files

[]string

No

Listado de ficheros que definen las fuentes.

dirs

[]string

No

Listado de directorios donde se encuentran los ficheros que definen las fuentes con extensión json.

A continuación: Definición del servicio