Usuarios sftp enjaulados con logs para registro de eventos

Escenario

Un cliente nos pide que montemos un servidor FTP para que nos pueda hacer llegar periódimante ficheros con datos. La máquina en la que vamos a configurarlo corre en un ubuntu server 18.04. y tiene instalado un openssh-server.

Requisitos

  • Debe utilizar el protocolo SFTP, que ofrece las funcionalidades de FTP sobre el protocolo SSH.
  • El usuario debe de estar enjaulado (chroot) en su home, no pudiendo acceder a ningún directorio fuera de esta
  • Debe registrarse la actividad del usuario FTP

Implementación

Usuarios sftp
Lo primero creamos un grupo para los usuarios que vayan a usar el servicio SFTP. Ahora creamos los usuarios y los asignamos a ese grupo: Por supuesto, si no existen creamos los directorios:
El propietatio de estos directorios y los que estén por encima, ha de ser root:root y estos no pueden ser modificados por ningún otro usuario
Y no olvidemos asignar las contraseñas:
Configuración de SSHD
Vamos a editar /etc/ssh/sshd_config para que el demonio de SSHD reconozca y gestione adecuadamente los usuarios del grupo sftp: Lo primero cambiamos la línea que define el Subsystem sftp: Y, al final del fichero de configuración añadimos:
Los registros
Por defecto no vas a ver ningún registro para la actividad del sftp, solo los habituales de sshd «session opened» y «session closed» en /var/log/auth.log El problema es que como los usuarios del grupo sftp están «enjaulados» en su propio directorio, no tienen acceso para escribir en los registros del sistema. De modo que hay crear un socket en su propio directorio para encauzar los registros al nuevo fichero de registro sftp.log. Primero creamos un directorio /dev en cada una de las home de los usuarios sftp: Ahora configuramos rsyslog para que genere los registros creando el fichero /etc/rsyslog.d/60-sftp.conf con este contenido: Por último reiniciamos los servicios implicados:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *