SFTP

Guía del puerto SFTP: transferencia segura de archivos a través de SSH

Comprenda cómo SFTP usa SSH, cuándo exponer el puerto 22, cómo probar el acceso remoto y cómo proteger cuentas, directorios y registros de auditoría.

Puerto predeterminado
22
Protocolo
TCP
Uso principal
Transferencia segura de archivos
Transporte
SSH

¿Qué es el puerto SFTP?

SFTP es el protocolo de transferencia de archivos SSH. Por lo general, se ejecuta en el mismo puerto TCP que SSH, el puerto 22, y utiliza el transporte SSH para autenticar usuarios, cifrar transferencias de archivos y proteger operaciones de directorio. A diferencia del FTP clásico, SFTP no necesita un canal de comando y un canal de datos separados.

  • SFTP normalmente usa SSH en el puerto 22

    Si un servidor SSH está escuchando en 22 y SFTP está habilitado para la cuenta, los clientes SFTP generalmente pueden conectarse sin abrir otro puerto.

  • La transferencia segura aún necesita control de acceso

    El cifrado protege los archivos en tránsito, pero aún necesita una autenticación sólida, directorios restringidos, privilegios mínimos y registros.

Cómo funciona SFTP

SFTP no es FTP con cifrado agregado en la parte superior. Es un protocolo independiente que se ejecuta dentro de una sesión SSH. El cliente se conecta al servidor SSH, se autentica con una contraseña, clave, certificado u otro método compatible con SSH y luego inicia el subsistema SFTP para enumerar directorios, cargar archivos, descargar archivos, cambiar el nombre de rutas y administrar permisos.

Debido a que SFTP se basa en SSH, se beneficia del cifrado SSH, la verificación de la clave del host y controles de autenticación maduros. Por lo tanto, para la mayoría de las implementaciones, el puerto SFTP es TCP 22. Algunas organizaciones trasladan SSH y SFTP a otro puerto para reducir el ruido de fondo del escaneo, pero cambiar el puerto no reemplaza los controles de autenticación y autorización.

SFTP frente a FTP, FTPS y SCP

El FTP clásico comúnmente usa el puerto 21 para comandos y puertos de datos separados para transferencias. Eso hace que el firewall y la NAT sean más complejos, y el FTP simple envía credenciales y datos sin cifrado. FTPS agrega TLS a FTP, pero aún mantiene el modelo FTP con canales de comando y datos.

SFTP utiliza una conexión SSH, que suele ser más fácil de permitir a través de firewalls y de auditar. SCP también usa SSH, pero SFTP ofrece operaciones de administración de archivos más completas y es la mejor opción predeterminada para transferencias interactivas, entregas de socios y flujos de trabajo de archivos automatizados.

Cuándo debes abrir el acceso SFTP

Abra el acceso SFTP cuando un socio, un trabajo de automatización, un proceso de copia de seguridad, un proceso de implementación o un equipo interno necesite intercambiar archivos de forma segura con un servidor. Los ejemplos comunes incluyen fuentes de datos de proveedores, exportaciones nocturnas, recopilación de registros, entrega segura de documentos y áreas de carga controlada para clientes o dispositivos de campo.

No exponga SFTP ampliamente sólo porque está cifrado. Un servicio SSH conectado a Internet atrae ataques de credenciales y escaneo automatizado. Si solo un grupo pequeño necesita acceso, restrinja las IP de origen, publique SFTP detrás de una VPN o una red privada, o utilice una puerta de enlace de transferencia administrada con controles de políticas más estrictos.

Antes de abrir el puerto SFTP

Antes de abrir el puerto 22 para SFTP, confirme que el servidor SSH esté instalado, ejecutándose y configurado para permitir el subsistema SFTP. Luego, decida qué usuarios o cuentas de servicio deben conectarse, qué directorios pueden ver, si se permite la autenticación de contraseña y cómo se registrarán las cargas y descargas.

Separe la accesibilidad a la red de la autorización de la cuenta. Un verificador de puertos puede mostrar si se puede acceder a TCP 22 desde Internet, pero no puede probar que un usuario específico pueda iniciar sesión o que un directorio chroot sea correcto. Utilice un cliente SFTP o pruebas de línea de comandos ssh para verificar el comportamiento a nivel de aplicación.

Cómo habilitar SFTP en Windows, Linux y macOS

En Windows Server, instale y habilite el servidor OpenSSH, permita el TCP 22 entrante en el Firewall de Windows Defender y confirme que el servicio sshd se esté ejecutando. Si el servidor está en un entorno de nube, permita también el puerto 22 en el firewall o grupo de seguridad de la nube. Utilice cuentas dedicadas en lugar de acceso amplio de administrador.

En Linux, instale OpenSSH Server, confirme que sshd esté escuchando en el puerto 22 y asegúrese de que el subsistema SFTP esté habilitado en sshd_config. Para cuentas de transferencia de archivos restringidas, configure directorios chroot, reglas de propiedad y ForceCommand internal-sftp para que los usuarios no puedan obtener un shell interactivo.

En macOS, SFTP está disponible a través del servicio SSH integrado. Se utiliza con mayor frecuencia para redes locales, máquinas de desarrollo o entornos de laboratorio. Si lo expone más allá de una red confiable, aplique las mismas reglas de firewall y autenticación basadas en claves que usaría en un servidor.

  • Capa de servicio: OpenSSH Server u otra implementación SSH debe estar ejecutándose y debe habilitar el subsistema SFTP.
  • Capa de red: los firewalls del host, los grupos de seguridad de la nube, el reenvío del enrutador y las políticas de VPN deben permitir el puerto TCP elegido.
  • Capa de cuenta: los usuarios deben tener permisos con privilegios mínimos, directorios dedicados y ningún acceso al shell a menos que sea necesario.
  • Capa de auditoría: registra transferencias exitosas, inicios de sesión fallidos, cambios de claves, errores de permisos y redes de origen inusuales.

Cómo probar la conectividad SFTP

Comience con una verificación del puerto externo con el nombre de host público o la dirección IP y el puerto 22. Si el puerto está abierto, se puede acceder a la ruta TCP al servicio SSH. A continuación, utilice un cliente SFTP o ejecute sftp user@example.com para verificar la autenticación, la confianza de la clave del host, el acceso al directorio y los permisos de carga.

Si necesita detalles de nivel inferior, pruebe el protocolo de enlace SSH con ssh -vvv user@example.com o verifique los oyentes en el servidor con ss -tlnp, netstat o PowerShell. Para servidores en la nube, compare las reglas del firewall del host con los grupos de seguridad en la nube porque ambas capas deben permitir la conexión.

Puerto de prueba 22 para SFTP

Casos comunes de solución de problemas de SFTP

Si el puerto SFTP se muestra cerrado, es posible que sshd no se esté ejecutando, que esté escuchando en un puerto diferente o que esté bloqueado por el firewall del host. Si la verificación se agota, es posible que un grupo de seguridad en la nube, una regla NAT del enrutador, un filtro de ISP, una política de VPN o una lista de IP permitidas de origen estén descartando paquetes antes de que lleguen al servidor.

Si el puerto está abierto pero el inicio de sesión SFTP falla, inspeccione el nombre de usuario, los permisos clave, la política de contraseñas, el requisito de MFA, los usuarios permitidos, la propiedad de chroot, las reglas de ForceCommand y los registros del servidor. Un error común es otorgar permisos de escritura al directorio chroot para el usuario; OpenSSH requiere patrones de propiedad y permisos específicos para que chroot funcione de forma segura.

Lista de verificación de seguridad para SFTP

Prefiera claves SSH o autenticación basada en certificados a contraseñas. Deshabilite el inicio de sesión raíz, limite los usuarios que pueden conectarse, rote claves, elimine cuentas no utilizadas y proteja claves privadas con frases de contraseña o almacenamiento respaldado por hardware. Para acceder a los socios, cree una cuenta por socio para que la actividad se pueda atribuir y revocar limpiamente.

Restrinja el acceso al sistema de archivos con chroot o directorios de alcance limitado, evite carpetas de escritura compartidas a menos que sean necesarias y supervise los inicios de sesión fallidos y los volúmenes de transferencia inusuales. Si SFTP está conectado a Internet, combine limitación de velocidad, listas de fuentes permitidas, detección de intrusiones y parches regulares del servidor SSH.

Preguntas frecuentes

¿Qué puerto utiliza SFTP?

SFTP generalmente usa el puerto TCP 22 porque se ejecuta a través de SSH. Puede ejecutarse en un puerto diferente si el servidor SSH está configurado para escuchar allí y el cliente especifica ese puerto.

¿SFTP es lo mismo que FTPS?

No. SFTP es un protocolo de transferencia de archivos que se ejecuta dentro de SSH. FTPS está protegido por FTP con TLS. Son protocolos diferentes y no son intercambiables a menos que tanto el cliente como el servidor admitan el mismo.

¿Puedo usar SFTP sin abrir el puerto 22 a Internet?

Sí. Puede exponer SFTP solo a través de una VPN, una red privada, un host bastión, una capa de acceso de confianza cero o una lista permitida de IP de origen. Esto suele ser más seguro que publicar SSH en todo Internet.

¿Por qué el puerto 22 está abierto pero SFTP aún falla?

Es posible que se pueda acceder al puerto TCP mientras falla la autenticación o el subsistema SFTP. Verifique los permisos de la cuenta, el formato de la clave, la propiedad de chroot, la configuración de ForceCommand, los usuarios permitidos, las políticas de MFA y los registros del servidor SSH.