Configuración de la interconexión Syslog

Siga leyendo para saber cómo configurar la interconexión Syslog en la aplicación LockSelf.

Esta opción sólo se aplica a las configuraciones Private Cloud y On Premises.

Esta opción sólo se aplica a las configuraciones Private Cloud y On Premises.

Cómo configurar la interconexión Syslog en la aplicación LockSelf.

Sólo la cuenta de Administrador puede realizar esta acción.

Sólo la cuenta de Administrador puede realizar esta acción.

_______________________________________________________________________________________

Requisitos para la interconexión Syslog

Para llevar a cabo la interconexión Syslog, deberá preparar los siguientes requisitos previos:

    .
    • La IP del servidor RSyslog
    • .
    • El puerto del servidor RSyslog
    • .
    • Los certificados para habilitar TLS entre LockSelf y su servidor RSyslog
    • .
      • El certificado en formato CRT
      • .
      • La clave privada relativa al certificado
      • .
      • La cadena de certificación ( certificados intermedios + CA Raíz )

    El modo de autenticación será mediante certificado y huella digital. También necesitaremos que nos proporcionen la huella digital del servidor.

    Configuración del servidor RSyslog

    Paquete Relp para Rsyslog

    El paquete se instala de la siguiente forma dependiendo de tu distribución y gestor de paquetes:

# CentOS & RockyLinux: https://centos.pkgs.org/7/centos-x86_64/rsyslog-relp-8.24.0-55.el7.x86_64.rpm.html
c[_] > sudo yum install rsyslog-relp

# Ubuntu: https://packages.ubuntu.com/bionic/admin/rsyslog-relp
c[_] > sudo apt-get install rsyslog-relp

# Debian: https://packages.debian.org/stretch/rsyslog-relp
c[_] > sudo apt install rsyslog-relp

# Alpine: https://pkgs.alpinelinux.org/package/edge/main/x86/rsyslog-relp
c[_] > sudo apk add rsyslog-relp

Archivo de configuración del servidor:

La siguiente configuración debe adaptarse según la organización de la configuración de su servidor RSyslog. Sin embargo, recomendamos añadir esta configuración a un nuevo archivo en la carpeta:

/etc/rsyslog.d/ nombrándolo por ejemplo 1-lockself.conf.

# Cargar el módulo de entrada RELP
module(load="imrelp" ruleset="<RULESET_NAME>")

# Configuración del módulo de entrada RELP
input(type="imrelp" port="<PORT>"
tls="on"
tls.caCert="<INTERMEDIATE_AND_CA_CHAIN_PATH>"
tls.myCert="<CERTIFICATE_PATH>"
tls.myPrivKey="<PRIVATE_KEY_PATH>"
tls.authMode="<AUTH_MODE>"
tls.permittedpeer=["<PEER_IDENTIFICATOR_1>", "<PEER_IDENTIFICATOR_2>", ...]
)

# Ejemplo de conjunto de reglas (salida de registros obtenidos del módulo de entrada RELP al archivo '/var/log/relp_log')
ruleset (name="<RULESET_NAME>") { action(type="omfile" file="/var/log/relp_log") }
  • <RULESET_NAME> : El nombre del 'ruleset' que interpretará lo que se reciba del módulo de entrada RELP. Usted tiene la opción de explotar esta retroalimentación de otras maneras.
  • .
  • <PORT> : El puerto en el que escuchará el módulo de entrada RELP.
  • Puerto>
: El puerto en el que escuchará el módulo de entrada RELP.

  • <INTERMEDIATE_AND_CA_CHAIN_PATH> : La ruta al archivo que contiene los certificados intermedios y la CA raíz.
  • <CERTIFICATE_PATH> : la ruta al archivo que contiene el certificado.
  • CERTIFICATE_PATH>
  • : la ruta al archivo que contiene el certificado.

  • <PRIVATE_KEY_PATH> : La ruta al archivo que contiene la clave privada.
  • <AUTH_MODE> : El modo de autenticación, puede ser huella digital o nombre (Documentación deRSyslog)
  • .
  • <PEER_IDENTIFICATOR> : El valor del campo de certificado que se utilizará para autorizar conexiones si es válido, dependiendo de su <AUTH_MODE>: .
    • tls.authMode="fingerprint": La huella digital SHA1 del certificado, de la forma: "SHA1:<FINGERPRINT>" .
      Puede obtenerla de la siguiente forma con Openssl:
      c[_] > openssl x509 -noout -fingerprint -sha1 -inform pem -in <certificate-file.crt>
    • tls.authMode="nombre": El DNS del servidor RSyslog, en la forma: "mi.dns.com" o "*.dns.com". El DNS debe formar parte del DNS protegido por certificado como DNS primario o en AltNames.

    DNS.com.

  • Compruebe que la sintaxis de la configuración es correcta

    Para asegurarte de que la configuración de RSyslog es correcta puedes utilizar el siguiente comando:

    c[_] > rsyslogd -N1

    # O

    c[_] > rsyslogd -c <ruta/a/configuración/archivo>

    Aplicar nueva configuración

    Para aplicar la nueva configuración puedes reiniciar el servicio:

    # CentOS & RockyLinux:
    c[_] > sudo systemctl restart rsyslog.service

    # Ubuntu: https://packages.ubuntu.com/bionic/admin/rsyslog-relp
    c[_] > sudo systemctl restart rsyslog.service

    # Debian: https://packages.debian.org/stretch/rsyslog-relp
    c[_] > sudo systemctl restart rsyslog.service

    # Alpine: https://pkgs.alpinelinux.org/package/edge/main/x86/rsyslog-relp
    c[_] > sudo rc-service rsyslog restart

    # O
    c[_] > sudo /etc/init.d/rsyslog restart

    Solución de problemas

    En caso de que la configuración no parezca estar activa, te invitamos a que mires los logs del servicio RSylog:

    c[_] > journalctl -u rsyslog.service

    O lanzar manualmente el servidor con debug para obtener todos los logs:

    c[_] > export RSYSLOG_DEBUG=debug; rsyslogd -d 

    # O

    c[_] export RSYSLOG_DEBUG=debug; rsyslogd -d | grep <PORT>

    Comprueba también los puertos utilizados con nstat y las reglas de tu firewall con ufw por ejemplo.

    Registro de organización

    Por fecha, día, hora u otro

    Cuando reciba los registros en el servidor RSyslog, es posible que desee organizar los registros por mes, día, hora u otro. Con RSyslog tiene la opción de hacer que el nombre del archivo de registro sea dinámico utilizando plantillas.

    # Plantillas
    template (name="<TEMPLATE_NAME>" type="string" string="<TEMPLATED_DESTINATION_FILE_NAME>")

    # Cargar el módulo de entrada RELP
    module(load="imrelp" ruleset="<RULESET_NAME>")

    # Configuración del módulo de entrada RELP
    input(type="imrelp" port="<PORT>"
    tls="on"
    tls.caCert="<INTERMEDIATE_AND_CA_CHAIN_PATH>"
    tls.myCert="<CERTIFICATE_PATH>"
    tls.myPrivKey="<PRIVATE_KEY_PATH>"
    tls.authMode="<AUTH_MODE>"
    tls.permittedpeer=["<PEER_IDENTIFICATOR_1>", "<PEER_IDENTIFICATOR_2>", ...]
    )

    # Ejemplo de conjunto de reglas (los registros de salida se obtienen del módulo de entrada RELP en el archivo '<TEMPLATED_DESTINATION_FILE_NAME>')
    ruleset (name="<RULESET_NAME>") { action(type="omfile" dynaFile="<TEMPLATE_NAME>") }
    • <TEMPLATE_NAME> : nombre de la plantilla, será llamada más tarde por nuestro módulo de salida.
    • <TEMPLATED_DESTINATION_FILE_NAME> : cadena construida a partir de caracteres y timereported. Puede encontrar todas las variables extraíbles de timereported aquí (desde date-unixtimestamp hasta date-tzoffsdirection, aquí timestamp es un alias de timereported). Por ejemplo <TEMPLATED_DESTINATION_FILE_NAME> puede ser :
      /var/log/lockself/%timereported:::date-year%-%timereported:::date-month%-%timereported:::date-day%.log

      lo que generará, por ejemplo: /var/log/lockself/2023-04-06.log

    Configuración del cliente RSyslog (sólo en las instalaciones)

    Archivo de registro LockSelf

    Añade un punto de montaje en el contenedor lockself-api-3

    Independientemente del método de lanzamiento que elijas (docker run, docker compose, docker swarm), tendrás que añadir el siguiente punto de montaje:

    - <LOG_PATH_ON_HOST>:/usr/local/var/log/lockself/application.log

    El archivo "<LOG_PATH_ON_HOST>" puede colocarse en cualquier parte del host. Por lo tanto, tendrá que cambiar "<LOG_PATH_ON_HOST>" a la ruta elegida en el host.

    Habilitar interconexión

    En el archivo "env", tendrás que añadir el parámetro:

    logInFile=1

    Una vez realizados estos dos pasos, reinicia el contenedor lockself-api-3

    Instalación del paquete RELP para Rsyslog

    El paquete se instala de la siguiente manera dependiendo de su distribución y gestor de paquetes:

    .

    # CentOS & RockyLinux: https://centos.pkgs.org/7/centos-x86_64/rsyslog-relp-8.24.0-55.el7.x86_64.rpm.html
    c[_] > sudo yum install rsyslog-relp

    # Ubuntu: https://packages.ubuntu.com/bionic/admin/rsyslog-relp
    c[_] > sudo apt-get install rsyslog-relp

    # Debian: https://packages.debian.org/stretch/rsyslog-relp
    c[_] > sudo apt install rsyslog-relp

    # Alpine: https://pkgs.alpinelinux.org/package/edge/main/x86/rsyslog-relp
    c[_] > sudo apk add rsyslog-relp

    Archivo de configuración del cliente rsyslog

    La siguiente configuración debe adaptarse según la organización de la configuración de su cliente RSyslog. Sin embargo, recomendamos añadir esta configuración a un nuevo archivo en la carpeta:

    /etc/rsyslog.d/ nombrándolo por ejemplo 1-lockself.conf.

    # Cargar el módulo de entrada de ficheros
    module(load="imfile")

    # Cargar el módulo de salida RELP
    module(load="omrelp")

    # Ruleset para enviar los logs al servidor RSyslog
    ruleset(name="lockselfSendLogsToServer") {
    action(type="omrelp" target="<TARGET_IP>" port="<TARGET_PORT>"
    tls="on"
    tls.caCert="<INTERMEDIATE_AND_CA_CHAIN_PATH>"
    tls.myCert="<CERTIFICATE_PATH>"
    tls.myPrivKey="<PRIVATE_KEY_PATH>"
    tls.authMode="<AUTH_MODE>"
    tls.permittedpeer=["<PEER_IDENTIFICATOR_1>", "<PEER_IDENTIFICATOR_2>", ...]. )
    }

    input(type="imfile"
    File="<LOG_PATH_ON_HOST>"
    Tag="lockself/application.log"
    Ruleset="lockselfSendLogsToServer")
    • <TARGET_IP> : la IP del servidor RSyslog.
    • <TARGET_PORT> : el puerto del servidor RSyslog
    • <INTERMEDIATE_AND_CA_CHAIN_PATH> : la ruta de acceso al archivo que contiene los certificados intermedios y la CA raíz.
    • <CERTIFICATE_PATH> : la ruta al archivo que contiene el certificado.
    • <PRIVATE_KEY_PATH> : la ruta del archivo que contiene la clave privada.
    • <AUTH_MODE> : El modo de autenticación, puede ser huella o nombre (documentación de rsyslog)
    • .
    • <PEER_IDENTIFICATOR> : El valor del campo de certificado que se utilizará para autorizar conexiones si es válido, dependiendo de su <AUTH_MODE>: .
      • tls.authMode="fingerprint": La huella SHA1 del certificado, de la forma: "SHA1:<FINGERPRINT>" .
        Puede obtenerla de la siguiente forma con Openssl:
        c[_] > openssl x509 -noout -fingerprint -sha1 -inform pem -in <certificate-file.crt>
      • tls.authMode="nombre": El DNS del servidor rsyslog, en la forma: "mi.dns.com" o "*.dns.com". El DNS debe formar parte del DNS protegido por certificado como DNS primario o en AltNames.

      DNS.com.

  • Compruebe que la sintaxis de configuración es correcta

    Para asegurarte de que la configuración de RSyslog es correcta, puedes utilizar el siguiente comando:

    c[_] > rsyslogd -N1

    # O

    c[_] > rsyslogd -c <ruta/a/configuración/archivo>

    Aplicar nueva configuración

    Para aplicar la nueva configuración puedes reiniciar el servicio:

    # CentOS & RockyLinux:
    c[_] > sudo systemctl restart rsyslog.service

    # Ubuntu: https://packages.ubuntu.com/bionic/admin/rsyslog-relp
    c[_] > sudo systemctl restart rsyslog.service

    # Debian: https://packages.debian.org/stretch/rsyslog-relp
    c[_] > sudo systemctl restart rsyslog.service

    # Alpine: https://pkgs.alpinelinux.org/package/edge/main/x86/rsyslog-relp
    c[_] > sudo rc-service rsyslog restart

    # O
    c[_] > sudo /etc/init.d/rsyslog restart

    Solución de problemas

    En caso de que la configuración no parezca estar activa, te invitamos a mirar los logs del servicio RSylog:

    c[_] > journalctl -u rsyslog.service

    O lanzar manualmente el servidor con debug para obtener todos los logs:

    c[_] > export RSYSLOG_DEBUG=debug; rsyslogd -d
  • Actualización