Fortaleciendo la Seguridad de tu WordPress: Una Guía Exhaustiva sobre SFTP y SSH

El Protocolo Seguro de Transferencia de Archivos (SFTP, por sus siglas en inglés, Secure File Transfer Protocol) y Secure Shell (SSH) se erigen como pilares fundamentales en la gestión remota de sitios web, especialmente aquellos construidos sobre plataformas como WordPress. Estas herramientas ofrecen una vía segura y cifrada para la transferencia de archivos y la ejecución de comandos en servidores. Sin embargo, la misma conectividad y acceso que brindan puede convertirse en un vector de ciberamenazas si no se gestionan adecuadamente. Para contrarrestar estas vulnerabilidades, es imperativo implementar funciones avanzadas de seguridad tanto para SFTP como para SSH.

Diagrama de red seguro con SFTP y SSH

Credenciales Únicas y Aislamiento de Entornos

Una estrategia de seguridad proactiva implica la diferenciación de accesos. Kinsta, por ejemplo, ha implementado una medida que asigna una base de datos y credenciales de acceso SFTP/SSH únicas para cada entorno de sitio web alojado. Esta medida es crucial porque el cambio de contraseña en un entorno no repercute en los demás. Esta funcionalidad ayuda a impedir el acceso no autorizado a los archivos y bases de datos de tu sitio. Imaginemos un escenario donde varios desarrolladores colaboran en tu sitio; puedes otorgarles acceso únicamente al entorno de staging, donde podrán previsualizar sus contribuciones sin comprometer la integridad del sitio en producción. Esta granularidad en el control de acceso es un paso fundamental para mitigar riesgos, especialmente en proyectos colaborativos.

Restricción de Acceso por Dirección IP

Otra potente función de seguridad introducida es la capacidad de restringir el acceso basándose en direcciones IP específicas. Esta característica es invaluable cuando se gestiona un sitio de WordPress con un equipo de desarrolladores que requieren acceso SFTP para actualizaciones y mantenimiento. Si un desarrollador cambia de ubicación física o necesitas conceder acceso temporal a una nueva dirección IP, puedes actualizar la lista de permitidos de manera ágil. Dentro del panel de acceso SFTP/SSH y Base de Datos, encontrarás un icono de edición junto a la etiqueta "Lista de IP permitidas". La creación de una lista permitida se realiza introduciendo direcciones IP válidas, como por ejemplo, 45.229.77.9/32, y haciendo clic en el botón "Añadir". Esta medida añade una capa de seguridad física a tu acceso remoto, asegurando que solo las IPs autorizadas puedan intentar la conexión.

⛓️ Como ENJAULAR USUARIOS EN SFTP | CHROOT SFTP ⛓️

Gestión de Contraseñas y Caducidad Automática

Si bien poder diferenciar el acceso para todos los entornos y restringir los inicios de sesión por dirección IP son mejoras de seguridad significativas, puede que necesites aún más control. Surgen situaciones donde es necesario proporcionar acceso temporal a un desarrollador o a un servicio de terceros. En estos casos, el riesgo de olvidar eliminar a esa persona de la lista de IP aprobadas una vez finalizada su tarea es real. Por defecto, las contraseñas creadas en plataformas como MyKinsta para el acceso SFTP/SSH no caducan automáticamente. Sin embargo, al activar la caducidad automática, el sistema generará una nueva contraseña al final del período seleccionado. Adicionalmente, se ha implementado el uso de contraseñas más complejas. Las contraseñas predeterminadas o generadas son ahora más robustas, dificultando su adivinación o descifrado.

Accesos Directos para Conexiones SFTP Simplificadas

La gestión de múltiples entornos de WordPress, como el de staging y producción, a menudo implica configuraciones SFTP únicas para cada uno. Para simplificar este proceso, se han introducido accesos directos para la conexión SFTP. Estos accesos permiten descargar archivos de configuración para cada entorno e importarlos directamente a tu cliente SFTP. En la página "Información del Sitio" dentro de MyKinsta (Sitios de WordPress > nombre del sitio > Información), encontrarás un icono de descarga junto a la etiqueta "Archivos de configuración del cliente FTP". Al hacer clic, se descargará un archivo ZIP que contiene los formatos de archivo necesarios para distintos clientes, facilitando la conexión rápida y eficiente.

Desactivación Temporal del Acceso SFTP/SSH

En ocasiones, después de realizar actualizaciones importantes en tu sitio de WordPress utilizando SFTP y SSH, puede ser prudente desactivar temporalmente estos accesos hasta que sean necesarios nuevamente. En la página "Información del Sitio" de MyKinsta, si SFTP/SSH está activado, observarás un botón "Desactivar" en la esquina superior derecha del panel. Esta acción revoca el acceso inmediato, añadiendo una capa de seguridad pasiva cuando no se requiere una conexión activa.

La Ventaja de las Claves SSH sobre las Contraseñas

Por defecto, tanto las contraseñas como los pares de claves SSH pueden autenticar el acceso SFTP/SSH a los entornos de WordPress. Sin embargo, las claves SSH ofrecen una seguridad considerablemente superior. Las claves SSH son pares de claves criptográficas (una pública y una privada) que se utilizan para autenticar a un usuario de forma prácticamente irrompible, a diferencia de las contraseñas, que son susceptibles a ser adivinadas o descifradas mediante ataques de fuerza bruta. Además, se puede añadir una capa adicional de seguridad estableciendo una frase de contraseña para la clave SSH. En la configuración de autenticación, es posible desactivar o reactivar la autenticación por contraseña, aunque la autenticación mediante contraseña permanece disponible mientras SFTP/SSH esté activado.

Diagrama comparativo: Contraseña vs. Clave SSH

Reduciendo Vulnerabilidades y Mejorando la Protección

Cada una de estas mejoras de seguridad aborda vulnerabilidades específicas asociadas con el acceso remoto, la gestión de contraseñas y los intentos de inicio de sesión no autorizados. Al implementar estas funcionalidades de manera conjunta, se crea un sistema de defensa en profundidad, con múltiples capas de seguridad que trabajan sinérgicamente. La seguridad no debe ser un obstáculo para la usabilidad; estas herramientas están diseñadas para mejorar tanto la protección como la gestión eficiente de tu sitio web. La conformidad con las normas de seguridad ha sido validada por auditores independientes, incluyendo la certificación de los Controles de Sistemas y Organización (SOC).

Entendiendo SFTP y SSH en Detalle

SFTP, que significa Protocolo de Transferencia de Archivos SSH o Protocolo de Transferencia Segura de Archivos, es un protocolo independiente pero intrínsecamente ligado a SSH, que funciona de manera similar pero a través de una conexión segura. En casi todos los casos, es preferible utilizar SFTP en lugar del tradicional FTP debido a sus características de seguridad subyacentes y su capacidad para aprovechar una conexión SSH. De forma predeterminada, SFTP utiliza el protocolo SSH para autenticarse y establecer una conexión segura.

Aunque las contraseñas son fáciles de usar y se configuran por defecto, la recomendación es crear claves SSH y transferir la clave pública a cualquier sistema al que se necesite acceder. Si puedes conectarte al equipo utilizando SSH, habrás cumplido todos los requisitos necesarios para usar SFTP en la administración de archivos.

Comandos Básicos de SFTP

El comando help es fundamental para obtener un resumen de la ayuda en SFTP. Para orientarse, se puede averiguar el directorio actual en el sistema remoto con pwd.

Para recorrer el sistema de archivos remotos, se utilizan comandos como ls para listar archivos y cd para cambiar de directorio. Si necesitas acceder a tu sistema de archivos local, todos los comandos remotos tienen equivalentes locales. Por ejemplo, el comando get se utiliza para descargar archivos, y toma indicadores de opción similares a los de put (para subir archivos).

Es importante notar que puede haber errores en ciertas versiones de OpenSSH que impidan el funcionamiento correcto de algunos comandos. En tales casos, puede ser necesario crear manualmente el directorio de destino en el extremo remoto escribiendo mkdir nombreDirectorio.

Una herramienta familiar y útil para descargar y cargar archivos es el comando df, que funciona de manera similar a su versión de línea de comandos. Aunque no hay una variación local directa, se puede acceder a un shell local ejecutando !. Este comando te lleva a un shell local, donde puedes ejecutar cualquier comando disponible en tu sistema.

Comandos Específicos y Operaciones

Los comandos lmkdir y mkdir permiten crear directorios tanto en sistemas locales como remotos, respectivamente, replicando el comportamiento básico de las versiones del shell. Para ejecutar un comando único en el sistema local, se antepone !. Por ejemplo, puedes usar SFTP para permitir que determinados usuarios transfieran archivos sin concederles acceso SSH completo.

Si estás acostumbrado a utilizar FTP o SCP para tus transferencias, SFTP representa una excelente manera de aprovechar las ventajas de ambos protocolos en un entorno seguro.

SFTP y SSH en el Contexto de STRATO

En el ámbito de los proveedores de hosting, como STRATO, se ofrecen funcionalidades para gestionar accesos SFTP y SSH. El Protocolo de Transferencia de Archivos Seguro (SFTP) permite la transferencia de archivos de forma cifrada entre tu ordenador y el espacio web. Por otro lado, SSH (Secure Shell) proporciona una conexión de terminal cifrada para ejecutar comandos en el servidor web.

En el área de cliente de STRATO, es posible crear accesos específicos para cada proyecto, definir el directorio inicial y gestionar contraseñas. Los pasos para la configuración y el uso de estas herramientas suelen incluir:

  • ¿Qué son SFTP y SSH? SFTP es un protocolo de transferencia de archivos que utiliza el túnel SSH, cifrando todo a través del puerto 22, y es recomendado frente al FTP clásico. SSH es una conexión remota cifrada a la shell del servidor (terminal), permitiendo ejecutar comandos. SFTP + SSH ofrece un acceso combinado.
  • Abrir SFTP/SSH en el área de cliente: Iniciar sesión en el área de cliente y navegar a la sección correspondiente.
  • Crear un acceso SFTP o SFTP+SSH: Hacer clic en la opción para crear un nuevo acceso, añadir un comentario opcional, definir una contraseña segura, elegir el tipo de acceso (SFTP o SFTP+SSH) y seleccionar un directorio raíz. El nombre de usuario se genera automáticamente.
  • Encontrar los datos del servidor y de acceso: El área de cliente proporciona el nombre del servidor personalizado, el puerto (generalmente 22), el nombre de usuario generado y la carpeta inicial.
  • Conectarse por SFTP (ejemplo: FileZilla): Instalar un cliente SFTP como FileZilla, configurar los detalles de conexión (Protocolo: SFTP, Servidor, Puerto: 22, Modo de acceso: Normal, Usuario, Contraseña) y conectar.
  • Mostrar archivos ocultos: En clientes como FileZilla, activar la opción para mostrar archivos ocultos (aquellos que empiezan por un punto, como .htaccess).
  • Gestionar, cambiar, eliminar accesos SFTP: A través de un menú de opciones por cada acceso creado, se pueden ver detalles, cambiar contraseñas o borrar accesos.
  • Usar SSH (ejemplo: PuTTY): Requisito: elegir el tipo "SFTP + SSH" al crear el acceso. Descargar e iniciar un cliente SSH como PuTTY, configurar el Host Name, Port (22), Connection type (SSH), y luego iniciar sesión con el nombre de usuario y contraseña.
  • Comandos básicos de SSH: Comandos como ls (listar), cd (cambiar directorio), pwd (ruta actual), less (visualizar archivos), grep (buscar patrones), cp (copiar), mv (mover/renombrar), rm (eliminar), mkdir (crear directorio) y chmod (cambiar permisos) son esenciales.

Consideraciones de Seguridad Adicionales

  • Diferencia entre SFTP y FTPS: SFTP opera sobre SSH (puerto 22), mientras que FTPS es FTP con TLS (puertos 21/990).
  • Separar proyectos: Crear accesos SFTP/SSH independientes para cada proyecto con su directorio inicial y contraseña adecuados.
  • Errores de permisos: Verificar el directorio inicial y, si es necesario, ajustar los permisos en el servidor.
  • Aumentar la seguridad: Utilizar contraseñas largas y únicas, y eliminar los accesos que ya no sean necesarios.

Autenticación con Claves SSH vs. Contraseñas

La elección entre autenticar un servidor SFTP con una contraseña o una clave SSH es una decisión recurrente en el ámbito de IT.

Autenticación con Contraseña

  • Funcionamiento: El administrador crea una combinación de nombre de usuario y contraseña.
  • Protección: Se pueden habilitar medidas como el bloqueo de cuenta tras múltiples intentos fallidos de inicio de sesión. Las contraseñas pueden configurarse para cumplir requisitos de complejidad (longitud, caracteres, etc.) y caducar tras un período determinado.
  • Contras: Son más vulnerables a ataques de fuerza bruta, propensas al error humano (creación de contraseñas débiles) y a la revelación accidental.

Autenticación con Clave SSH

  • Funcionamiento: Requiere un par de claves criptográficas: una privada (que se mantiene secreta) y una pública (que se almacena en el servidor). El software cliente utiliza la clave privada para autenticarse contra el servidor utilizando la clave pública.
  • Ventajas: Aumenta significativamente el nivel de seguridad. Son prácticamente imposibles de descifrar.
  • Requisitos Adicionales: Algunos servidores SFTP pueden requerir tanto una clave SSH como una contraseña para una autenticación adicional (doble factor).

¿Cuál es la Mejor Práctica?

La elección entre claves SSH y contraseñas depende de las necesidades específicas de una organización y la solidez de sus políticas de ciberseguridad. Ninguno de los métodos es completamente inmune a un ataque. Sin embargo, una práctica recomendada es utilizar claves SSH en combinación con una contraseña. Esta autenticación de doble factor proporciona una capa adicional de seguridad robusta. Si un atacante compromete la clave privada, aún necesitaría la contraseña para acceder al servidor. De manera similar, si alguien obtiene la contraseña, no podrá acceder sin la clave privada.

Ilustración conceptual de autenticación de doble factor

Herramientas como GoAnywhere Managed File Transfer soportan el uso de SFTP para asegurar, automatizar y auditar transferencias de archivos, permitiendo la autenticación mediante contraseña, claves SSH, o ambas, para cumplir con diversos requisitos de seguridad. Esta solución facilita la transferencia segura y cifrada de archivos entre socios comerciales, empleados y clientes.

tags: #sftp #password #ssh