La importancia de NO usar FTP
Cuando uno comienza en el mundo de desarrollo en WordPress, una de las primeras y más básicas cosas que nos encontramos es: la instalación de nuestro sitio. Ya sea de manera local para poder subirlo después a nuestro servidor, o directamente a nuestro servidor (no recomendable).
El sitio necesita ser hospedado en algún lugar para que pueda ser visitado por los usuarios. Obviamente, ya que el usuario final no puede ver nuestro sitio si se mantiene en nuestra computadora, a menos que la convirtamos en un servidor personal, que no es muy recomendable.
Sea como sea la forma en que comencemos, al final siempre será necesario mover nuestra instalación a nuestro servidor, la pregunta es: ¿Cómo hacemos eso? La respuesta más común (y en casi todos los casos errónea) es: usar FTP.
¿Qué es el FTP?
FTP son las siglas de File Transfer Protocol ó en Español Protocolo de Transferencia de Archivos. Sirve básicamente para mover archivos entre computadoras (nuestra computadora → el servidor y viceversa). Es una de las formas más básicas para conseguirlo.
¿Por qué no utilizar FTP?
FTP es popular por su facilidad para utilizarse. Hay un sin fin de clientes FTP que únicamente requieren que arrastremos nuestros archivos de un lado del cliente (nuestra PC) hacia el otro (el servidor) y listo, nuestro archivo ha sido subido a la nube.
Sin embargo, hay muchas, muchas razones por las que utilizar FTP hoy en día es una muy mala idea.
1. Es antiguo
FTP existe desde los comienzos del internet. La primera especificación del protocolo se escribió en 1971, y su última actualización sucedió en 1998, hace 20 años. Dato curioso, ¿conocen el HTTP? pues cuando la primer versión de HTTP fue lanzada ya superaba en todo sentido al FTP.
2. Problemas con Firewalls
No estoy 100% seguro que tan común sea esto, pero uno de los problemas con los que me he encontrado haciendo ésta investigación, es que el FTP no se lleva bien con Firewalls, por razones que van directo a la forma en que FTP funciona.
El problema es que durante la transferencia FTP abre conexiones simultáneas. Una de ellas en un puerto seleccionado al azar, lo que termina provocando que el Firewall bloquee esa conexión (ya que no sabemos en que puerto vendrá). Muchas veces obligándonos a desactivar el Firewall, mala idea.
3. No es seguro
Tal vez el punto más importante que quiero tocar, es que, FTP es probablemente la herramienta más insegura que puedes utilizar por un par de razones:
- No soporta archivos encriptados. Esto significa que cualquier cosa que envíes utilizando FTP puede ser vista y tomada por cualquier posible personaje que esté espiando tu conexión. Riesgo de seguridad.
- Así mismo, aún cuando utilizas usuario y contraseña para proteger tu conexión, no están encriptados. Cualquier persona que esté espiando tu conexión podrá ver claramente tu nombre de usuario y tu contraseña, y ahora ya tiene acceso a tu servidor. Es como enviar un maletín cerrado con candado, y enviar la llave del candado pegada al maletín.
Versiones seguras de FTP
Debido a los multiples problemas que tiene el FTP, no es de extrañarse que se hayan intentado solucionar en el pasado. El más importante por supuesto es la seguridad. Y para ello se han dado muchas respuestas, como por ejemplo sFTP.
sFTP es una versión de FTP que corre a través de SSH, lo que hace que la conexión esté por fin encriptada. Resolviendo uno de los problemas más grandes de FTP, ¿o no?
sFTP proteje los archivos mientras están en camino. Sin embargo, hay un pequeño (o mayor, dependiendo de qué tanto tiempo dure la transferencia) momento en el que nuestros archivos están expuestos: Al momento de recibirlos.
El sistema necesita descargar el archivo antes de poder encriptarlo. Mientras mayor es el archivo, o más tiempo dure la conexión, más tiempo se le dará a un atacante para que pueda ver el archivo. Pero, tomando en cuenta que un atacante debe ya tener acceso al sistema para lograr esto, creo que ese archivo sería el menor de nuestros problemas.
Entonces, ¿qué puedo utilizar?
Por ahora sugiero que se muevan inmediatamente a sFTP, por lo menos. Yo recomendaría utilizar una combinación de SSH y Git para manejar sus sitios ¿quieren saber cómo hacerlo? Espérenlo pronto 😉