Configuración del archivado

En esta sección se procederá a configurar el archivado de nuestro sistema. Para ello, en primer lugar instalaremos el gestor de bases de datos MongoDB y configuraremos varios usuarios con distintos roles de acceso. A continuación, instalaremos y configuraremos los componentes del sistema luIDS que se encargan del archivado: archive que ofrece la interfaz común de archivado al resto del sistema y archiveui que ofrece una interfaz gráfica de usuario para visualizar la información.

Recuerde que tiene a su disposición todos los ficheros de configuración de esta guía en https://github.com/luids-io/docs/blob/master/es/modules/guide-advanced-dns-sinkhole/examples/.
Este proceso está probado únicamente en un sistema Ubuntu 20.04LTS server. Los binarios están compilados estáticamente y las rutas empleadas son las de una distribución estándar, por lo que el instalador debería funcionar en cualquier distribución.

Instalación de mongodb

apt install mongodb-server

Configuración de la base de datos mongodb

En primer lugar, crearemos usuarios con diferentes roles de acceso a nuestro sistema de bases de datos.

## crea usuario administración
mongo admin --eval 'db.createUser({ user: "mongoadm", pwd: "pass1", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]  })'
## crea usuario archivador
mongo admin --eval 'db.createUser({ user: "luarchive", pwd: "pass2", roles: [ { role: "readWrite", db: "luidsdb"} ] })'
## crea usuario visor
mongo admin --eval 'db.createUser({ user: "archiveui", pwd: "pass3", roles: [ { role: "read", db: "luidsdb"} ] })'

Habilitaremos el uso de autenticación y reiniciaremos el servicio.

sed -i 's/#auth = true/auth = true/' /etc/mongodb.conf
systemctl restart mongodb
systemctl enable mongodb

Instalación del paquete archive

Instalar archive es muy sencillo, basta descargar el instalador ya existente y ejecutarlo. Para ello puede dirigirse a https://github.com/luids-io/archive/releases y descargar la última versión del instalador (fichero installer_linux.sh). También puede simplemente copiar y pegar lo siguiente en una consola de comandos.

DOWNLOAD_URL=$(wget -O - https://api.github.com/repos/luids-io/archive/releases/latest| grep download.*installer | grep -v sha256 | cut -d '"' -f4)
wget ${DOWNLOAD_URL} -O installer_archive.sh
chmod 755 installer_archive.sh
sudo ./installer_archive.sh
Si está instalando el software en una arquitectura diferente a la amd64 (como en el caso de una Raspberry) deberá definirla en una variable de entorno al lanzar el instalador. Ejemplo: sudo ARCH=arm64 ./installer.sh. Las arquitecturas disponibles son: amd64, arm, arm64, mips, mips64, mips64le, ppc64 y s390x.

Configuración de luarchive

Definiremos los backends de archivado sustituyendo la password por la que hayamos definido.

Contenido de /etc/luids/archive/backends.json
[
  {
    "id": "mongo1",
    "class": "mongodb",
    "url": "mongodb://luarchive:pass2@localhost:27017/admin"
  }
]

Definiremos los servicios a publicar por luarchive.

Contenido de /etc/luids/archive/services.json
[
  {
    "id": "event",
    "class": "eventmdb",
    "backend": "mongo1"
  },
  {
    "id": "dns",
    "class": "dnsmdb",
    "backend": "mongo1"
  }
]

Configuraremos los parámetros del servidor.

Contenido de /etc/luids/archive/luarchive.toml
[archive.backend]
files      = [ "/etc/luids/archive/backends.json" ]

[archive.service]
files      = [ "/etc/luids/archive/services.json" ]

[service.event.archive]
enable  = true
service = "event"

[service.dnsutil.archive]
enable  = true
service = "dns"

Probaremos la correcta sintaxis de la configuración.

# luarchive --config /etc/luids/archive/luarchive.toml --dry-run
INFO[0000] luarchive (version: 30bff3e build: 2020-12-11T08:48:01+0100)
configuration seems ok

Iniciaremos y habilitaremos el servicio.

systemctl start luids-luarchive
systemctl enable luids-luarchive
Es conveniente que hagamos un systemctl status luids-luarchive para comprobar que la conexión con la base de datos está funcionando correctamente.

Publicación de los servicios de archivo

Con el servidor ya configurado, publicaremos los servicios en apiservices.json para que el resto de servicios los puedan utilizar.

Contenido temporal de /etc/luids/apiservices.json
[
  {
    "id": "dnsutil-archive",
    "api": "luids.dnsutil.v1.Archive",
    "endpoint": "tcp://127.0.0.1:5821"
  },
  {
    "id": "event-archive",
    "api": "luids.event.v1.Archive",
    "endpoint": "tcp://127.0.0.1:5821"
  }
]

Instalación del paquete archiveui

Instalar archiveui es muy sencillo, basta descargar el instalador ya existente y ejecutarlo. Para ello puede dirigirse a https://github.com/luids-io/archiveui/releases y descargar la última versión del instalador (fichero installer_linux.sh). También puede simplemente copiar y pegar lo siguiente en una consola de comandos.

DOWNLOAD_URL=$(wget -O - https://api.github.com/repos/luids-io/archiveui/releases/latest| grep download.*installer | grep -v sha256 | cut -d '"' -f4)
wget ${DOWNLOAD_URL} -O installer_archiveui.sh
chmod 755 installer_archiveui.sh
sudo ./installer_archiveui.sh

Configuración de la interfaz web de archivado

El instalador ya realizó la mayor parte de la configuración, sólo falta configurar el acceso al archivo.

sed -i 's/ARCHIVE_USERNAME=/ARCHIVE_USERNAME=archiveui/' /var/www/archiveui/.env
sed -i 's/ARCHIVE_PASSWORD=/ARCHIVE_PASSWORD=pass3/' /var/www/archiveui/.env

Aprovecharemos también para habilitar una configuración por defecto del protocolo https en apache2.

a2enmod ssl
a2ensite default-ssl
systemctl restart apache2
Recuerde que estamos usando los certificados autofirmados, por lo que el navegador le advertirá cuando trate de acceder al servidor.

Podemos acceder a la interfaz de archivo mediante un navegador al recurso /archiveui con usuario admin y password admin

archiveui-login
Figura 1. Login archiveui

Es recomendable que cambiemos la contraseña inmediatamente.