FTP y
Mysql -
Ubuntu
2º ASIR – Redes –
Trimestre 1

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


Í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




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


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




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


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:




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


Crea la tabla de grupo:




Vemos las tablas creadas:




Vemos su estructura:




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


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:




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


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:




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


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;




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


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:



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




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




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




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




User2




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




            12

Red t4 practica_ftp2

  • 1.
    FTP y Mysql - Ubuntu 2ºASIR – Redes – Trimestre 1 Débora García García
  • 2.
    REDES TRIMESTRE 1 Débora García García Í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 1
  • 3.
    REDES TRIMESTRE 1 Débora García García 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). 2
  • 4.
    REDES TRIMESTRE 1 Débora García García 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: 3
  • 5.
    REDES TRIMESTRE 1 Débora García García Crea la tabla de grupo: Vemos las tablas creadas: Vemos su estructura: 4
  • 6.
    REDES TRIMESTRE 1 Débora García García 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: 5
  • 7.
    REDES TRIMESTRE 1 Débora García García 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: 6
  • 8.
    REDES TRIMESTRE 1 Débora García García 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; 7
  • 9.
    REDES TRIMESTRE 1 Débora García García 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: 8
  • 10.
    REDES TRIMESTRE 1 Débora García García 9
  • 11.
    REDES TRIMESTRE 1 Débora García García 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 10
  • 12.
    REDES TRIMESTRE 1 Débora García García User2 11
  • 13.
    REDES TRIMESTRE 1 Débora García García 12