Inicio / Linux / Servidor FTP con identificación MySQL

Servidor FTP con identificación MySQL

Desde hace unos días, estoy redactando un artículo para 4admins.es que se titulará: “Home Server for with Ubuntu 12.10”.

Como tengo pensado entregar este artículo en varias partes, me ha sido curioso verificar que hay muy poca información válida de como configurar un servidor FTP con la identificación o gestión de usuarios mediante MySQL; algo que para mí es esencial cuando quieres centralizar los recursos o servicios que vas a prestar.

Sin más rodeos, comenzamos con los requerimientos:

Requerimientos pre-instalación:

  1. Ubuntu 12.10
  2. MySQL Server
  3. Apache2
  4. PHP5

Una vez tengamos esto instalado bien sea con una instalación por defecto que podemos ejecutar o seleccionar desde el tasksel el LAMP o instalando los paquetes a mano, vamos a proceder a instalar Proftpd que ha sido el servidor FTP seleccionado en este caso.

Con esto ya tendremos instalado nuestro servidor FTP y le hemos agreado el mod de MySQL para poder gestionar la identificación de usuarios desde una base de datos.

El siguiente paso es crear una base de datos para almacenar las tablas de usuarios y grupos del servicio FTP que proporcionaremos desde nuestro servidor.

Para ello nos identificaremos en MySQL y ejecutaremos los siguientes comandos:

Bien, me paro un momento en este último comando que sería el acceso o uso a la tabla recién creada para comentaros la estructura de las tablas que vamos a generar.

Como he comentado al inicio de este artículo, esto es un extracto de un artículo más denso que tendréis disponible tanto aquí como en 4admins.es por lo que veréis algunos campos de la tabla que pertenecen a la identificación de usuarios VPN, explicado esto y para que a nadie le extrañe; continúo.

Ahora vamos a crear la tabla para los grupos de usuarios FTP:

Ya que tenemos nuestra base de datos configurada para la identificación de usuarios, vamos a proceder a configurar los archivos de ProFTPD.

El primer archivo que debemos modificar es proftpd.conf y está en /etc/proftpd/

Pulsando las teclas Ctrl+W pondremos a buscar AuthOrder eliminamos lo que tiene y escribimos mod_sql.c por lo que dicha línea quedaría así:

Volvemos a pulsar las teclas Ctrl+W y buscaremos sql.conf que por defecto viene en una línea comentada como esta:

Lo que haremos, será borrar la almohadilla # para que nos quede así:

Volvemos a pulsar las teclas Ctrl+W y buscaremos RequireValidShell , por defecto esta línea viene comentada, así que la editaremos para dejarla así:

Nos desplazamos al final de archivo y añadiremos las siguientes líneas:

Pulsamos las teclas Ctrl+O para guardar y Ctrl+X para salir.

El siguiente archivo a editar es modules.conf que se encuentra en /etc/proftpd/ asi que ejecutamos…

En este archivo vamos a necesitar descomentar (eliminar la # del inicio de la línea) las siguientes líneas:

Pulsamos las teclas Ctrl+O para guardar y Ctrl+X para salir.

Ahora editaremos el archivo sql.conf que también se encuentra en /etc/proftpd/

En este archivo podemos directamente eliminar lo que hay y pegar lo siguiente:

Ya tenemos todo configurado, por lo que procedemos a reiniciar nuestro servidor FTP.

Ahora vamos a crear un directorio para el uid 1001 y gid 3001:

Le concedemos los permiso:

Bien!! ya tenemos nuestro servidor FTP creado, pero no podemos dar de alta los usuarios 🙁

Como dar de alta usuarios bien utilizando directamente la consola o el PhpMyAdmin, es algo engorroso, os dejo aquí este script en PHP:

Lógicamente esto se puede generar con formularios o si esperáis a que el artículo completo vea la luz, tendréis un sistema web completo y una aplicación en VB.net

Os animo a convertir ese viejo PC en vuestro servidor casero.

Sobre Bosco López

/dev/null

Te puede interesar también

Instalar un Theme en Nagios 4 y paquete de iconos

Nagios Core no destaca por tener una interface gráfica demasiado llamativa y hasta podríamos decir …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *