servidor ftp - WordPress.com · 2017-11-03 · Prueba, Prueba2 y ramón y dentro de cada uno de...

18
MIKEL XABIER MARTURET URTIAGA SERVICIOS DE RED E INTERNET SERVIDOR FTP

Transcript of servidor ftp - WordPress.com · 2017-11-03 · Prueba, Prueba2 y ramón y dentro de cada uno de...

MIKEL XABIER MARTURET URTIAGA

SERVICIOS DE RED E INTERNET

SERVIDOR FTP

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

1

Contenido SERVIDOR FTP ......................................................................................................................... 2

¿Qué es un FTP? ........................................................................................................................ 2

Instalación Servidor FTP ............................................................................................................ 3

Parámetros del archivo de configuración ................................................................................. 3

Enjaular Usuarios ....................................................................................................................... 6

Permisos de los Usuarios ........................................................................................................... 7

Permisos para prueba ........................................................................................................... 7

Comprobación prueba .......................................................................................................... 8

Permisos para prueba2......................................................................................................... 8

Comprobación prueba2 ........................................................................................................ 9

Permisos para Ramón ........................................................................................................... 9

Comprobación Ramón .......................................................................................................... 9

Conexión con filezilla de manera no segura ............................................................................ 10

Wireshark ................................................................................................................................ 10

Certificado de seguridad .......................................................................................................... 11

Comprobación Wireshark con SSL ........................................................................................... 16

Troubleshooting ...................................................................................................................... 17

Conclusión ............................................................................................................................... 17

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

2

SERVIDOR FTP

Vamos a realizar un servidor en ubuntu server, y nuestro cliente será una máquina virtual de WIN7(filezilla) aunque también veremos ftp en Ubuntu Desktop, modificaremos el archivo de configuración del servidor con los parámetros que veremos a continuación, crearemos usuarios y les daremos permisos distintos y por ultimo crearemos un certificado de seguridad que se lo añadiremos a nuestro servidor.

Pero lo primero que tenemos que explicar es en que consiste un servidor FTP.

¿Qué es un FTP?

Un ftp es un protocolo de transferencia de archivos, tanto como para descargar archivos o para subirlos.

Desde un cliente (WIN7) nos podremos conectar al servidor FTP (ubuntu server) para la descarga de archivos. Como veis, da igual los sistemas operativos utilizados en cada equipo.

Para que sea posible la transferencia de archivos y una conexión entre el cliente y el servidor es imprescindible que los dos equipos se encuentren en la misma red.

Ahora vamos con el primer paso, la instalación de nuestro servidor FTP.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

3

Instalación Servidor FTP

Para la instalación del servidor usaremos el comando apt-get install vsftpd, hay que tener en cuenta que se va a realizar una instalación por lo tanto es necesario una salida a Internet, así que deberemos tener la interfaz de red en NAT.

Una vez instalado el servidor, podemos ver los parámetros que tenemos en el archivo de configuración. En este caso usamos grep "^#" para no visualizar todos los parámetros que están "Comentados".

Vamos a editar nuestro archivo de configuración, ya que queremos darle diferentes permisos a nuestros usuarios. Entraremos al archivo de configuración usando nano /etc/vsftpd.conf

Parámetros del archivo de configuración

Vamos a entrar en el archivo de configuración para cambiar algunos de los parámetros, muchos de ellos están "Comentados” y simplemente quitándoles la almohadilla "#" que va delante de ellos ya los pondremos en funcionamiento. En mi caso al final del archivo de configuración he puesto todos los parámetros, sin descomentar ninguno de los archivos de la configuración inicial.

Antes de cualquier modificación haremos una copia del archivo, por si algo no funciona correctamente podemos volver a ese archivo de configuración.

En esta práctica vamos a permitir una conexión anónima habilitada a un directorio solo para anónimos, además crearemos 3 usuarios con permisos diferentes y que a su vez se

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

4

encuentren enjaulados, es decir, que no puedan salir de su propio directorio y solo puedan ver los archivos que tienen dentro de ese directorio.

Lo primero que vamos a modificar va a ser el mensaje de bienvenida del servidor que nos diferenciará de otros servidores. Con ftpd_banner=Mensaje de bienvenida

Lo siguiente que vamos a hacer va a ser el permiso para una conexión anónima. Anonymoys_enable=YES

Voy a crear dentro de /home/mikel un directorio para los anónimos y esa ruta /home/mikel/anonimos es la que le daremos a los usuarios anónimos para que sea su directorio raíz y no puedan salir de ahí.

Para añadir esa ruta en el archivo de configuración deberemos poner lo siguiente.

Vamos a probar desde una máquina virtual a entrar a nuestro servidor ftp de manera anónima. Para ello iniciaremos el servidor que aún no lo hemos iniciado.

En este caso vamos a probarlo con un Ubuntu desktop, haremos en nuestro terminal un FTP a la dirección de nuestro servidor FTP 10.0.0.4.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

5

Como podemos observar solo vemos los documentos de anónimos.

En estas capturas vemos cómo podemos descargar los archivos que tenemos en nuestra carpeta anónimos, pero no podemos subir nada de manera remota.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

6

Ahora vamos a pasar a configurar los otros 3 usuarios. Lo primero que tenemos que hacer es CREARLOS.

Para crearlos usaremos el comando useradd, podemos usar también adduser, pero no se nos crea el directorio ni los permisos adecuados, así que usaremos useradd para ahorrarnos tiempo.

Vamos a crear 3 usuarios. Prueba, Prueba2 y ramón y dentro de cada uno de ellos vamos a tener un fichero que se llamara documento+nombreusuario

Enjaular Usuarios

Queremos que nuestros usuarios se encuentren enjaulados en su directorio. Para ello meteremos los siguientes parámetros.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

7

chroot_list_enable = No: Esto denegará que los usuarios locales puedan navegar por todo el árbol de directorios del servidor.

chroot_list_file = /etc/vsftpd.chroot_list : Indicamos el fichero donde están listados los usuarios que pueden navegar hacía arriba por los directorios del servidor, lo normal es que sea el administrador del servidor.

Permisos de los Usuarios

Y nos queda dar permisos distintos a cada usuario. Para ello tenemos que crear unos directorios y unos archivos de configuración de cada usuario y en el archivo de configuración de nuestro servidor le señalaremos la ruta correspondiente.

Cuando tenemos la ruta creada, crearemos 3 ficheros con el nombre de nuestros usuarios y dentro de esos archivos le daremos los permisos adecuados.

Tenemos 3 usuarios: Prueba, Prueba2, ramón

Permisos para prueba

A nuestro usuario prueba le vamos a dar permisos de descarga y de lectura. Pero no de escritura por ello ponemos el write_enable=NO

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

8

Comprobación prueba

Podemos ver los documentos que tenemos en prueba y descargar, pero si queremos subir algún elemento no nos lo permite.

Permisos para prueba2

A nuestro usuario prueba2 le vamos a darle todo tipo de permisos, que pueda modificar documentos y pueda subirlos, además de descargarlos.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

9

Comprobación prueba2

Tenemos permiso para todo.

Permisos para Ramón

Para ramón solo le daremos permisos de descarga.

Comprobación Ramón

Para los permisos, pondremos en el archivo de configuración user_config_dir=/etc/vsftpd/users

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

10

Conexión con filezilla de manera no segura

Estado: Servidor no seguro, no soporta FTP sobre TLS.

Wireshark

Como este servidor por el momento no tiene seguridad, vamos a instalarnos en nuestra máquina cliente Wireshark para capturar el tráfico cuando hacemos un ftp y podremos ver cómo podemos sacar la contraseña con el nombre de usuario.

Una vez abierto wireshark, le meteremos el filtro del FTP y al ser un servidor no seguro, podemos observar cómo sale USER prueba y PASS prueba. Por lo tanto, nuestra información estaría expuesta simplemente capturando el tráfico cuando se conecta al FTP.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

11

La solución para que nuestros datos estén seguros es añadiéndole un certificado de seguridad a nuestro FTP.

Certificado de seguridad

Antes de ponernos al tema con la instalación de nuestro certificado, vamos a explicar que es un certificado SSL.

¿Qué es un certificado SSL?

Un certificado SSL es la pieza fundamental en la seguridad de los sitios web ya que nos permiten cifrar los datos que son enviados, como contraseñas, información sobre tarjetas de crédito etc.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

12

Por lo tanto, usaremos un certificado de este tipo para nuestro servidor FTP para poder cifrar las contraseñas y nombres de usuario de nuestros clientes.

¡Y AHORA SÍ!

Vamos a darle a nuestro servidor un certificado de seguridad SSL.

Para crear el certificado usaremos openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Una vez que tenemos creado el certificado lo tendremos que rellenar con nuestros datos.

Una vez creado el certificado deberemos meterlo en nuestro archivo de configuración del FTP.

Además, para el logeo de usuarios deberemos añadir los siguientes parámetros.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

13

Con esto ya tendremos nuestro certificado en el servidor. Ahora vamos a ir a nuestro cliente Win7 en el que tendremos instalado Filezilla.

Tendremos que comprobar que nuestro cliente Win 7, está en red con nuestro servidor FTP.

Abrimos filezilla, debajo de la pestaña Archivo, tenemos el Gestor de sitios, crearemos un nuevo sitio

Vamos a crear un nuevo sitio, le daremos de nombre MIKEL, seleccionaremos la ip del servidor y en el cifrado seleccionaremos Requiere FTP explícito sobre TLS, además en cuanto al modo de acceso elegiremos Preguntar la contraseña, y elegiremos el usuario.

Nos tiene que quedar algo como esto.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

14

En cuanto le demos a conectar, nos saldrá el certificado.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

15

Vamos a comprobar que el certificado ha sido añadido correctamente, nos logearemos con el nombre y contraseña que le hemos puesto recientemente. Y como podemos observar la conexión se hace correctamente y nos sale que se verifica el certificado.

Otra de las comprobaciones que vamos a realizar es desde el CMD, ya que si tenemos un certificado no nos debería permitir la conexión con usuario y contraseña. Solo nos dejará entrar con un usuario anónimo.

Como vemos con usuario "Anónimo" nos deja entrar

Con cualquier usuario de nuestro servidor nos dará error

Vamos a comprobarlo también en Ubuntu.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

16

¡Si! Nos permite entrar

No:( No nos deja por el certificado

Comprobación Wireshark con SSL

Vamos a realizar de nuevo una captura del tráfico con Wireshark, pero en este caso como disponemos de un servidor seguro, no nos permite ver las contraseñas de nuestros usuarios.

Servicios de red e Internet Servidor FTP Mikel Xabier Marturet Urtiaga

17

Troubleshooting

Me he encontrado con varios problemas, uno de los que más tiempo me ha llevado descubrir ha sido la caída de la interfaz de red del servidor FTP sin motivo aparente, lo que me ocasionaba no poder acceder al FTP desde ningún cliente, ni hacer ping.

Con el archivo de red perfectamente configurado, con un direccionamiento estático, basta con tirar la interfaz de red y volver a levantarla.

El otro problema ha sido con el wireshark, a la hora de meter el filtro TCP no detectaba la conexión local, con reiniciar el wireshark se soluciona.

Conclusión

Un servidor FTP es una muy buena solución para la transferencia de archivos dentro de una misma red, pero siempre hay que tener en cuenta la seguridad, ya que si no es un servidor seguro cualquiera podría tener acceso a esos archivos. También, hay que tener en cuenta los permisos de cada usuario, ya que un usuario mal configurado podría tener permisos para acceder a todos los archivos del sistema.