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:

Publicaciones Similares

  • |

    Código espagueti emocional: cuando tu software necesita terapia

    Una personalidad controladora sufre si las cosas no salen como quiere. Si le salen bien, sufren los demás. Así, sin quererlo, se me ha ocurrido una metáfora para ilustrar este tipo de comportamiento: el código espagueti emocional. Sin comerlo ni beberlo, un buen día me tocó adoptar un código salvaje de varios miles de líneas,…

  • Can’t connect to local MySQL server through socket

    Escenario No conseguimos conectarnos al servidor de mysql desde la propia máquina, pero sí remotamente. Cuando el cliente de MySQL se conecta a localhost, lo intenta usando un fichero socket en vez de el protocolo TCP/IP. Una manera pues de solucionar el problema es especificando la IP del host: mysql -uroot -p -h 127.0.0.1 Para solucionarlo de manera permanente,…

  • |

    Cómo ampliar el espacio en disco en 1and1

    Escenario Hemos contratado un servidor dedicado en 1and1 (ubuntu 14.04) y al acceder por ssh constatamos que no disponemos de todo el espacio en disco disponible: $ df -hFilesystem Size Used Avail Use% Mounted onudev 3.9G 4.0K 3.9G 1% /devtmpfs 798M 592K 797M 1% /run/dev/md1 4.0G 990M 3.0G 25% /none 4.0K 0 4.0K 0% /sys/fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 3.9G 0 3.9G 0% /run/shmnone 100M 0 100M 0% /run/user/dev/mapper/vg00-usr 4.8G 1.3G 3.3G 28% /usr/dev/mapper/vg00-var 4.8G 812M 3.8G 18% /var/dev/mapper/vg00-home 4.8G 10M 4.6G 1% /home Objetivo Aumentar el espacio disponible para dar cabida a nuestros recursos. Solución Nota: sólo aplicable a sistemas linux Primer paso Comprobamos el espacio en disco real: ~$ sudo fdisk -lDisk /dev/sda: 240.1 GB, 240057409536 bytes255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x24e3fc12   Device Boot      Start         End      Blocks   Id  System/dev/sda1            2048     8390655     4194304   fd  Linux raid autodetect/dev/sda2         8390656    12584959     2097152   82  Linux swap / Solaris/dev/sda3        12584960   468862127   228138584   fd  Linux raid autodetect Segundo…

  • Despliegue aplicación Spring Boot

    Escenario Queremos desplegar en la nube una aplicación desarrollada con Spring Boot cuyo código está bajo control de versiones. Para este artículo usaremos ubuntu 16.04 y java 8, pero el procedimiento debería ser el mismo con versiones más actuales. Problema Ninguno. Realmente es sencillo desplegar una aplicación de este tipo si se dispone de las…

  • Instalando EAC en Ubuntu

    Para ser más concretos en Ubuntu 12.04. Ahí van los pasos: Para estar a la última me he instalo lo más nuevecito (hasta la fecha) de wine, en dos pasos: 1. Añadimos la fuente siguiente a nuestro repositorio: $ sudo add-apt-repository ppa:ubuntu-wine/ppa 2. El consabido: $ sudo apt-get update 3. seguido de un: $ sudo apt-get install wine1.7 4. Antes de proseguir configuramos mínimamente wine:…

Deja una respuesta

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