Servidor FTP qué es, instalando nuestro propio servidor

Los servidores FTP son uno de los tipos de servidores mas comunes intercambiar archivos entre dos ordenadores. Si eres webmaster, o tienes en mente crear una web en el futuro casi con total probabilidad tendrás que usar uno de ellos para subir los archivos a tu sitio web.

FTP como tal es un protocolo de intercambio de información, pero comunmente llamamos servidores FTP a aquellos que tilizan dicho protocolo para hacer el intercambio de archivos. Estos servidores en su inicio no utilizaban ningún tipo de cifrado con la consecuencia de que cuando nos logeamos en un servidor de este tipo nuestros datos (usuario y contraseña) viajan por la red en texto plano y son legibles por cualquiera que sepa cómo interceptar la conexión, cosa que veremos más adelante en futuras publicaciones. Actualmente conviven tanto el protocolo FTP como el protocolo SFTP que es igual pero utillizando cifado asimétrico, lo cual nos hace ganar y mucho en seguridad, aunque no nos garantiza la protección total frente a ataques.

Instalar nuestro propio servidor FTP

En nuestro proyecto primará siempre la práctica frente a la teoría, así que nada mejor para ver cómo funciona un servidor FTP que instalando nostros mismos uno en local y juando un poco con el. Tenemos tanto servidores de pago como servidores ftp gratis y nosotros siempre os vamos a mostrar herramientas gratuitas frente a herramientas privadas. Así que vamos a ellos, el servidor que vamos a instalar es:
filezilla, servidor ftp libre y gratuito
https://filezilla-project.org/download.php?type=server

Hemos escogido un servidor de la casa Mozilla, famosa por sus otros productos como firefox (navegador opensource) o thunderbird (cliente de correo electrónico), entre otros muchos productos y servicios que ofrece. La descarga es gratuita, así que descargamos y empezamos la instalación. Dejamos todo por defecto hasta llegar a esta pantalla:
Instalando un servidor ftp, filezilla server installation
Marcamos la opción de que no lo instale como servicio, ya que estamos probandolo y no queremos que arranque el servidor cada vez que arranquemos Windows, si fuera un servidor de producción si nos interesaría instalarlo como servicio, pero en nuestra caso no. Terminamos la instalación y tendremos en el escritorio un nuevo icono (filezilla Server Interface) para poder administrar nuestro servidor FTP. Si hacemos click nos preguntará dónde tenemos instalado el servidor que queremos administrar, indicamos que está en nuestro ordenador y nos conectamos:
La dirección IP hemos establecido «localhost» ya que esto significa «nuestro ordenador», también podríamos haber puesto: «127.0.0.1» o nuestra IP de red 

Bien, llegados a este punto ya disponemos de un servidor FTP instalado en nuestro PC, listo para hacer prácticas, entenderlo y poder trabajar en el futuro con servidores de terceros. Es posible que si tenéis activado el cortafuegos de windows os pregunte si permitís que Filezilla tenga acceso a internet, evidentemente no le bloqueeis el acceso ya que sino no podréis trabajar con el. Tampoco os asustéis, no estáis abriendo vuestro PC a internet, nadie podrá acceder a vuestro servidor sin una configuración mínima que ahora veremos.

Crear usuarios y grupos en un servidor FTP (filezilla)

Ahora llega el momento de crear nuestro primer usuario que nosotros mismos utilizaremos para conectarnos y ver qué podemos hacer. Lo primero es crear un grupo. A nivel de gestión de seguridad, por si alguna vez os dedicáis a administrar servidores, esto es muy importante, ya que en este apartado definimos lo que pueden hacer los usuarios que pertenecen a dicho grupo. Es decir. Vamos a indicar las IPs desde las que pueden conectar, velocidad máxima de descarga, número de conexiones en paralelo, etz etz. Así que vamos a ello:
Creando grupos en filezilla, primera pantalla
Una vez pinchamos sobre «Edit» -> «Groups» Nos aparece:
Creando grupos en filezilla, segunda pantalla
A primera vista ya vemos en la parte izquierda las secciones de «general», «shared folders» (directorios compartidos), «speed Limits» (Limitaciones de velocidad), «IP Filter» (filtros que podemos utilizar para indicar desde qué IPs podrán conectarse los usuarios que pertenezcan al grupo que vamos a crear. Así que pulsamos sobre «Add», que significa Añadir y creamos nuestro primer grupo. Yo lo llamaré «grupo_prueba»:
Creando grupos en filezilla, tercera pantalla
Aseguraos de que marcáis la opción «Enable access for users inside grupo», ya que esto significa que habilitáis el acceso a usuarios que pertenezan a este grupo. Con esto vosotros podéis tener varios grupos y habilitar el acceso a unos grupos o a otros según vuestras necesidades, en el caso de que estéis administrando servidores FTP en producción. Fijaros además en la opción Force SSL for user login. Esta opción convertirá vuestro servidor de baja seguridad FTP en un servidor de alta seguridad SFTP nosotros no lo vamos a activar para hacer nuestras pruebas, pero si fuera un servidor real sería altamente recomendable activar esta casilla. El siguiente paso, ya que estamos en un curso de seguridad infomática es bloquear todo acceso excepto nuestra IP local. Para ello nos vamos a la pestaña de IP Filter y hacemos 2 cosas.

  1. Bloqueamos TODAS las IPS del mundo
  2. Permitimos solo la IP local

Bloquear acceso todas las IPs filezilla

Ya tenemos asegurado que desde fuera de nuestro PC nadie va a poder logear en nuestro servidor, ahora nos queda definir cuando alguien se logea que carpeta puede ver. Yo me he creado una carpeta llamada «Pruebas-ftp» en C, vosotros podéis crear otra o poner cualquier otra carpeta, así mismo yo he dado permisos para hacer todo, tanto leer, editar y borrar archivos y ficheros. Para hacer pruebas es lo que vosotros deberíais poner, en un servidor en producción debéis ser cautelosos con los permisos que otorgaís a los usuarios:
Configuración de permisos en grupos de filezilla

Si queréis podéis ver la parte de «Speed Limits» para poder capar la velocidad a ciertos grupos, es algo muy trivial, os animo a que al menos pulséis sobre la pestaña para que la veáis. Una vez hecho esto pulsad sobre el «OK» de abajo a la izquierda y vuestro grupo habrá sido creado. Llega el momento de crear un usuario que pertenezca a dicho grupo y al cual se le van a aplicar las configuraciones que hemos establecido. Así nos vamos a edit->Users:
Crear un usuario en filezilla
Nos aparecerá una interfaz muy similar a la de creación de grupos, pero con ligeros detalles que veremos dentro de unos segundos. Bien, hacemos click en «Add» y ponemos el nombre del usuario, en mi caso lo he llamado «test» y como es obvio debemos indicar que pertenece al grupo de prueba que acabamos de crear:
crear usuario en filezilla y asginarle un grupo
Una vez creado vamos a crear una contraseña para el usuario, no es recomendable dejar usuarios sin contraseñas, ni siquiera los de pruebas, podríamos dejarlo olvidado y algún atacante utilizarlo en nuestra contra:
establecer contraseña/password usuario en filezilla
Cómo podréis observar a un usuairo se le pueden restringir también las IPs de acceso, las velocidades y las carpetas a las que puede acceder, si configuráis bien vuestros grupos no es será necesario establecer una configuración estricta para cada usuario, pero en caso de que se os presente la necesidad, tened presente que también podéis aplicar configuraciones específicas por usuario.

Reforzar la seguridad de nuestro servidor FTP

Llegados a este punto, vuestro servidor de pruebas tiene ya una configuración buena para su fin, hacer pruebas, aún así hay una última medida de seguridad que debéis tener en mente para evitar los ataques de fuerza bruta. Un ataque por fuerza bruta (brute forze) no es que os vayan a sacar la clave a guantazos, (que bueno podría ser un tipo de ataque de ingeniería social avanzada…) el tipo de ataques de fuerza bruta que queremos evitar consiste en aquellos que se basan en herramientas capaces de probar de forma automática claves de acceso hasta que dan con la clave buena. Normalmente este tipo de ataques fallan, ya que eligiendo una contraseña fuerte las posibilidades de éxito de un atacante por fuerza bruta son muy bajas. Nosotros vamos a tomar una medida que imposibilitará este tipo de ataques, que no es ni más ni menos que bloquear aquella IP que intente conectarse mas de X veces con una clave errónea. Para hacer esto nos vamos a Edit->Settings:
Configuración servidor FTP filezilla
Y accedemos a la sección de AutoBaneos:
autoban en filezilla

Aquí hemos establecido que si prueba 10 contraseñas, banearemos la IP durante 1 hora. Con esto es más que suficiente para parar cualquier ataque de tipo brute force.

En la siguiente publicación empezaremos a trabajar con nuestro recién instalado servidor, viendo internamente cómo trabajan los distintos tipos de comandos para ser capaces de administrar un servidor con sólo una shell, sin necesidad de tener ningún gestor gráfico. Obviamente es mas cómodo trabajar con un gestor gráfico pero si pretendes introducirte bien en el mundo de la seguridad informática debes ser capaz de trabajar desde la consola. 

Continua leyendo

This Post Has 7 Comments

  1. buenos dias, tengo un error a la hora de conectar el winSCP con mi servidor de firezilla, cuando he creado el perfil user «test» y he puesto una contraseña, cierro la ventana de ajustes dando al ok y cuando vuelvo a entrar, la contraseña es diferente, alguien puede ayudarme, gracias

    1. Buenos días Nico.

      Asegúrate de que estás editando tu servidor desde el usuario Administrador, o al menos con un usuario con privilegios de administración para que así se puedan escribir los cambios y no sean temporales.

      Un saludo.

Deja una respuesta

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

Newsletter Signup

Suscríbete a nuestra lista si te interesa recibir turcos exclusivos sobre hacking y seguridad informática