Configuración de SSH y/o FTP para recibir datos

Introducción

El método de transferencia estándar en Pandora FMS para transmitir ficheros, Tentacle, necesita del lenguaje de programación Perl instalado. Algunos dispositivos, como por ejemplo Sistemas ESX (UNIX), carecen de dicha herramienta. Cuando esto ocurre, las alternativas son usar FTP o SSH para transferir datos de monitorización.

Pandora FMS puede usar el FTP o el protocolo SSH para copiar los paquetes de datos XML generados por los agentes software hacia el servidor PFMS.

Configuración SSH para recibir datos en Pandora FMS

Tenga siempre en cuenta la Arquitectura de Seguridad de Pandora FMS.

Considere el servidor de Pandora FMS como Servidor y cada uno de los dispositivos que ejecutan el Agente Software como Cliente. En todo momento se podrá consultar con cuál usuario está trabajando por medio del comando whoami.

Creación de usuario en Servidor

Se debe crear un usuario pandora en la máquina donde ejecuta el servidor Pandora FMS. Dicha máquina recibirá los datos por SSH. Si ya se ha instalado un servidor Pandora FMS seguramente ese usuario ya está creado. Establezca una contraseña robusta para ese usuario con el comando:

passwd pandora

Configuración de usuario en Servidor

En el servidor, se debe crear un directorio llamado /home/pandora/.ssh con permisos 750 y usuario pandora:root.

Creación de claves en Cliente

Se ha de crear en cada máquina que ejecute un Agente Software que utilizará SSH, una pareja de claves (privada y pública). Para ello se ejecute el comando siguiente con el mismo usuario con el que se ejecuta el Agente Software de Pandora FMS:

ssh-keygen

Se mostrarán una serie de preguntas a las que tendrá que contestar simplemente pulsando la tecla Intro o Enter. Con esto ha creado una clave pública y una privada para ese usuario en la máquina. Ahora se debe copiar a la máquina de destino, que es el servidor de Pandora FMS a donde se necesita enviar los datos de monitorización.

Copia de clave pública al Servidor

La clave pública que acaba de generar se puede copiar de dos maneras al Servidor de Pandora FMS.

Copia manual

El fichero de clave pública generado en el Cliente es:

/home/<user>/.ssh/id_rsa.pub

Donde < user > es el nombre de usuario que ejecuta el Agente Software de Pandora FMS en el Cliente. Si el par de claves fue generada como usuario raíz o root, estará en:

/root/.ssh/id_rsa.pub

Este fichero tendrá un contenido similar a este:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzqyZwhAge5LvRgC8uSm3tWaFV9O6fHQek7PjxmbBUxTWfvNbbswbFsF0esD3COavziQAUl3rP8DC28vtdWHFRHq+RS8fmJbU/VpFpN597hGeLPCbDzr2WlMvctZwia7pP4tX9tJI7oyCvDxZ7ubUUi/bvY7tfgi7b1hJHYyWPa8ik3kGhPbcffbEX/PaWbZ6TM8aOxwcHSi/4mtjCdowRwdOJ4dQPkZp+aok3Wubm5dlZCNLOZJzd9+9haGtqNoAY/hkgSe2BKs+IcrOAf6A16yiOZE/GXuk2zsaQv1iL28rOxvJuY7S4/JUvAxySI7V6ySJSljg5iDesuWoRSRdGw== root@dragoon

Dicho contenido debe añadirlo al final del fichero authorized_keys en el Servidor. Su ruta es:

/home/pandora/.ssh/authorized_keys

El archivo authorized_keys en el Servidor debe pertenecer (ownership) al usuario pandora:root y debe tener permisos 600.

Copia automática

Utilice el siguiente comando en el Cliente:

ssh-copy-id pandora@< server_address >

Donde < server_address > es la dirección IP o URL del Servidor.

Se preguntará la contraseña del usuario pandora del servidor (establecida en el paso anterior) y una vez que lo confirme se mostrará un mensaje similar al siguiente:

Now try logging into the machine, with "ssh 'pandora@< server_address >'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

Realice esa prueba para verificar que la conexión automática al Servidor Pandora FMS con el usuario pandora desde el Cliente (con el usuario que ejecuta el Agente Software):

ssh pandora@< server_address >

Una vez logre conectar al Servidor de la manera indicada, el Agente Software en el Cliente podrá comenzar a enviar datos de monitorización.

Configuración del Cliente

Una vez se haya verificado la conexión por medio de SSH, este será el método empleado por los agentes software para copiar datos en el directorio del Servidor de Pandora FMS. Dicho directorio está ubicado en:

/var/spool/pandora/data_in

Verifíquese que el directorio /var/spool/pandora/data_in existe y el usuario pandora tiene permisos de escritura, pues de lo contrario no funcionará.

Por último, se modifica la configuración del agente software en el Cliente para especificar que el método de copia es SSH. Esto se modifica en el fichero /etc/pandora/pandora_agent.conf, en el token de configuración transfer_mode. Se debe reiniciar el servicio del agente software en cada Cliente luego de este cambio.

Aseguramiento del servidor SSH

Pandora FMS emplea, entre otros, sftp/ssh2 (SCP) para copiar ficheros de datos desde los agentes software al servidor. Debido a esto, necesitará al menos un servidor de datos con un servidor SSH2 a la escucha del usuario pandora. Esto podría resultar un riesgo significativo en una red que se necesite estar estrictamente asegurada. OpenSSH2 es muy seguro, pero respecto a seguridad informática no existe nada que resulte absolutamente seguro; por tanto, se deben tomar medidas para hacerlo «más» seguro.

Es posible prohibir el acceso por SSH para ciertos usuarios, así como configurar restricciones al acceso por FTP.

Para ello se deberá modificar el usuario pandora en el Servidor. Este usuario debe tener una contraseña robusta. Se cambiará su shell de inicio de sesión para restringir el acceso por SSH al usuario, y su directorio home, para evitar su acceso a otras carpetas:

usermod -s /sbin/nologin -d /var/spool/pandora/data_in pandora

Con estos cambios al usuario pandora en el Servidor, cuando se inicie sesión por SSH no podrá ejecutar comandos con él en una terminal interactiva.

Configuración FTP para recibir datos en Pandora FMS

La configuración en el cliente para enviar datos por FTP permite especificar el usuario y la contraseña que se va a enviar, con lo que es bastante sencillo implementar la copia por FTP en lugar de por Tentacle.

Además de configurar los agentes software de Pandora FMS para el envío de datos con FTP, se tendrá que configurar un servidor FTP en donde ejecute el servidor Pandora FMS, establecer una contraseña para el usuario pandora y permitir acceso de escritura al usuario pandora al directorio /var/spool/pandora/data_in y sus subdirectorios.

Se deberá configurar el servidor FTP para adecuarlo a estas necesidades; para ello, en esta guía se usa vsftpd.

Instalación de vsftpd

El inconveniente de usar FTP en lugar de Tentacle es que el envío de datos por FTP es menos seguro, ya que al tener un FTP funcionando en el servidor de Pandora FMS, esto lo hace más vulnerable a fallos inherentes al diseño del sistema FTP. En los apartados siguientes se indicará cómo configurar de manera mínima el servidor vsftpd (llamado simplemente Servidor).

Por ello, y de la misma manera que se ha deshabilitado por seguridad el login por SSH para el usuario pandora, se debe establecerse un método de acceso seguro para los usuarios por FTP. Un método seguro y sencillo para esto es crear una regla PAM para vsftpd. Para esto debe crear un archivo llamado /etc/pam.d/ftp que contenga lo siguiente:

/etc/pam.d/ftp
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required    pam_succeed_if.so quiet user ingroup pandora
auth    required    pam_succeed_if.so quiet shell = /sbin/nologin

En el archivo de configuración de vsftpd (/etc/vsftpd.conf) se configura el token pam_service_name:

pam_service_name=ftp

Con esta configuración solamente los usuarios que pertenezcan al grupo pandora y tengan nologin como shell asociada podrán conectar a Pandora FMS por FTP, por lo que se debe crear el grupo pandora que incluya al usuario pandora. En todo caso verifique que ambos existan en el Servidor.

Con una última configuración del archivo /etc/vsftpd.conf, se restringirá el acceso de los usuarios que accedan por FTP a su directorio raíz. Los parámetros son los siguientes:

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.nochroot_list

En caso de que se necesite excluir algún usuario de este comportamiento y evitar restringirlo a su Chroot solamente habrá que incluir dicho usuario en este archivo vsftpd.nochroot_list (un usuario por línea).

Otras opciones a configurar para establecer una mayor seguridad son las siguientes:

dirlist_enable=NO
download_enable=NO
deny_file=authorized_keys
deny_file=.ssh
chroot_local_user=YES

Se debe reiniciar el servicio vsftpd tras hacer cambios en el fichero de configuración para que surtan efecto.

Con esta configuración, el usuario estará restringido a su directorio raíz (/var/spool/pandora/data_in en el caso del usuario pandora). El usuario podrá realizar transferencias vía FTP (enviar archivos), pero no podrá listar archivos.

Se recomienda el intentar iniciar sesión con el usuario pandora en el FTP, cambiar de directorio y listar archivos; si no se consigue entonces la configuración habrá sido un éxito.

Volver al índice de documentación de Pandora FMS