Servidor SFTP Ubuntu Laravel

Configurar el servidor SFTP en Ubuntu + Conectarse con Laravel

Por supuesto, esta guía se realiza bajo su propio riesgo. No asumimos ninguna responsabilidad.

¿Por qué elegir SFTP en lugar de MinIO o S3?

Hay varias razones para elegir SFTP como solución de servidor de archivos en lugar de MiniIO / T3:

  • Configuración más fácil, sencilla y ordenada
  • Más fácil de actualizar que un servidor MinIO
  • Utiliza solo el puerto 22 (u otro puerto asignado)

¿Por qué elegir TransIP o un proveedor de VPS?

Estas son algunas ventajas de utilizar TransIP o un proveedor de VPS para su servidor SFTP:

  • Infraestructura existente con copias de seguridad
  • Posibilidad de vincular gran almacenamiento para mayor capacidad de almacenamiento
  • Opciones de actualización sencillas para obtener espacio adicional en disco. No olvide asignar el nuevo espacio en disco en Linux.

A otras fiestas les gusta NetCup tiene servidores de almacenamiento dedicadosNo los hemos probado, por lo que no estamos seguros de si son escalables. Probamos un VPS TransIP junto con un Ampliación de almacenamiento.

Configuración de un servidor SFTP sin gran capacidad de almacenamiento

Paso 1: Configurar el servidor TransIP/VPS con el grupo SFTP SSD

Elija TransIP como su proveedor de servidor y configure un grupo SFTP SSD:

sudo groupadd sftp

Paso 2: Configurar el servidor SFTP en Ubuntu

Siga las instrucciones en https://linuxhint.com/setup-sftp-server-ubuntu/ para configurar el servidor SFTP.

sudo nano /etc/ssh/sshd_config

Añade las siguientes líneas:

Grupo de coincidencias sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
sudo systemctl reiniciar ssh
sudo addgroup sftp sudo useradd -m TUUSUARIO -g sftp sudo passwd TUUSUARIO sudo chmod 700 /home/TUUSUARIO/

Paso 3: Editar la configuración de SSH

Editar el archivo de configuración SSH:

sudo nano /etc/ssh/sshd_config

Cambie la siguiente línea:

Autenticación de contraseña sí

Esto es menos seguro, así que elige al menos una contraseña segura. Pero mejor aún, usa claves SSH, que son MUCHO más seguras (si no las filtras).

Reiniciar SSH:

sudo systemctl reiniciar ssh

Paso 4: Configurar el firewall

Configure su firewall para permitir conexiones entrantes solo en el puerto 22 desde su IP residencial, IP de oficina e IP de servidor si es necesario.

Paso 5: Iniciar sesión a través del cliente SFTP

Utilice un cliente como FileZilla para conectarse a su servidor SFTP:

sftp TUUSUARIO@dirección.ip

Paso 6: Instalar el controlador SFTP Flysystem Laravel

Instalar el Controlador SFTP Flysystem Laravel Para habilitar la integración de SFTP en su aplicación Laravel:

El compositor requiere league/flysystem-sftp-v3 "^3.0"

Paso 7: Configurar SFTP en Laravel

Edite la configuración del sistema de archivos de su Laravel (config/sistemasdearchivos.php):

'sftp' => [ 'driver' => 'sftp', 'host' => env('SFTP_HOST'), // Configuración para la autenticación básica... 'username' => env('SFTP_USERNAME'), 'password' => env('SFTP_PASSWORD'), 'throw' => env('APP_DEBUG'), 'root' => env('SFTP_USERNAME'), ],

Paso 8: Crear un script de verificación de espacio en disco

Crear un script de shell (comprobación de espacio en disco.sh) para comprobar periódicamente el espacio en disco de su servidor. Existen varias guías para ello, como: https://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html

Paso 9: Agregar script a Cron

Agregue el script de verificación de espacio en disco al crontab para ejecutarlo en intervalos específicos.

Cómo solicitar almacenamiento de gran capacidad TransIP

Si necesita capacidad de almacenamiento adicional, siga la guía en https://www.transip.nl/knowledgebase/artikel/195-big-storage-aan-linux-koppelen/ Para solicitar almacenamiento de gran capacidad a TransIP. En inglés: https://www.transip.eu/knowledgebase/entry/195-how-add-big-storage-linux/

Configuración de un usuario de Big Storage o un directorio alternativo

Si desea utilizar un directorio diferente o desea utilizar TransIP Big Storage, que está montado, por ejemplo, en /mnt/bigstorage, siga estos pasos. Comience por crear un grupo SFTP de Big Storage:

sudo groupadd sftpbigstorage sudo nano /etc/ssh/sshd_config

Añade las siguientes líneas:

Grupo de coincidencias sftpbigstorage ForceCommand internal-sftp ChrootDirectory /mnt/bigstorage/%u PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no

Luego ejecuta (reemplaza myuser01 con tu nombre de usuario):

sudo mkdir /mnt/bigstorage/myuser01 sudo chown root:root /mnt/bigstorage sudo chown -R root:root /mnt/bigstorage/myuser01 sudo chmod -R 755 /mnt/bigstorage/myuser01 sudo adduser --home /mnt/bigstorage/myuser01 myuser01 sudo usermod -a -G sftpbigstorage myuser01 sudo usermod -s /sbin/nologin myuser01 sudo systemctl restart sshd sudo mkdir /mnt/bigstorage/myuser01/files/ sudo chown -R myuser01:myuser01 /mnt/bigstorage/myuser01/files/ sudo systemctl restart ssh

Al copiar archivos a través de sftp es posible que necesites reasignar los permisos:

sudo chown -R myuser01:myuser01 /mnt/bigstorage/myuser01/files/

NOTA MÁS IMPORTANTE: sftp necesita que el root sea el propietario de /mnt/bigstorage y /mnt/bigstorage/USERNAME. Para que el usuario pueda editar algo, se requiere un subdirectorio como /mnt/bigstorage/USERNAME/files o /mnt/bigstorage/USERNAME/www. Esto se describe perfectamente en Esta publicaciónTambién te resultará útil esta guía: https://thunderysteak.github.io/sftp-user-chroot

Si sigue estos pasos, podrá configurar un servidor de archivos SFTP básico en su servidor mediante TransIP u otro proveedor de VPS. SFTP ofrece una alternativa más simple y menos compleja a servicios como MiniIO o S3, al mismo tiempo que permite transferencias de archivos seguras. La integración de SFTP con Laravel/PHP permite una gestión de archivos sin inconvenientes en sus aplicaciones.

Otras alternativas para el alojamiento de archivos con SFTP

  • Uso de Amazon S3: funciona bien, pero es caro
  • Bunny Storage:Interesante alternativa SFTP, con un precio bastante decente y fácil de usar. configuración.
  • MiniIO: Alternativa a S3 autoalojada

Deja un comentario

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

es_ESEspañol
Ir arriba