Practica 2 FTP

12
Práctica 2 Servidor ProFTPd Servicios de Red e Internet Francisco Javier Gavilán Escriche 2ºA

Transcript of Practica 2 FTP

Page 1: Practica 2 FTP

Práctica 2 Servidor ProFTPd

Servicios de Red e Internet

Francisco Javier Gavilán Escriche 2ºA

Page 2: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

1 1

Indice

Objetivos .......................................................................................................................................... 2

Instalación de Mysql ........................................................................................................................ 3

Instalación ProFTPd ........................................................................................................................ 3

Creación de la base de datos ............................................................................................................ 4

Configuración del Servidor ProFTPd .............................................................................................. 7

Creación de usuarios virtuales ......................................................................................................... 9

Acceso remoto utilizando un cliente FTP ..................................................................................... 10

Page 3: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

2 2

Objetivos

Configura tu servidor FTP para que se pueda acceder al mismo a través de usuarios almacenados

en una base de datos MySql.

Acceso a Proftpd con usuarios almacenados en una base de datos.

Page 4: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

3 3

Instalación de Mysql

Normalmente la información de los usuarios virtuales se guarda en un fichero de texto plano,

nosotros vamos a explicar la configuración del servidor para guardar la información de los

usuarios virtuales en una base de datos construida en MySQL. Para instalar el servidor de base

de datos MySQL utilizamos el comando apt-get:

“apt-get install mysql”

Instalación ProFTPd

Para instalar el servidor proFTPD, utilizamos el comando apt-get de la siguiente forma:

“apt-get install proftpd”

Durante la instalación debemos escoger la forma en que se va ejecutar este servicio, si lo hará

bajo inetd o en forma independiente (como un proceso más). La diferencia entre ambos métodos

es la velocidad de ejecución que se obtendrá del servicio y la carga que se le dará al equipo.

Utilizando inetd el equipo iniciará un proceso nuevo por cada petición ftp que llegue al equipo,

mientras que ejecutándose en forma independiente, el proceso ya está inicializado por lo que no

hay necesidad ejecutar un nuevo programa (simplemente se clona el proceso, generando una

nueva instancia del mismo para atender al cliente ftp que inicio el requerimiento). Nosotros

escogeremos la opción independiente.

Page 5: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

4 4

Creación de la base de datos

ProFTPD, de forma normal, valida sobre el /etc/passwd y /etc/shadow, por tanto necesita una

tabla que simule los datos contenidos en estos ficheros.

También utiliza el /etc/group, por lo que necesitamos otra tabla del mismo modo:

Tabla de usuarios:

-username: Nombre del usuario

-password: Contraseña del usuario

-uid: Identificador del usuario

-gid: Identificador del grupo al que pertenece el usuario

-homedir: Directorio donde tendrá acceso el usuario

-activa: Este campo lo usamos para activar y desactivar cuentas sin borrar el usuario1

Tabla de grupos:

-groupname: Nombre del grupo

-gid: Identificador del grupo

-members: Nombres de los usuarios que pertenecen a este grupo

Como se puede ver es todo muy similar al /etc/passwd y /etc/group. Ahora vamos a ver las

instrucciones SQL para crear estas tablas.

Lo primero, creamos la base de datos que vamos a utilizar. Accedemos como root y creamos la

base de datos ftpd:

Ahora generamos un usuario que acceda a la base de datos, para no utilizar el usuario root:

Page 6: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

5 5

Es decir, hemos creado un nuevo usuario (proftpd) que se va a conectar desde localhost, tiene

permiso en todas las tablas de la base de datos que hemos creado anteriormente y cuya

contraseña es “proftpd”. Este es el usuario que utilizaremos para crear las tablas anteriormente

descritas:

Hemos entrado con el usuario creado anteriormente, hemos visualizados las bases de datos,

hemos indicado que la base de datos que vamos a utilizar es ftpd y hemos mostrado las tablas,

que como podemos observar no hay ninguna. Estamos preparados para crear las tablas:

*Fallo al crear el campo dig, en realidad hay que poner gid

Page 7: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

6 6

Veamos las tablas que hemos creado y su estructura:

*Fallo al crear el campo dig, en realidad hay que poner gid

Page 8: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

7 7

Configuración del Servidor ProFTPd

La configuración del servidor proFTPd está en el fichero /etc/proftpd.conf, la sintaxis que utiliza

es parecida a la utilizada en apache, por lo que el usuario acostumbrado a configurar apache le

resultará familiar. La configuración que viene por defecto en el fichero nos viene bien, lo único

que vamos a hacer es introducir nuevas directivas para que el servidor proFTPd valide los

usuarios utilizando la información guardada en nuestra base de datos MySQL. Las directivas que

vamos a introducir en el fichero de configuración son las siguientes:

*Descomentar también las directivas llamadas DocumentRoot y RequireValidShell

Una vez pongamos las directivas guardamos los cambios en al archivo pero posiblemente nos de

error al reiniciar el servicio debido a que nos falta un módulo de mysql perteneciente a proftpd

llamado “proftpd-mod-mysql”, así que procedemos a su instalación mediante la siguiente orden

“sudo apt-get install proftpd-mod-mysql”.

También tendremos que modificar un archivo situado en /etc/proftpd llamado modules.conf,

concretamente tendremos que descomentar las líneas “LoadModule mod_sql.c” y “LoadModule

mod_sql_mysql.c para que cuando reiniciemos el servicio proftpd nos cargue automáticamente

dicho mod sql.

Page 9: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

8 8

Page 10: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

9 9

Creación de usuarios virtuales

Lo primero que vamos a hacer es añadir la información necesaria de los usuarios en las tablas de

la base de datos. Vamos a crear un grupo virtual ftpusers al que le vamos a hacer corresponder

un identificador de grupo ficticio, por ejemplo

el 6000, además vamos a crear dos usuarios: user1 y user2, con contraseñas passuser1 y

passuser2, con identificadores de usuarios 5000 y 5001, estos dos usuarios van a pertenecer al

grupo ftpusers por lo que su campo gid va a ser el 6000, además el campo homedir será para

cada uno el correspondiente a los dos directorios de los sitios web virtuales (/srv/www/pagina1 y

/srv/www/pagina2) y por último el campo shell será /bin/false, indicando que no van a poder

logearse en el sistema como usuario reales. Para ello tenemos que ejecutar las siguientes

instrucciones:

Para comprobar que la inserción ha sido correcta, podemos ejecutar los siguientes comandos:

*Fallo al crear el campo dig, en realidad hay que poner gid

Page 11: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

10 10

Podemos comprobar como el campo password ha sido cifrado. Por otro lado, modificando el

campo activa a 0 podemos desactivar el usuario de una manera muy fácil.

El último paso que tenemos que hacer es poner como propietario de los directorios donde

tenemos nuestras páginas webs a los dos usuarios respectivamente, como root tenemos que

ejecutar lo siguiente:

Se puede observar como en ningún momento hemos empleado los nombres de los usuarios o el

nombre del grupo, es más si listamos el directorio /srv/www veremos que los directorios pagina1

y pagina2 pertenecen al usuario 5000 y 5001 del grupo 6000, esos usuarios no son usuarios

reales del sistema.

Acceso remoto utilizando un cliente FTP

Bueno para probar que el sistema está funcionando correctamente podemos hacer uso del cliente

ftp de Linux:

Page 12: Practica 2 FTP

Práctica 2 servidor ProFTPd Francisco Javier Gavilán Escriche

11 11

Ahora vamos a comprobar con cualquiera de los 2 usuarios de la base de datos que realmente

funciona la conexión: