En la entrega anterior creamos una base de infraestructura tipo bare metal en Linode con subredes pública y privada, proxys y cortafuegos propios. Hoy vamos un nivel más profundo: construiremos un servidor SFTP seguro desde cero usando un nodo en la subred pública, reforzando competencias de ciberseguridad y operación sin depender de terceros.
Por qué construir tu propio SFTP seguro
- No necesitas un SaaS ni servicio gestionado, mantienes el control. - Controlas acceso, retención e aislamiento. - Comprendes cómo funcionan los permisos y la seguridad de archivos por dentro. - Puedes orquestar automatizaciones y flujos a tu medida.
Cuándo es especialmente útil
- Colaboras con socios que deben enviarte ficheros de forma segura. - Quieres recibir logs, informes o entradas ETL en tu infraestructura. - Estás aprendiendo SSH, chroot jails y permisos en Linux.
Requisitos previos
- Una instancia Linode en la subred pública. - Una IP pública y el puerto 22 abierto solo a IPs de confianza. - Conocimientos básicos de CLI en Linux. Usaremos Ubuntu 22.04 LTS, pero vale cualquier distro con openssh-server.
Paso a paso
1. Instalar OpenSSH. Ejecuta: sudo apt update; sudo apt install openssh-server -y. Verifica que el servicio esté activo.
2. Crear un usuario solo SFTP. Ejecuta: sudo groupadd sftpusers; sudo useradd -m -G sftpusers -s /sbin/nologin sftpuser1; sudo passwd sftpuser1. Esto evita acceso shell y agrupa usuarios lógicamente.
3. Estructura de directorios segura. OpenSSH con ChrootDirectory exige que el directorio padre sea de root y no sea escribible. Crea y ajusta permisos: sudo mkdir -p /sftp/sftpuser1/upload; sudo chown root:root /sftp/sftpuser1; sudo chmod 755 /sftp/sftpuser1; sudo chown sftpuser1:sftpusers /sftp/sftpuser1/upload. Así, upload es escribible, pero la jaula sigue segura.
4. Configurar sshd_config para la jaula SFTP. Abre el archivo de configuración con privilegios y añade al final: Match Group sftpusers; ChrootDirectory /sftp/%u; ForceCommand internal-sftp; X11Forwarding no; AllowTcpForwarding no. Después reinicia el servicio: sudo systemctl restart ssh.
5. Autenticación por claves SSH. En tu equipo local: ssh-keygen -t rsa -b 4096 -f ~/.ssh/sftpuser1_key. En el servidor: sudo mkdir -p /home/sftpuser1/.ssh; edita /home/sftpuser1/.ssh/authorized_keys para pegar la clave pública; luego: sudo chown -R sftpuser1:sftpusers /home/sftpuser1/.ssh; sudo chmod 700 /home/sftpuser1/.ssh; sudo chmod 600 /home/sftpuser1/.ssh/authorized_keys. Puedes desactivar el login por contraseña si lo deseas.
6. Endurecer la seguridad. Expón el puerto 22 únicamente a la IP de tu oficina o VPN. Instala fail2ban con: sudo apt install fail2ban. Considera logrotate y auditoría básica para eventos de acceso y bloqueo.
7. Probar el acceso. Desde tu terminal: sftp -i ~/.ssh/sftpuser1_key sftpuser1@IP_de_tu_Linode. Dentro de la sesión, ejecuta: cd /upload; put testfile.txt. Recuerda: SFTP no es un shell; usa comandos como put, get, ls, cd y rm.
Por qué en la subred pública
Este servidor debe ser accesible desde internet. En una subred privada necesitarías un bastión o una VPN para llegar a él, ideal para automatizaciones internas pero no para intercambio externo. La subred pública ofrece acceso controlado, reforzado con cortafuegos e ingreso por clave SSH. Si gestionas cargas híbridas o multicloud, nuestros servicios cloud AWS y Azure te ayudan a normalizar seguridad y despliegues.
Lecciones clave
- Los directorios chroot deben pertenecer a root y no ser escribibles. - SFTP es una alternativa segura a adjuntos de correo o herramientas de terceros. - Puedes seguir siendo propietario de tus flujos de archivos en un entorno cloud moderno.
Pasos siguientes recomendados
- Automatiza subidas desde otros servicios o jobs programados. - Encadena el procesamiento de archivos entrantes con inotify o systemd. - Realiza copias de seguridad de la carpeta de subida hacia S3. - Crea un registro DNS, por ejemplo sftp.tudominio.com, apuntando a tu IP en Linode.
Cómo te ayuda Q2BSTUDIO
En Q2BSTUDIO somos especialistas en software a medida y aplicaciones a medida, integración de seguridad con prácticas de ciberseguridad y pentesting, y despliegues en servicios cloud AWS y Azure. Diseñamos arquitecturas seguras, automatizamos flujos y conectamos tu SFTP con analítica avanzada, inteligencia artificial e inteligencia de negocio. Si necesitas fortalecer controles de acceso, segmentación, análisis de logs o simulaciones de ataque, consulta nuestros servicios de ciberseguridad.
Beneficios adicionales para tu estrategia
- Integra IA para empresas, agentes IA y modelos que clasifiquen o validen archivos entrantes. - Enlaza tus cargas con cuadros de mando en power bi y servicios inteligencia de negocio para seguimiento y auditoría. - Automatiza procesos de ingestión y reporte, integrando pipelines con tu ERP o CRM.
Cierre
Ser dueño de tu infraestructura no es reinventarlo todo; es entender los tradeoffs y construir justo lo que necesitas, cuando lo necesitas. Un SFTP seguro en la subred pública de Linode es un bloque fundamental que puedes extender con aplicaciones a medida, inteligencia artificial y un gobierno de datos robusto. En Q2BSTUDIO te acompañamos desde la arquitectura hasta la operación continua para que tu plataforma crezca con seguridad y eficiencia.