16- SFTP
PROTOCOLO SFTP
SFTP transmite información a través de Secure Shell (SSH) para establecer una conexión segura y proporcionarle a las organizaciones un nivel más alto de protección en las transferencias de archivos. Esto se debe a que SFTP usa encriptación generada por algoritmos para mover la información de forma segura a su servidor, y mantener los archivos ilegibles durante el proceso, y además la autenticación evita el acceso no autorizado a los archivos durante la operación.
Si bien SFTP no requiere autenticación de doble factor, el usuario tiene la opción de solicitar tanto una ID de usuario como una contraseña, así como claves SSH, para una conexión más segura. Generar claves SSH ayuda a evitar que impostores o hackers se conecten al servidor. Los pares de claves SSH se deben generar con anticipación.
SFTP da la opción de realizar una gran variedad de tareas para gestionar archivos sensibles, desde eliminar archivos hasta reanudar transferencias pausadas. A diferencia de FTP sobre SSL/TLS (FTPS), SFTP solo necesita un único número de puerto (puerto 22) para establecer una conexión con un servidor.
PAQUETE DE INSTALACION
sudo apt install vsftpd
CONFIGURACION DEL SERVIDOR
/etc/vsftpd.conf --> descomentar write enable= YES
descomentar local_umask= 022
descomentar chroot_local_user=YES
descomentar chroot_list_file=/etc/vsftpd.chroot_list
/etc/vsftpd.chroot_list --> Este archivo no existe, hay que crearlo. Es una lista de los usuarios con acceso al sftp.
VAMOS A GENERAR UNA ESTRUCTURA DE DATOS PARA UTILIZAR POR LOS USUARIOS DEL FTP.
mkdir /home/ftp
--> Hay que crear una carpeta cualquiera en una ruta donde todos tengan permisos para compartirla.
mkdir /home/ftp/ftpdir
--> Por seguridad se les da permisos en otra carpeta dentro.
mkdir /home/ftp/ftpdir/usuarioftp
--> Esta es la carpeta personal compartida del usuarioftp.
useradd -g ftp -d /home/ftp/ftpdir/ -c "usuarioftp" usuarioftp
passwd usuarioftp
chmod 775 /home/ftp/
chgrp ftp /home/ftp/ftpdir
chmod 750 /home/ftp/ftpdir
chown usuarioftp /home/ftp/ftpdir/usuarioftp (no cambio el grupo propietario a ftp por que no es publica)
chmod -R 750 /home/ftp/ftpdir/usuarioftp #-R para que los hijos hereden los permisos de la carpeta
VAMOS A GENERAR UNA SHELL PARA LOS USUARIOS FTP
sudo echo /bin/ftp >> /etc/shells #añado una linea con /bin/ftp
sudo nano /etc/passwd #modificamos la shell de los usuarios que vayan a utilizar la ftp por la /bin/ftp.
Hasta este momento lo que hemos configurado es un servidor ftp normal al que se puede acceder libremente desde cualquier punto de la red local con un cliente ftp como filezilla.
Ahora vamos a darle forma para tener una autenticacion con SSL:
mkdir /etc/vsftpd
--> Para generar dentro el certificado autofirmado
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout vsftpd.pem -out vsftpd.pem
/etc/vsftp.conf --> ssl_enable= YES
rsa_cert_file=directorio_donde_esta_el_certificado
rsa_private_key_file=lo_mismo_que_arriba
CON ESTO YA TENDRIA MI SFTP TRABAJANDO CON CERTIFICADO AUTOFIRMADO.
REFERENCIAS
Última actualización