martes, 16 de septiembre de 2014

Instalación y Configuración de Servidor FTP en Windows


Ya hace unas semanas vimos como instalar un servidor FTP en Linux y como configurarlo. Turno ahora para Windows. Aunque en un principio las capturas del tutorial corresponden a Windows 7 los pasos nos van a servir prácticamente igual para Windows 8 o incluso para Windows XP. Recordemos que un servidor FTP no es más que un programa que se instala en un equipo para compartir e intercambiar archivos con los equipos y dispositivos clientes que se le conecten a traves de la red.

Como siempre vamos a soluciones de software libre. En este caso vamos a utilizar Filezilla Server, un servidor FTP libre y de código abierto. La pagina oficial del proyecto es http://filezilla-project.org/ . Como cliente FTP tenemos versiones para Windows, Linux o MAC. En el caso del servidor FTP que es lo que nos interesa solo está disponible para Windows y en el momento de realizar este tutorial la ultima versión estable disponible es la 0.9.46 en versión para Windows 7, Windows 8 y Windows 8.1 tanto de 32 como 64 bits. La pagina de descarga es https://filezilla-project.org/download.php?show_all=1&type=server

Si lo queremos instalar en un equipo con Windows XP deberíamos descargar una versión anterior puesto que ya no tiene soporte.Una pagina interesante para descargar versiones descatalogadas de software es OldApps.com. La ultima versión de Filezilla Server compatible con Windows XP es la 0.9.41 que podemos descargar en este enlace http://www.oldapps.com/es/filezilla.php?old_filezilla=7331 .

Instalación de Filezilla Server

  • Una vez descargada la versión correspondiente ejecutamos el instalador y pulsamos "I agree" para aceptar la licencia de uso de la aplicación. En la pantalla de elección de componentes a instalar marcamos todos menos el código fuente.





  •  El siguiente paso es seleccionar la ubicación de la instalación. En principio lo vamos a dejar en la que viene por defecto. Si deseamos seleccionar una distinta simplemente pulsamos sobre "Browse" y sino como en mi caso vamos a pulsar en "Next".




  • A continuación viene un paso importante que es seleccionar como vamos a utilizar nuestro servidor. 

    En este caso lo voy a instalar como servicio de Windows pero con inicio manual ( Install as service, started manually ), es decir que el servidor solo funcionara cuando yo lo arranque puesto que lo voy a utilizar solo para intercambiar archivos cuando lo necesite.

    Si en cambio necesitásemos que este funcionando todo el tiempo podemos elegir la opción que aparece por defecto para que el servidor FTP se inicie automaticamente al arrancar el sistema. (Install as service, started with Windows)





  • En la misma pantalla tenemos que elegir un puerto para que podamos conectarnos para la administración del servidor. Podemos dejar el que nos trae por defecto. En la parte inferior vamos a dejar marcada la casilla para que arranque el servidor al terminar la instalación. Una vez completados los pasos pulsamos sobre Next




  • Después tenemos una pantalla para elegir si queremos que la interface del programa de administración y monitorización  del server se inicie cuando se conecten usuarios al servidor o tengamos que iniciarlo manualmente que va a ser la opción que escojo en mi caso. Pero vamos a marcar la casilla inferior para que cuando termine la instalación en esta primera ocasión si nos arranque automaticamente el programa de administración. Finalmente pulsamos sobre "Install".





  • Veremos una barra de progreso mientras va instalando archivos en nuestro equipo. Finalmente pulsamos sobre "Close" una vez finalizada la tarea y ya tenemos nuestro servidor instalado y funcionando. Turno ahora para la configuración.




Configuración General de Filezilla Server

  • Lo primero es arrancar el servidor. Si acabamos de instalarlo y seguimos los pasos del tutorial la primera vez se habrá arrancado por defecto.

    Para hacerlo manualmente buscamos "Start Filezilla Server" dentro de las aplicaciones del menú Inicio. Lo pinchamos con el botón derecho y pulsamos "Ejecutar como Administrador". Igualmente cuando tenemos que detenerlo para realizar cambios en la configuración del servidor utilizaremos el acceso directo "Stop Filezilla Server".



  • Una vez que tenemos el servidor arrancado vamos a lanzar la aplicación de administración. Para ello pulsamos el icono "Filezilla Server Interface" que nos aparecerá en el escritorio o en el menú de aplicaciones. Si durante la instalación dejamos marcada la casilla correspondiente ya nos habrá ejecutado dicha aplicación automaticamente en cuanto finalizo la instalación

  • Lo primero que nos aparece es una ventana para introducir los datos de conexión al servidor FTP.  En este caso si la aplicacion la ejecutamos desde el mismo equipo dondetenemos instalado el servidor la dirección IP nos puede servir 127.0.0.1 que siempre apunta hacia tu mismo equipo como vimos en su momento.

    Si por el contrario nos encontrasemos en un equipo remoto y queremos acceder a la administración desde allí tendríamos que introducir la IP del servidor y abrir en su cortafuegos el puerto correspondiente para que permita el acceso.

    El puerto va a ser el que configuramos en la instalación. En cuanto al password de Administración lo dejamos en blanco puesto que aun no lo hemos configurado. Lo haremos posteriormente como medida de seguridad. Pulsamos sobre OK para iniciar la Conexión




  • Si todo ha ido bien aparecera la ventana de administración y monitorización del servidor con el mensaje de "Logged on" . Si por el contrario nos da mensajes de error es posible que nos hayamos olvidado de iniciar el servidor o bien que nos equivocamos de direccion IP o contraseña de administrador.





  • Pulsando en Edit > Settings  vamos a poder configurar unas opciones básicas del servidor. Dentro de General Settings en primer lugar tenemos el mensaje de Bienvenida que recibiran los clientes al conectarse a nuestro servidor. Podemos poner el que deseemos en el cuadro inferior derecho (Custom Welcome message).





  • El resto de las opciones que tenemos en General Settings son IP bindings o IP Filter que es donde podemos prohibir o permitir el acceso al servidor desde determinados rangos de direcciones IP . Son dos maneras diferentes de hacerlo.

     En IP bindings podemos especificar desde que IP o redes nos podemos conectar con lo que denegariamos el acceso al resto que no indicamos. Si dejamos " * " pues se podra conectar desde cualquier dirección. En cambio en IP Filter funciona al reves ya que especificamos directamente que IP o redes no se pueden conectar permitiendo el acceso al resto. En este caso por lo tanto si lo dejamos en blanco no baneamos a nadie.

    Cual utilizar o utilizar ambas queda ya a gusto del usuario. Por ejemplo cuando baneamos a un usuario en la ventana de monitorización nos va a aparecer su dirección IP en el cuadro de IP filter. Si posteriormente queremos permitir el acceso nuevamente solo tenemos que borrarla.





  • Vamos a bajar ahora hasta Admin Interface Settings. En este caso podemos indicar la IP de los equipos que van a tener acceso a la administración del Servidor, es decir, desde que equipos podemos configurarlo con la aplicación que estamos usando. Esto obviamente es muy útil por motivos de seguridad. Desde el propio servidor siempre se tendrá acceso pero si no añadimos ninguna IP adicional no podremos controlarlo remotamente lo cual tendrá sus ventaja de seguridad e inconveniente en cuanto a administración.

    En el cuadro de la parte superior indicamos el puerto para acceder que ahora mismo será el  que indicamos en la instalación y que utilizamos al lanzar la consola de administración.  En la parte inferior es donde vamos a añadir un password de administrador para proteger el acceso.




  • El apartado Logging nos permite tener un archivo de registro con los usuarios logeados en el sistema. Podemos especificar uno solo o bien que se vaya creando uno nuevo cada dia segun la casilla marcada.




  • Speed Limits se refiere a limitar la velocidad de subida o Descarga de archivos. Esto se puede hacer personalmente tambien para cada usuario asi que en este caso lo vamos a dejar sin tocar por defecto en "No limits"

  • Por ultimo nos vamos a parar en Autoban donde se configura el baneo automatico de aquellos usuarios que realicen muchos logueos erroneos en una hora. Esto es util para prevenir ataques. Lo vamos a activar y lo dejamos en 10 fallos y un baneo de 10 horas.



Creación de Usuarios y Grupos

  • Turno ahora para la creación de Usuarios para nuestros servidor FTP. Para ellos vamos a pulsar sobre Edit > Users o bien el icono con una sola cara que aparece en la barra de herramientas. Vamos a pulsar sobre el boton Add para añadir usuarios.




  • Escribimos el nombre que deseamos. El desplegable inferior es para añadirlo a un grupo de usuarios pero aun no hemos creado ninguno asi que no lo podemos modificar






  • Con el usuario seleccionado nos aseguramos de que este marcada la casilla de Enable Account para activarlo y marcamos la casilla de Password para añadir la contraseña deseada para ese usuario.





  • Ahora vamos a Shared Folders en la parte izquierda y será donde indicaremos cual serán las carpetas del equipo a las que el usuario va a tener acceso para descargar o subir archivos remotamente. Pulsando sobre "Add" nos desplazamos por los directorios del equipo para escoger el deseado. Las casillas de la derecha nos indican los permisos que va a tener el usuario sobre el contenido de esa carpeta bien sean archivos (Files) o directorios ( Directories ). 

    En este caso voy a dar permisos de Lectura y Escritura de archivos asi como de creacion y borrado de directorios.  Si pulsamos Set as home dir vamos a indicar cual de todos los directorio a los que damos acceso en nuestro equipos será el directorio inicial en el cual se va a encontrar el usuario al loguearse en el servidor.




  • También tenemos las opciones Speed Limits o IP Filter que vimos ya en la Configuración General. Podemos aplicar un limite de descarga si lo deseamos como por ejemplo de 100 kB por segundo si no queremos que nos sature la linea. La ventaja de hacerlo aquí es que podemos limitar solo a los usuarios que deseemos. Finalmente si pulsamos OK ya tendremos nuestro Usuario creado.





  • Si volvemos a entrar en User y pulsamos en Add podemos ir añadiendo más usuarios y configurando los mismos pasos teniendo en cuenta que los cambios siempre los realizamos sobre el usuario que se encuentra marcado debajo de Users en la parte derecha.





Ya por ultimo vamos a explicar como crear grupos. Los grupos en un servidor ftp nos facilitan el trabajo ya que nos permiten agrupar usuarios de manera que si dichos usuarios tienen que acceder a los mismos recursos o tener los mismos permisos no necesitamos editar cada uno individualmente sino simplemente agregarlos a un grupo con esas características.

  • Para crear un grupo nos vamos a Edit > Groups  o pulsamos el icono con 2 caras de perfil en la barra de herramientas. El resto es practicamente idéntico a la creación de usuarios. Primero añadimos el nombre del grupo pulsando Add en la parte derecha.




  • Después nos toca escoger los directorios a los que tendrán acceso los usuarios de dicho grupo en Shared Folders con los permisos correspondientes y podemos también aplicar limites de velocidad en Speed Limits a todos los miembros del grupo. Si pulsamos OK ya tendremos creado nuestro grupo.


Con esto al crear un usuario nuevo ya podemos directamente enviarlo a un grupo y nos evitamos trabajo.


  • Si en cambio lo que queremos es añadir un usuario ya creado a un grupo nos vamos a Edit > Users y desde General lo movemos en el apartado desplegable Group Membership.



.

Recordar que la configuración más especifica siempre tiene preferencia sobre la más general. Es decir que por ejemplo el directorio y los permisos de un usuario responderán antes a la configuración individual si existe que a la configuración del grupo al que pertenezca. Igualmente cuando se trata de limites de velocidad tendrá prioridad el otorgado al usuario, posteriormente irá el otorgado al grupo y finalmente si no existe ninguno de los dos responderá al limite general del servidor.