viernes, 6 de noviembre de 2015

Configurar FTP en Ubuntu 14.04(vsftpd) e implementarlo con SSH

En esta práctica vamos a configurar un servidor FTP en una máquina virtual que contiene el sistema operativo Ubuntu 14.04 desktop. 
Nuestro servidor tendrá que contar con los siguientes requisitos:
  • Mensaje de bienvenida de nuestro servidor al conectarse
  • Conexión anónima habilitada con las cargas de archivos deshabilitadas (anonymous)
  • Los usuarios deben estar enjaulados
  • Crear 3 usuarios con permisos diferentes de descarga
  • Implementar seguridad utilizando SSH (sftp), también conocido como "Hardening"

Ubuntu 14.04 desktop

Empezaremos instando la aplicación vsftp (todo desde nuestra terminal)


Una vez instalado, antes de empezar a configurar todo, haremos una copia del fichero de configuración



Después procederemos a configurar el fichero, en el cual cambiaremos nuestro mensaje de bienvenida cuando alguien se conecte a nuestro servidor


Y este es el resultado


Configuramos el acceso a usuarios anónimos, y le especificamos el directorio en el que queremos que esté el usuario



En el directorio creado, añadiremos diferentes ficheros para hacer las pruebas de descarga desde el usuario anónimo



Probamos a conectarnos poniendo en el usuario anonymous y sin ingresar contraseña, e intentamos bajarnos los 3 archivos que hemos creado



Vemos que la acción se completa correctamente, y ahora intentamos subir archivos al servidor desde el mismo usuario


Y el servidor no nos deja subir archivos.

Ahora vamos a habilitar la conexión de usuarios locales, dándole su directorio (al cual le asignaremos los permisos convenientes) y activaremos que puedan subir archivos al servidor.




A continuación crearemos los usuarios (useradd), y le asignaremos sus respectivas contraseñas (passwd)


Y le añadimos archivos a la carpeta de usuarios


Hacemos las pruebas convenientes, para probar que los usuarios pueden descargar y cargar archivos del servidor




Vemos que los usuarios no están enjaulados, ya que pueden cambiar de directorio


Y para enjaularlos (no dejar que cambien de directorio) vamos al fichero /etc/vsftpd.conf y cambiamos los valores a las siguientes líneas


Probamos otra vez, a ver si ya no nos deja cambiar el directorio



Y efectivamente, así es.

Lo que ahora queremos, es que cada usuario esté en su propio directorio, y no en uno conjunto, lo conseguiremos creando sus carpetas, y asignándoselas a cada usuario.


Probamos si de verdad cumple con su función




Y cada uno está enjaulado en su directorio, sin poder cambiar a otro.

Para probar la seguridad del servidor, nos conectamos con una máquina virtual de Windows7, con el Wireshark escaneando, y vemos los datos que van sin cifrar 


Para solucionar este fallo de seguridad, implementamos el servidor con FTP a SFTP, que consiste.

Para empezar, instalamos la aplicación openssh-server


Añadimos un directorio para los usuarios, chown root /srv/ftp/usuarios
Y antes de configurar, realizamos una copia del fichero de configuración


Y entramos en el fichero de configuración con el comando  gedit /etc/ssh/sshd_config


Le asignamos los permisos convenientes al directorio


Creamos el grupo de lo usuarios de FTP, y le asignamos los usuarios que queremos que pertenezcan a ese grupo


Vemos que cada carpeta tiene los propietarios convenientes.

Ahora procedemos a hacer las pruebas desde nuestra máquina virtual con Windows7 desde el FileZilla, con el Wireshark escaneando



Vemos que ahora, todos los paquetes de datos están encriptados, y ya no se ve el contenido.


También podemos probar a conectarnos desde la terminal de otro ubuntu, vía sftp, para comprobar que verdaderamente funciona nuestro servidor.




4 comentarios:

  1. me podrias pasar el archivo vsftpd.conf antes de configurarlo

    ResponderEliminar
    Respuestas
    1. Buenas Eduardo,

      Como te explico en el punto de configuración del fichero vsftpd.conf, solamente tienes que tener esas variables modificadas. (Para tener un FTP sencillo y funcional. Si quieres más configuraciones, en eso ya tendrás que indagar por tu cuenta).

      Las variables a modificar son las siguientes:

      - chroot_local_user=YES
      - allow_writeable_chroot=YES
      #
      #
      #
      - chroot_local_user=YES
      - chroot_list_enable=NO

      Espero que te sirva de ayuda. No te puedo pasar ningun fichero, ya que esos servidores estaban hechos en máquinas virtuales, que ya han sido destruídas.

      Saludos,
      Raúl

      Eliminar
    2. Perdona por la demora en responder.

      Saludos,
      Raúl

      Eliminar