Configurar almacenamiento NFS en un NAS Synology y consumirlo desde Proxmox

Hace tiempo quería compartir una guía de cómo agregar almacenamiento NFS a mi Proxmox. Para ello he usado un NAS Synology con el fin de que sirva como repositorio de copias de seguridad externa.

Lo primero que tenemos que hacer después de haber ingresado en la web de administración de Synology, es abrir el panel de control y en el menú de navegación buscar la opción Servicios de Archivos, seleccionar la pestaña NFS y activar el servicio.

Creamos el directorio NFS compartido que contendrá las copias de seguridad: en mi caso proxmox

Añadimos un usuario para que acceda desde el servidor Proxmox.

Y lo añadimos al grupo usuarios.

Asignamos permisos de lectura y escritura.

Establecemos un ancho de banda si procede.

Pulsamos en siguiente.

Y por último se nos muestra el resumen del tipo de usuario a crear.

Una vez creado el usuario, nos vamos al directorio compartido y lo editamos.

En la pestañá Permisos NFS creamos una regla con las siguientes características:

Donde Hostname or IP: será la IP del servidor Proxmox.

Nota: En caso de tener un clúster, habría que agregar todas las IPs de los nodos que forman el clúster.

Con esto ya tendríamos configurado el NAS.

Ahora en Proxmox, nos vamos al menú Datacenter –> Storage –> Add –> NFS

Le damos una ID que será el nombre que queramos para reconocer nuestro almacenamiento, en este caso NAS. La IP del NAS y la ruta de la carpeta comportadida que hayamos creado.

Yo usaré el NAS para copias de seguridad, así que especifico en Content VZDump Backup file. Si pretendemos almacenar otro tipo de datos en el NAS, seleccionamos el deseado.

Si no sabemos la ruta exacta del directorio compartido en el NAS, basta con ejecutar el comando pvesm nfsscan a la IP del NAS.

pvesm nfsscan 192.168.X.X

Cuando tengamos los datos rellenos, verificamos que el check del campo Enable está marcado y clickamos en Add.

Lo siguiente será programar las copias de seguridad eligiendo como destino el almacenamiento NAS.

Saludos =)

Obsidian: alternativa para almacenar y generar Documentación Técnica.

Cuando hacemos nuestras investigaciones, estudiamos un nuevo lenguaje o herramienta o nos piden hacer un informe sobre un suceso, necesitamos generar documentación técnica.

A lo largo del tiempo he ido utilizando desde herramientas sencillas como Typora hasta verdaderas navajas suizas como CherryTree.

Hace un par de años conocí Joplin y quedé encantado con su simplicidad, con su forma de sincronizar contra distintos servicios. Es la herramienta que he estado usando hasta ahora para recoger esa información técnica y además para apuntar mis notas.

Permite organizar las notas en libretas y generar sublibretas dentro de estas, visualizando la información de forma jerárquica. Dentro de las libretas y sublibretas se pondrán las notas o tareas de tipo ToDo.

Todas estas herramientas tienen algo en común. Soportan que se tomen las notas en formato md, MarkDown.

MarkDown es un lenguaje sencillo de aprender que se utilizar para generar documentación técnica. Es sencillo formatear un documento y exportarlo a PDF para la lectura de personas menos técnicas.

Este fin de semana que ha sido un poco largo por las festividades de Semana Santa, he <<descubierto >> Obsidian, es una aplicación pensada para apuntar todas aquellas anotaciones técnicas que necesitemos.

Organiza las notas en directorios y ficheros físicos de nuestro disco. A todo ese conjunto lo define como Bóveda.

Nada más arrancar la aplicación nos pide o abrir una bóveda o crearla.

Para crearla necesitamos darle un nombre y una ubicación en nuestro sistema de ficheros.

Para escribir la entrada en el blog, he definido la siguiente estructura de directorios/ficheros simulando una recopilación de información de una web:

Donde TestWeb es el nombre de la bóveda, 00 Reconocimiento pasivo y 01 Reconocimiento activo son directorios y recon-ng un subdirectorio en el que he incluido un fichero llamado host con el siguiente contenido en MarkDown

El mismo contenido haciendo previsualización:

Y el mismo contenido exportado a PDF:

Lo interesante es que al organizar el árbol de forma jerárquica, va creando los directorios/ficheros en la unidad elegida para almacenar la bóveda. De esta manera todo lo que hayamos creado en la aplicación, lo podemos visualizarlo y navegar en el sistema de ficheros.

Como podemos ver es una muy buena alternativa para recopilar la información de algún trabajo que estemos haciendo, sea este de una investigación, un curso que estemos realizando, configuraciones de algún servidor/sistema o para lo que podamos hallarle utilidad.

Podemos ampliar sus capacidades mediante plugins oficiales o de la comunidad.

Lo probaré durante las siguientes semanas a ver si me hago a esta nueva forma de trabajo y dejaré Joplin únicamente como gestor de notas.

He visto que se puede configurar la apariencia y colores al exportar a PDF pero eso lo dejo para otra entrada.

Saludos =)

Certificados digitales para dominios locales.

Es habitual que en nuestras casas o empresas despleguemos servicios que necesitamos acceder a ellos vía web y al no estar reconocido el certificado por el navegador, nos aparece una advertencia como la imagen de la cabecera.

Cuando el dominio es público podemos certificarlo mediante Let’s Encrypt, pero si es privado y queremos establecer la comunicación usando el protocolo HTTPS, lo que tenemos que hacer es un certificado autofirmado. O si os gusta cacharrear pueden montar vuestra propia Autoridad Certificadora, CA.

Los servicios de una autoridad de certificación, son principalmente utilizados para garantizar la seguridad de las comunicaciones digitales usando el protocolo TLS utilizados en las comunicaciones web o las comunicaciones de correos electrónicos, así como para resguardar documentos digitales.

Una entidad de confianza, es la responsable de emitir y revocar los certificados, utilizando en ellos la firma electrónica, para lo cual se emplea la criptografía de clave pública. Una autoridad de certificación expide los certificados digitales, que ya contienen las identificaciones numéricas y las contraseñas que se necesitan.

La Autoridad de Certificación verifica la identidad del solicitante de un certificado antes de su expedición.

Los certificados son documentos que recogen ciertos datos de su titular y su clave pública y están firmados digitalmente por la CA, utilizando su clave privada. La CA presta sus Servicios de Certificación que garantiza ante los terceros que, confían en sus certificados y la relación entre la identidad de un usuario y su clave pública.

Instalaremos una CA que reconozca los certificados expedidos para los dominios locales que usaremos en nuestros servidores.

Instalación de Autoridad Certificadora

Especificaciones del servidor:

SO                 Debian Linux
Versión SO         10.5.0
Arquitectura       x64
Número de núcleos  1
Memoria RAM        2 GB.
Tamaño de Disco    20 GB.
Tipo               Virtualizado

Configuración de la CA

Creamos los directorios donde se guardarán los certificados que iremos generando.

# mkdir /etc/ssl/CA
# mkdir /etc/ssl/newcerts

Creamos el fichero que almacenará el número de serie e índice de los certificados.

# sh -c "echo '01' > /etc/ssl/CA/serial"
# touch /etc/ssl/CA/index.txt

Editamos el fichero de configuración de OpenSSL para indicarle los nuevos parámetos.

# nano /etc/ssl/openssl.cnf

Las modificaciones que introduciremos serán los siguientes datos en los campos indicados:

...
[ CA_default ]

dir             = /etc/ssl              # Where everything is kept
database        = $dir/CA/index.txt     # database index file.
...
certificate     = $dir/certs/cacert.pem         # The CA certificate
serial          = $dir/CA/serial           # The current serial number
...
policy          = policy_anything
...

Generamos una clave privada y certificado para nuestro servidor.

# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

En la salida de la ejecución del comando anterior, nos pide ingresar la clave que servirá para firmar la expedición de certificados.

Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

Una vez confirmada la clave, rellenamos la información que tendrá el certificado de la Entidad Autenticadora.

-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Gipuzkoa
Locality Name (eg, city) []:Oiartzun
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Dominio Local Networks
Organizational Unit Name (eg, section) []:dominio.local
Common Name (e.g. server FQDN or YOUR name) []:Dominio Local Networks ID Root CA
Email Address []:direccionemail arroba dominio punto com

Los archivos que se han generado debemos moverlos a los directorios de claves privadas y certificados respectivamente.

# ls
# mv cakey.pem /etc/ssl/private/
# mv cacert.pem /etc/ssl/certs/

Solicitud de un certificado desde una estación Linux.

En mi caso voy a certificar el dominio que uso para mi servidor Nagios.

Generamos una clave privada RSA en el servidor solicitante.

# openssl genrsa -out nagios.key 2048

Eliminamos la frase de texto como contraseña de la clave privada.

# openssl rsa -in nagios.key -out nagios.publickey

Generamos una solicitud de certificado usando la clave privada que tenemos

# openssl req -new -key nagios.publickey -out nagios.csr

Rellenamos el formulario con la información que corresponda.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Gipuzkoa
Locality Name (eg, city) []:Oiartzun
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Dominio Local Networks
Organizational Unit Name (eg, section) []:Nagios
Common Name (e.g. server FQDN or YOUR name) []:nagios.dominio.local
Email Address []:direccionemail arroba dominio punto com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Concesión de firma de un certificado

La solicitud que gemos generado en el paso anterior, el fichero nagios.csr, lo pasamos al servidor de la CA y lo firmamos con el siguiente comando.

# openssl ca -in nagios.csr -config /etc/ssl/openssl.cnf

Nos pedirá la frase que ingresamos al configurar el servidor CA

Using configuration from /etc/ssl/openssl.cnf
Enter pass phrase for /etc/ssl/private/cakey.pem:

Y una vez ingresada correctamente, se procederá a la generación del certificado.

Can't open /etc/ssl/CA/index.txt.attr for reading, No such file or directory
...
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Mar  11 14:30:50 2021 GMT
            Not After : Mar  11 14:30:50 2022 GMT
        Subject:
            countryName               = ES
            stateOrProvinceName       = Gipuzkoa
            localityName              = Oiartzun
            organizationName          = Dominio Networks
            organizationalUnitName    = Nagios
            commonName                = nagios.dominio.local
            emailAddress              = direccionmail arroba dominio punto local
...
-----BEGIN CERTIFICATE-----
MIIEaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBvzELMAkGA1UEBhMCRVMx
ETAPBgNVBAgMCEdpcHV6a29hMREwDwYDVQQHDAhPaWFydHp1bjEeMBwGA1UECgwV
VHJhbnNOYXR1ciBOb3J0ZSBTLkwuMRkwFwYDVQQLDBB0cmFuc25hdHVyLmxvY2Fs
...
s7z/tgSKKAMZHEYpqnWXIlbp6hzjey0vfZYl9yjVitYOQZggYZhqcSLBdWav7ULs
LLnQZVqJQNVmWyp7zBsG2ACJN0j6lV9bmQewEw==
-----END CERTIFICATE-----
Data Base Updated

Podemos visualizar todo el contenido del certificado generado, en la siguiente ruta:

# cat /etc/ssl/newcerts/01.pem

Desde aquí lo moveremos al servidor solicitante en nuestro caso el servidor Nagios para que haga uso de él.

Ya en el servidor Nagios, movemos los ficheros a los respectivos directorios y en caso de no existir, los creamos.

# mv 01.pem /etc/ssl/certs/nagios.pem
# mv nagios.key /etc/ssl/private/

Ahora procedemos a instalar los módulo SSL.

# yum install -y mod_ssl openssl

Editamos el fichero de configuración SSL que se nos ha creado, para indicarle las rutas de los certificados a usar.

# nano /etc/httpd/conf.d/ssl.conf

Y buscamos y editamos las siguientes claves ubicando las rutas de los ficheros que acabamos de mover:

...
SSLCertificateFile  /etc/ssl/certs/nagios.pem
...
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/ssl/private/nagios.key

Reiniciamos el servicio httpd.

# systemctl stop httpd
# systemctl start httpd

Y ya tenemos configurado nuestro servidor con SSL.

Instalación de certificado CA en el navegador

Para que nuestro navegador o cualquier otro navegador lo reconozca, debemos de importar el certificado que hemos generado en la CA a dicho navegador. Lo encontramos en la siguiente ruta:

/etc/ssl/certs/cacert.pem

Para instalarlo en Firefox vamos al menú Configuración, Preferencias, Privacidad y Seguridad. Al final de la sección encontramos un botón que indica «Ver certificados…», clickamos en él.

Nos ubicamos en la pestaña Autoridades y clickamos en el botón importar. Seleccionamos el fichero cacert.pem y nos saltará una ventana advirtiéndonos de que vamos a confiar en una nueva Autoridad Certificadora.

Seleccionamos los dos propósitos que nos indica y clickamos en Aceptar.

Con esto, ya tenemos una autoridad en nuestro navegador que reconozca los certificados autogenerados para nuestros servidores locales.

Podemos generar cuantos certificados necesitemos para los dominios locales que tengamos. De esta manera aseguramos que la información intercambiada entre nuestro navegador y los servicios solicitados, vaya siempre cifrada aunque sólo sea para uso local. Uno nunca sabe quién puede estar escuchando en la red }:)

Tener presente que los certificados autogenerados SÓLO los reconocerán aquellos navegadores donde hayamos instalado el certificado de la Autoridad Certificadora, ya que es ella quien los ha expedido.

Espero que con esta sencilla guía, se animen a certificar los dominios locales que tengan en vuestras casas/empresas.

Saludos =)

monitoreo

Instalación de clientes de Nagios

Para que el servidor Nagios empiece a mostrar información, necesitamos que en las máquinas a monitorizar haya instalado un cliente.

Hoy explicaré la instalación del agente en servidores GNU Linux.

La instalación la haré sobre un servidor Debian que tengo en producción y que uso de cajón desastre cuando quiero poner un servicio que no necesita correr en un servidor dedicado.

Compilación e instalación de los plugins de Nagios

Si la instalación la hacemos en un servidor Debian o familia como es mi caso, habrá que instalar las siguientes librerías para que no nos de errores de compilación y además agregar manualmente el usuario nagios:

# apt install build-essential
# apt-get install libssl-dev

Agregamos el usuario nagios

# useradd nagios

Descargamos la última versión de los plugins de Nagios.

# wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nagios-plugins-2.3.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nagios-plugins-2.3.3

Ejecutamos el script configure para preparar el SO para la compilación.

# ./configure

Ejecutamos los comandos make para instalar los plugins de Nagios.

# make install

Instalación del módulo NRPE

Descargamos la última versión del módulo NRPE.

# cd ..
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nrpe-4.0.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nrpe-4.0.3

Ejecutamos el script configure para preparar el SO para la compilación.

# ./configure

Y lanzamos la compilación.

# make all
# make install
# make install-config
# make install-init

Editamos el archivo de configuración de NRPE. Sin esta modificación Nagios no lo puede monitorizar.

# nano /usr/local/nagios/etc/nrpe.cfg

Y añadimos la ip de nuestro servidor Nagios en la línea allowed_hosts y separamos con coma (,).

allowed_hosts=127.0.0.1,::1,IP_SERVIDOR_NAGIOS

Habilitamos el servicio NRPE

# systemctl enable nrpe

Y lo iniciamos

# systemctl start nrpe

Con estos pasos, ya tendríamos instalado el agente en el servidor cliente.

Comprobar la comunicación con servidor Nagios.

En nuestro servidor nagios, navegamos hacia la ruta:

# cd /usr/local/nagios/libexec/

Y ejecutamos el binario check_nrpe.

# ./check_nrpe -H ip_servidor_cliente

Si nos devuelve la versión del plugin, es porque hay comunicación entre servidor y cliente y está todo correcto.

Agregar un cliente a servidor Nagios

Hasta ahora lo único que hemos hecho es instalar el agente en el servidor cliente y hacer una prueba de comunicación desde el servidor Nagios.

Para agregar un cliente y que nuestro Nagios lo esté monitorizando constantemente, realizaremos las siguientes acciones.

Creamos un template para el servidor que vamos a agregar en la siguiente ruta:

# nano /usr/local/nagios/etc/objects/linux.cfg

Como yo he agregado un servidor linux, le he llamado a mi template «linux.cfg»

Dentro del template podemos definir hosts y servicios.

Ejemplo de definición de host:

define host{
            use linux-server
            host_name cliente_linux
            alias Servidor de múltiples servicios
            address IP_Cliente_Monitorizar
}

Donde:

use           Es la plantilla general a utilizar
host_name     Es el nombre que le vamos a dar a ese servidor
alias         Es la descripción del servidor
address       Es la IP del cliente a monitorizar

Nota: Todo lo que no definamos en este apartado, lo tomará de la plantilla general utilizada, es este caso linux-server.

Ejemplo de definición de servicio:

define service{
               use generic-service
               host_name cliente_linux
               service_description Disco duro
               check_command check_nrpe!check_hda1
}

Donde:

use                  Es la plantilla general a utilizar
host_name            Es el nombre del servidor donde pondremos el servicio
service_description  Es la descripción del servicio
check_command        Es el comando a utilizar en el servicio definido

Definimos tantos servicios como necesitemos monitorizar.

Cuando hayamos definido los servicios que necesitamos, informamos a Nagios que hay un nuevo archivo de configuración.

Para ello editamos el fichero nagios.cfg, buscamos la sección OBJECT CONFIGURATION FILE(S) y agregamos una nueva línea indicando el nombre del template que hemos creado.

# nano /usr/local/nagios/etc/nagios.cfg
...
# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
...
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
...

Comprobamos que no hemos cometido errores al escribir el archivo de configuracón.

# nagioscheck

Y reiniciamos el servicio de Nagios para que cargue el nuevo template que hemos añadido.

# systemctl restart nagios

Vamos a la aplicación web de Nagios y vemos el servidor (Servicios) que hemos agregado con los servicios que hemos definido. El host llamado localhost, es el propio Nagios que muestra información de su NRPE.

Resolución de posibles problemas

El plugin NRPE en el cliente, llama al disco duro HDA1 y nos puede aparecer el mensaje HDA1 => NO reconoce el disco duro del cliente

Para corregir esto, editamos en el cliente el archivo nrpe.cfg

# nano /usr/local/nagios/etc/nrpe.cfg

Buscamos la sección de comandos y en el plugin check_hda1 pasamos como parámetro el nombre del disco duro del cliente a monitorizar: sda1 en mi caso.

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1

Reiniciamos el servicio NRPE

# systemctl restart nrpe

Y con eso ya habremos subsanado el error.

Saludos =)

Instalación de Nagios

En la entrada anterior comentaba lo beneficioso que es tener una herramienta de monitorización en nuestro día a día. En las siguientes líneas indicaré cómo instalar Nagios en un servidor CentOS 8.

Laboratorio

Especificaciones del servidor:

SO                 CentOS Linux
Versión SO         8.2.2004
Arquitectura       x64
Número de núcleos  4
Memoria RAM        1 GB.
Tamaño de Disco    32 GB.
Tipo               Virtualizado

Preparación del Servidor

Lo primero que hacemos es verificar que nuestro servidor tiene las últimas actualizaciones instaladas. Para ello ejecutamos la siguiente instrucción en el terminal.

# yum update

Para el laboratorio, deshabilitamos SELinux para instalar y configurar nagios.

# nano /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted 

Añadimos las reglas al firewall para los puertos 80 y 443 para acceso vía web.

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp

Luego aplicamos los cambios en el firewall.

# firewall-cmd --reload

Verificamos los puertos que hemos abierto.

# firewall-cmd --list-all
public (active)
...
ports: 80/tcp 443/tcp
...

Reiniciamos el servidor para que los cambios sobre SELinux surtan efecto.

# systemctl reboot

Instalamos los paquetes de dependencias.

# yum install -y gettext wget net-snmp-utils openssl-devel glibc-common unzip perl epel-release gcc php gd automake autoconf httpd make glibc gd-devel net-snmp
# yum --enablerepo=powertools,epel install perl-Net-SNMP
# yum install perl-Net-SNMP

Agregamos el usuario nagios y lo hacemos miembro del grupo apache.

# useradd nagios
# usermod -a -G nagios apache

Compilación e instalación de Nagios

Descargamos la última versión de Nagios.

# wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.6/nagios-4.4.6.tar.gz

Descomprimimos el paquete que hemos descargado.

# tar -xzvf nagios-4.4.6.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nagios-4.4.6

Ejecutamos el script configure para verificar que el SO contiene los paquetenes necesarios para la compilación de Nagios.

# ./configure

Ejecutamos los comandos make para compilar Nagios, instalar los scripts de inicio y la configuración por defecto.

# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# make install-webconf

Habilitamos el servicio de Apache y Nagios para que inicie con el sistema mediante la instrucción enable.

# systemctl enable httpd
# systemctl enable nagios

Protegemos la página de Nagios con usuario y contraseña. Con la opción -c le indicamos que cree un fichero de contraseñas para Nagios.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin

Nota:

Si lo que queremos es añádir un nuevo usuario al fichero existente, obviamos el parámetro -c.

# htpasswd /usr/local/nagios/etc/htpasswd.users nuevousuario
New password: ************
Re-type new password: ************

Iniciamos los servicios correspondientes a Apache y Nagios.

# systemctl start httpd
# systemctl start nagios

Y si hemos seguido estos sencillos pasos, podríamos acceder a la interfaz web de la siguiente manera:

Abrimos un navegador web y ponemos la siguiente URL:

http://IP_SERVIDOR_NAGIOS/nagios

Cambiando IP_SERVIDOR_NAGIOS por la IP del servidor que hayamos usado para instalar Nagios.

Utilizamos las credenciales que pusimos para proteger el sitio de Nagios. El usuario admin en mi caso con su respectiva contraseña.

Pantalla de inicio de Nagios

Compilación e instalación de los plugins de Nagios

Una vez instalado Nagios, procedemos con la instalación de los plugins que son necesarios para realizar los cheackeos en los dispositivos a monitorizar.

Descargamos la última versión de los plugins de Nagios.

# wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nagios-plugins-2.3.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nagios-plugins-2.3.3

Ejecutamos el script configure para verificar que el SO contiene los paquetenes necesarios para la compilación de los plugins.

# ./configure

Ejecutamos los comandos make para compilar e instalar los plugins de Nagios.

# make install

Reiniciamos el servicio de Nagios.

# systemctl restart nagios

Listamos los plugins instalados en la siguiente ruta:

# ls /usr/local/nagios/libexec/
...
check_apt       check_dummy         check_imap      check_nntps
...

Instalación del módulo NRPE

NRPE (Nagios Remote Plugin Executor) permite ejecutar complementos de Nagios en otras máquinas de forma remota.

Descargamos la última versión del módulo NRPE.

# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Descomprimimos el paquete descargado.

# tar -xzvf nrpe-4.0.3.tar.gz

Navegamos al directorio donde se ha desempaquetado.

# cd nrpe-4.0.3

Ejecutamos el script configure.

# ./configure
*** Configuration summary for nrpe 4.0.3 2020-04-28 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

Nota: 5666 Es el puerto que se debe abrir en el FW de cada servidor/ordenador que se quiera monitorizar para que Nagios pueda establecer comunicación.

Compilamos el ejecutable a invocar cada vez que se hace una consulta a un servidor.

# make check_nrpe

Copiamos el NRPE que acabamos de compilar donde tenemos todos los ejecutables /usr/local/nagios/libexec.

# make install-plugin

Creamos un comando para que Nagios pueda usar el comando NRPE editando el fichero de configuración commands.cfg

# nano /usr/local/nagios/etc/objects/commands.cfg

Y añadiendo al final del mismo, la siguiente información.

...
define command {
    command_name    check_nrpe
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Donde:

$USER1 es el equivalente al PATH /usr/local/nagios/libexec

Se puede ver el contenido de esta variable en el fichero de configuración resource.cfg con el siguiente comando:

# cat /usr/local/nagios/etc/resource.cfg
...
# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/nagios/libexec
...

Comprobamos la sintaxis de nuestros archivos de configuración de Nagios.

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Si no tenemos errores, reiniciamos el servicio de Nagios.

# systemctl restart nagios

Nota:

Como vamos a necesitar mucho los comandos para revisar la sintaxis y reiniciar el servicio de Nagios y sobre todo el primero es largo, podemos crear un alias de comando.

Creación de Alias de comandos.

Agregamos dos alias al final del archivo .bashrc ubicado en el home del usuario con el que se trabaja, en nuestro caso root:

# nano /root/.bashrc

Añadimos las siguientes líneas a dicho fichero.

...
alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
alias nagiosreload='systemctl restart nagios'

Recargamos la configuración con los comandos que hemos añadido.

# source /root/.bashrc

Y ya hemos dejado todo preparado para en el siguiente artículo monitorizar nuestro primer servidor Linux.

Saludos =)

Desastre

La maldición de los Access

Antonio lleva 12 años trabajando como gestor de compras en una empresa de fabricación de abono orgánico. Aún recuerda lo duro que se le hizo su primer año en la empresa, había muchos procesos manuales y la repetición de tareas día tras día le obligó a poner en práctica aquello que había aprendido en el curso de ofimática avanzada que había tomado antes de aventurarse en el mundo laboral.

Creó una base de datos en Microsoft Access en la que almacenaba la información de los proveedores y de los pedidos que les hacía. Generó consultas mediante un diseñador muy intuitivo para explotar los datos que introducía. Con el tiempo, descubrió los formularios que le daban un lavado de cara a la manera que tenía de introducir los datos. Detrás de los formularios descubrió que había un lenguaje de programación llamado Visual Basic for Applications. VBA para los amigos, o enemigos }:) Y cuando comprendió, al fin, el funcionamiento de los reports y subreports para sacar impresa su información, vio que aquello era bueno.

La empresa creció y de los 4 empleados que la formaban en un principio, ahora eran 20. Las multitareas que antes llevaban entre 4 ahora se habían convertido en tareas de departamentos gestionados por equipos. Para todos estos equipos Antonio había creado un archivo Access donde almacenaban la información que gestionaban. Ahora había un Access para Compras, otro para Comercial y Ventas, otro para Contabilidad y Administración, para RRHH y para controlar la producción del abono.

Antonio se había convertido en imprescindible en la empresa porque sólo él sabía el funcionamiento de la misma. Cuando necesitaban agregar una tabla, una consulta, un formulario o un informe acudían a él.

Un día se vio desbordado por todo el trabajo que le daba mantener todos aquellos ficheros Access. La empresa tuvo el buen criterio de contratar los servicios de una consultoría que les ayudara a migrar toda su información a un software de gestión empresarial que, junto con la ayuda de todo el conocimiento adquirido por Antonio durante tantos años, terminó siendo todo un éxito.

¿A cuántos mientras leían este texto les ha venido a la mente algún Antonio? Es la realidad de muchas pequeñas, medianas y no tan medianas empresas hoy en día. El problema no es la herramienta, sino el mal uso que se le da.

Cuando se lo usa para almacenar información de ciertos datos concretos, como recurso local y personal, no está mal. El problema viene cuando ese fichero se comparte con un grupo de personas y pretendemos que funcione igual de bien que funcionaba cuando sólo lo manejábamos nosotros.

Este texto no es con afán de denigrar la herramienta, sólo de saber qué uso darle y cuándo. Con un destornillador también podríamos clavar un clavo, o con un martillo podríamos incrustar un tornillo. Al final, el objetivo se ha cumplido, pero no hemos usado la herramienta adecuada. Así, en muchas ocasiones, se usa un fichero Access para programar un envío de correo o procesar y generar un fichero. Al final obtendremos el resultado deseado pero lo que hagamos con ese fichero Access no será escalable.

El mismo ejemplo podríamos aplicarle a su hermano Excell, que, debido a su mal uso, provocó en octubre de 2020 confundir a la población de Reino Unido con datos erróneos sobre contagios con COVID-19.

https://www.elconfidencial.com/tecnologia/2020-10-28/excel-coronavirus-covid-datos-caos-programa_2808600/

Lo que hay que hacer es ponerse en el lugar de Antonio y saber en qué pensaba cuando creó aquel ser que, sin quererlo ni desearlo, ha adquirido vida propia; entenderlo y tratar de reemplazarlo lo más pronto posible por una aplicación configurable y escalable en el tiempo para hacerle la vida más llevadera al usuario final y al programador o informático que viene detrás de nosotros.

La siguiente vez que vayas a crear un Access que se alimenta solo y crece cogiendo vida propia, recuerda a Antonio y que en algún momento el trabajo te desbordará y el único trabajo que realizarás en tu día a día será corregir ese Access.

Saludos =)

Construcción de un SOC con herramientas Open Source

En octubre del año pasado presentaba mi trabajo fin de máster, que consistía en poner en marcha un SOC con herramientas Open Source.

Algo que puede ser de interés para las Pymes, que a falta de técnicos capacitados en áreas de ciberseguridad y, bajo la presión de los ciberataques que están a la orden del día debido a la alta demanda de teletrabajo por la pandemia, se ven obligados a proteger a toda costa sus activos tecnológicos.

Una de las herramientas que incluía en mi TFM era Nagios. Se trata de un software que sirve para monitorizar servicios de ordenadores o servidores de una red, ya sean estos Windows, Linux, o incluso hardware de comunicaciones como routers y switches o servidores de impresión.

Los servicios más habituales que requieren esta supervisión son, por ejemplo, SMTP y POP3 en servidores de correo electrónico, HTTP sobre los servidores web, protocolos NTP, ICMP, etc. De esta forma, sabremos si un servidor web está funcionando correctamente o bien ha dejado de responder. Igualmente también se utiliza para monitorizar recursos de los servidores: carga de procesador, espacio en disco duro, memoria, etc. Nagios nos notificará, de la manera que prefiramos, sobre el estado de alerta de alguno de los servicios que estemos vigilando, lo que nos permitirá identificar rápidamente un posible problema.

Creo que a cualquier departamento informático le puede venir bien conocer en todo momento el estado de los servicios que administra. Por muy pequeña que sea la infraestructura, tener visibilidad de lo que sucede con nuestros servicios es una gran ventaja que nos ayuda a ser proactivos.

En capítulos posteriores iré mostrando cómo instalar esta herramienta en un servidor CentOS e ir configurando los distintos servicios tanto en servidores Microsoft Windows como GNU Linux.

Saludos =)

Alertas de resultados en google

Alertas de resultados en google
Hoy les voy a contar algo curioso que «descubrí», más de uno ya lo sabrá pero aquí les va. El día de ayer escuchando Radio Sucre escuché la insólita noticia referente al hallazgo de nada más y nada menos que una bazuca en la ciudadela La Garzota en el norte de Guayaquil. Maximicé mi navegador, Ctrl + t y escribí en google.es «bazuca ecuador». Los resultados encontrados no me extrañaron (0 cero) más que nada porque el locutor acaba de decir que la noticia era «calentita», entonces reparé en algo  que apareció en mi página de resultados que es el verdadero motivo de este post.

Si tenemos una cuenta en google y utilizamos su buscador, en casos como esto cuando no tienes resultados nos aparece un enlace en la parte de abajo que pone «Crear una alerta de correo electrónico para…» y es aquí donde despúes de haberla vista muchas veces esta opción que me ofrecía google y que intuía su prestación por lo explícito de su texto me aventuré a pinchar por mera curiosidad.

El crear una alerta no tiene nada de misterio, todo los campos vienen rellenos ya como se muestra a continuación en la imagen.

Y pulsas en «Crear Alerta». Mi sorpresa esta mañana fue encontrar un correo en el que me ponía un link al diario El Universo con la noticia en cuestión.

No es un gran truco pero estoy seguro que más de uno no lo conocía. Podemos poner a google a trabajar por nosotros buscando actualizaciones sobre temas de interés por nosotros o simplemente como yo, alguna noticia de la que no hemos encontrado información pero seguro estamos que tarde o temprano algo saldrá.

Espero que les sea de utilidad.

Saludos.

Usando Dropbox

Hoy voy a contarles de un servicio que no es nada nuevo pero que aún muchas personas no lo conocen. Se trata de dropbox. Dropbox es una aplicación multiplataforma que nos permite almacenar archivos en la nube. Su funcionamiento se basa en la sincronización. Todos los archivos que subamos en la web de dropbox se sincronizarán en todos los dispositivos desde los cuales nuestra cuenta tenga acceso y viceversa, es decir, todo lo que subamos desde cualquier dispositivo se sincronizará con la web de dropbox. De esta manera siempre tendremos la última versión del archivo en cuestión.

Te resultará útil si trabajas en diferentes lugares con los mismos archivos. También es útil para guardar y compartir fotos debido a su carpeta pública, todo lo que se ponga en la carpeta «Public» tendrá asociado un enlace. Se comparte este enlace y cualquier persona puede visualizar el archivo, sea éste una foto o un archivo de texto.

Ventajas de Dropbox

Tienes desde el momento que te creas una cuenta un espacio de 2GB de almacenamiento en la nube. Espacio que puedes ampliar siguiendo los consejos de «Consigue espacio gratuito» del propio dropbox.

Es multiplataforma, tiene aplicaciones cliente para windows, linux, mac, android e ios, por lo que nunca te desvinculas de tus archivos. Además, siempre puedes acceder a tu almacén de datos desde la aplicación web.

Si te acostumbras a usar esta herramienta, siempre tendrás a mano la última versión del archivo con el que estabas trabajando.

Puedes hacer uso de la carpeta «Public» de múltiples maneras. Puedes usarla para compartir archivos y fotos, o cómo servidor web de alguna página html.

Desventajas de Dropbox

Al ser una aplicación que se sincroniza con la web, nos vemos limitados con la velocidad de nuestra conexión a internet.Si intentamos subir un archivo muy grande y tenemos una conexión no muy rápida entonces tardará en sincronizar, pero una vez subido el archivo sólo actualizará las modificaciones del mismo.

Puedes hacerte una cuenta gratuita en dropbox desde aquí. Así estarás contribuyendo con el espacio gratuito para mi cuenta.

Seguro que se me quedan cositas guardadas acerca de esta herramienta que si la empiezas a utilizar seguro se volverá imprescindible para ti. En otro post comentaré cómo sacarle más provecho a dropbox y darle un uso más profesional.

Saludos,

Ángel Maenza Valencia.

¡Mi primer post!

Hace tiempo me rondaba por la cabeza la idea de mantener un blog, pero por causas de tiempo y de algún que otro imprevisto, esta idea se ha visto aplazada. ¡Pero aquí estoy!, dispuesto a publicar entradas cada vez que pueda. Este espacio lo pienso dedicar a los «descubrimientos» que vaya haciendo con respecto a la tecnología, notas curiosas, noticias, desarrollo de software, redes sociales, entre otras cosas.

Dejaré que mi blog hable por mí y espero que pueda ayudarte con lo que necesites.

Ángel Maenza Valencia les da la bienvenida.