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