Configurar acceso sFTP a través de OpenSSH ,enjaular usuario en carpeta y evitar que conecte por SSH

Sección Unicamente para Tutoriales y Guías
Responder
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

Hola a todos!
Con este tutorial os voy a enseñar como se configura correctamente el acceso sFTP y enjaular a un usuario pretederminado a su carpeta .

Nota: Por seguridad de nuestro servidor, crearemos usuarios SOLO para acceso sFTP ( evitar a toda costa acceso ROOT ).

Imagen
¿Que es sFTP?
sFTP es un protocolo de transferencia de archivos que utiliza SSH (Secure Shell) para asegurar los comandos y los datos que se transfieren entre el cliente y el servidor, por lo que dejan de ser vulnerables a escuchas furtivas, interferencias o falsificaciones.

Con sFTP, los datos transferidos entre el cliente y el servidor están cifrados, lo que evita que usuarios no autorizados tengan acceso a ellos. Deberías utilizar sFTP cuando necesites transferir datos confidenciales o de carácter crítico entre un cliente y un servidor configurado para usar SSH en transferencias seguras.

SSH File Transfer Protocol, es completamente diferente del protocolo FTP (File Transfer Protocol). SFTP fue contruído desde cero y añade la característica de FTP a SSH. Sólo usa un canal de comunicación, envía y recibe los mensajes en binario (y no en formato texto como hace FTP).
-Al conectarse por sFTP, utilizaremos el mismo puerto que SSH ( Puerto por defecto 22 ) .
-EL servicio sFTP viene preinstalado en Linux ( en el caso si utilizamos OpenSSH)

Instalando OpenSSH (evitar paso si ya lo tenemos instalado):

Antes de instalar nada, es necesario actualiar repositorios, para ello iremos al terminal SSH y pondremos el comando:

Código: Seleccionar todo

sudo apt-get update
sftp1.png
sftp1.png (8.16 KiB)
Ahora instalamos OpenSSH con el comando:

Código: Seleccionar todo

sudo apt-get install openssh-server
(Saldrá el siguiente mensaje si ya lo tenemos instalado)
sftp2.png
sftp2.png (6.33 KiB)
Crear usuario únicamente para Acceso por sFTP:

Para crear el usuario para tener acceso a dicha carpeta por sFTP ( por ejemplo: kike ) pondremos lo siguiente:

Código: Seleccionar todo

sudo adduser kike
Y a continuación nos pedirá una contraseña, la introducimos y ya tenemos creado el usuario.
sftp3.png
sftp3.png (6.03 KiB)
Configurando OpenSSH y el acceso sFTP:

Ahora vamos a editar el archivo de configuracion OpenSSH introduciendo el comando en la terminal SSH:

Código: Seleccionar todo

sudo nano /etc/ssh/sshd_config
Buscaremos la siguiente linea:
Subsystem sftp /usr/lib/openssh/sftp-server
Y la modificaremos por:
Subsystem sftp internal-sftp
Ahora en la parte inferior de archivo copiaremos lo siguiente:
Match user kike
ChrootDirectory /media/kike
X11Forwarding no
AllowTcpForwarding no
PasswordAuthentication yes
ForceCommand internal-sftp
Explicación:
Match user kike : Usuario que hemos creado anteriormente para conectarnos únicamente por sFTP.
ChrootDirectory /media/kike : Directorio en el cual vamos a enjaular al usuario "Kike" ((solo podrá tener acceso a esa ruta)) .
ForceCommand internal-sftp : Con esta linea conseguimos que solo se pueda conectar por sFTP ((Cancelamos conexiones por SSH, así nos evitaremos males mayores))

sftp4.png
Una vez modificado el archivo, guardaremos los cambios pulsando estas teclas:
Control + X
tecleamos Y
ENTER


Y ahora vamos a darle permisos correspondientes a la carpeta configurada (/media/kike) dependiendo del uso que queramos ( lectura, escritura,ejecución).
En este caso le daremos permisos de lectura ,escritura y ejecución.

Hacemos propietario a Kike en la carpeta /media/kike
sudo chown kike -R /media/kike
Damos los permisos con:
sudo chmod 744 -R /media/kike
Ahora solo nos queda reiniciar la Pi para que se guarden correctamente todos los cambios , ponemos el siguiente comando en el terminal SSH:

Código: Seleccionar todo

sudo reboot
Una vez este iniciada, vamos a verificar que funciona correctamente el acceso FTP y que enjaula la carpeta, para ello vamos a conectarnos por ejemplo descargando FileZilla
(Ojo, debemos crear una nueva conexión y que sea por sFTP, no utilizeis conexión rapida) :D
sftp5.png
Y todo listo!!! Ya teneis acceso sFTP enjaulado!!!
Para cualquier duda o problema que tengais, aquí estoy a vuestra disposición :mrgreen:
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
Aerz
Pi Omega
Pi Omega
Mensajes: 88
Registrado: 02 Ago 2016, 00:26
Agradecido: 5 veces
Agradecimiento recibido: 1 vez

Gran tutorial. Me quedo esperando a mi OPP2 a que llegue para empezar a configurarla ¡¡que ganas!! :silbido :silbido
Responder