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>
huella digital
o nombre
(Documentación deRSyslog)<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 restartSolució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.serviceO 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 conufw
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.
# Plantillastemplate (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
hastadate-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
onombre
(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 restartSolució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.serviceO lanzar manualmente el servidor con debug para obtener todos los logs:
c[_] > export RSYSLOG_DEBUG=debug; rsyslogd -d
Actualización