Curso de servidores linux

Objetivo de la práctica

  • Activar/instalar SSH.
  • Crear un usuario “solo SFTP” (sin terminal SSH).
  • Encerrarlo en una carpeta (chroot) para que no vea el resto del sistema.
  • Probar conexión desde Windows con FileZilla o WinSCP.

Instalar y habilitar SSH (que trae SFTP)

En Linux Mint, abre terminal y ejecuta:

1sudo apt update
2sudo apt install -y openssh-server
3sudo systemctl enable --now ssh
4sudo systemctl status ssh --no-pager

Comprueba que escucha en el puerto 22:

1ss -tulpn | grep ssh

Crear un grupo y un usuario “solo SFTP”

  1. Crea el grupo:
1sudo groupadd sftpusers
  1. Crea el usuario (ejemplo: sftpuser) y asígnalo al grupo:
1sudo adduser sftpuser
2sudo usermod -aG sftpusers sftpuser

Crear la carpeta “encerrada” (chroot)

La idea: el usuario entrará a /sftp/sftpuser pero no podrá salir.

  1. Crea estructura:
1sudo mkdir -p /sftp/sftpuser/upload
  1. Permisos correctos para chroot (muy importante):
  • La carpeta raíz del chroot debe ser de root y no escribible por el usuario.
1sudo chown root:root /sftp
2sudo chmod 755 /sftp
3
4sudo chown root:root /sftp/sftpuser
5sudo chmod 755 /sftp/sftpuser
  1. La carpeta donde SÍ podrá escribir (upload):
1sudo chown sftpuser:sftpusers /sftp/sftpuser/upload
2sudo chmod 775 /sftp/sftpuser/upload

Configurar SSH para forzar SFTP y bloquear terminal

Edita la config:

1sudo nano /etc/ssh/sshd_config

Asegúrate de que existe esta línea (suele venir ya):

1Subsystem sftp internal-sftp

Y al final del archivo, añade:

1Match Group sftpusers
2    ChrootDirectory /sftp/%u
3    ForceCommand internal-sftp
4    X11Forwarding no
5    AllowTcpForwarding no
6    PasswordAuthentication yes

Guarda (Ctrl+O) y sal (Ctrl+X).

Reinicia SSH:

1sudo systemctl restart ssh

Probar desde Linux (rápido)

Desde la propia Mint:

1sftp sftpuser@localhost

Deberías entrar y ver algo como que estás en / y dentro estará upload.


Conectarte desde Windows (FileZilla o WinSCP)

Opción A: FileZilla

  • Protocolo: SFTP
  • Host: 127.0.0.1
  • Puerto: 2222
  • Usuario: sftpuser
  • Contraseña: la que pusiste con adduser
  • Carpeta remota: verás upload y podrás subir ahí.

Opción B: WinSCP

  • File protocol: SFTP
  • Host name: 127.0.0.1
  • Port number: 2222
  • User name: sftpuser

Opcional: Configurar el firewall

Ver si el firewall está activo

Primero comprobamos el estado:

1sudo ufw status
Puede salir:

Status: inactive
Status: active

Abrir el puerto de SSH

Si SSH está en el puerto 22:

1sudo ufw allow 22

o

1sudo ufw allow ssh

Ahora activamos:

1sudo ufw enable