13
FTP y Mysql - Ubuntu 2º ASIR – Redes – Trimestre 1 Débora García García

Red t4 practica_ftp2

Embed Size (px)

Citation preview

Page 1: Red t4 practica_ftp2

FTP y Mysql - Ubuntu

2º ASIR – Redes – Trimestre 1

Débora García García

Page 2: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

1

Índice Introducción ............................................................................................................................. 2

Instalaciones previas ................................................................................................................. 2

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

Configuración del servidor proFTPd .......................................................................................... 5

Creación de usuarios virtuales................................................................................................... 7

Acceso remoto usando un cliente FTP ..................................................................................... 10

Page 3: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

2

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

almacenados en una base de datos MySql.

Instalaciones previas Instala primero MYSQL:

- Apt-get install mysql-server

Utilizaremos usuarios virtuales, pero proFTPd utiliza los usuarios del sistema.

Cambia la contraseña del root:

- Mysqladmind –u root pasword xxxx

Instalar proFTPd:

- Apt-get install proftpd

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).

Page 4: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

3

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:

Nos iniciamos en la base de datos:

- Mysql –u root –p

Creamos la nueva base de datos:

Creamos a un usuario que acceda a esa base de datos que no sea root:

Salimos de mysql y nos metemos con el usuario creado

- Mysql –u proftpd –p

Crea la tabla de usuario:

Page 5: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

4

Crea la tabla de grupo:

Vemos las tablas creadas:

Vemos su estructura:

Page 6: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

5

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.

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

AuthPAM off: Para deshabilitar la autentificación PAM, es decir para que no

autentifique a los usuarios reales.

RequireValidShell off: Requiere una Shell válida para iniciar sección. Las Shell válidas

son las que están en /etc/shells.

DefaultRoot ˜: Para que cuando un usuario entra en el servidor ftp, no pueda salir de

su home a directorios superiores.

Y por último nos queda las directivas de configuración para que proFTPd autentifique los

usuarios virtuales cuya información vamos a guardar en las tablas de nuestra base de datos.

Antes de ver las directivas vamos a explicar cada una de ellas:

SQLBackend: Con esta directiva indicamos el servidor de base de datos que vamos a

utilizar. En nuestro caso mysql.

SQLAuthTypes: En tipos de identificación tenemos (entre otras) PlainText (texto

plano), Crypt (como en el /etc/shadow) o Backend (utiliza el sistema propio de la base

de datos). Aquí depende de con que vayamos a cifrar las contraseñas en la base de

datos. Si lo haces con CRYPT () usa Crypt, si usas PASSWORD () usa Backend.

SQLAuthenticate: Con esta directiva decimos quien tiene que identificarse en MySQL.

Podemos seleccionar grupos o usuarios, yo me limito a decir que todos: on.

SQLConnectInfo: Se indica los datos de la conexión a la base de datos. Base de

datos@host usuario contraseña

SQLDefaultGID y SQLDefaultUID: Indican, respectivamente, los GID y UID que se usan

por defecto en caso de no poner nada en la tabla.

SQLMinUserGID y SQLMinUserUID: Indican el UID y el GID mínimo que han de tener

los usuarios para poder loguear.

SQLGroupInfo: Se indica el nombre de la tabla que posee la información de los grupos,

así como los nombres de los campos.

SQLUserInfo: Se indica el nombre de la tabla que posee la información de los usuarios,

así como los nombres de los campos2.

SQLUserWhereClause: Indica una condición a la hora de seleccionar los campos.

Nosotros la usamos para controlar si una cuenta está activa o no3.

SQLLogFile: Se indica el archivo de log donde se guarda la información generada por el

servidor al acceder a la base de datos.

Estos son los ficheros que contiene el servicio proFTPd:

Page 7: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

6

Nosotros vamos a incluir las directivas anteriores en el fichero proftpd.cponf, meterlas aquí

más adelante da problemas para la conexión, así que las comenté todas y las descomenté en el

fichero sql.conf que vienen por defecto la mayoría comentadas:

Page 8: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

7

Ahora instalamos el módulo que permite que proftpd se sirva de una base de datos mysql en

este caso:

-apt-get install proftpd-mod-mysql

Debemos de configurar el fichero modules.conf descomentando alguna línea:

Ahora reiniciamos el servicio:

Creación de usuarios virtuales Vamos a crear dos usuarios que van a tener acceso por FTP a cada uno de sus espacios web,

para gestionar las páginas de manera remota y añadir la información en las tablas creadas

anteriormente.

Nos conectamos a la base de datos:

- Mysql –u proftpd –p : profetpd

- Use ftpd;

Page 9: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

8

Vamos a crear un grupo ftpusers con identificador 6000 y también vamos a crear dos usuarios

user1 y user2 con los identificadoes 5000 y 5001, pertenecen al grupo anterior. El campo Shell

será /bin/false, indicando que no van a poder loguearse en el sistema como usuarios reales:

Miramos si se han introducido los datos correctamente:

Creamos sus directorios para los sitios web virtuales:

Cambiamos el uid y guid:

Para finalizar voy a mostrar cómo quedaría finalmente el fichero proftpd.conf, lo más

importante:

Page 10: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

9

Page 11: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

10

Acceso remoto usando un cliente FTP Vamos a comprobar que configurados todos los ficheros necesarios funciona nuestra conexión

de usuarios almacenados en la base de datos mysql con FTP:

User1

Page 12: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

11

User2

Page 13: Red t4 practica_ftp2

REDES TRIMESTRE 1 Débora García García

12