Alojamiento Virtual · 3 min read · Dec 14, 2025

Alojamiento Virtual Con vsftpd Y MySQL En Debian Etch

Alojamiento Virtual Con vsftpd Y MySQL En Debian Etch

Versión 1.0
Autor: Falko Timme

Vsftpd es uno de los servidores FTP más seguros y rápidos para Linux. Normalmente, vsftpd se configura para trabajar con usuarios del sistema. Este documento describe cómo instalar un servidor vsftpd que utiliza usuarios virtuales de una base de datos MySQL en lugar de usuarios del sistema reales. Esto es mucho más eficiente y permite tener miles de usuarios FTP en una sola máquina.

Para la administración de la base de datos MySQL, puedes usar herramientas basadas en la web como phpMyAdmin, que también se instalará en este tutorial. phpMyAdmin es una interfaz gráfica cómoda, lo que significa que no tienes que lidiar con la línea de comandos.

Este tutorial se basa en Debian Etch (Debian 4.0). Ya deberías haber configurado un sistema básico de Debian Etch, como se describe en los primeros seis capítulos de este tutorial: https://www.howtoforge.com/perfect_setup_debian_etch

Este tutorial está destinado a ser una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.

¡Este documento se proporciona sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que elijo. No ofrezco ninguna garantía de que esto funcione para ti.

1 Nota Preliminar

En este tutorial utilizo el nombre de host server1.example.com con la dirección IP 192.168.0.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.

2 Instalar vsftpd, MySQL Y phpMyAdmin

Vsftpd no tiene soporte MySQL incorporado, por lo tanto, debemos usar PAM para autenticar contra la base de datos MySQL. Así que instalamos libpam-mysql además de vsftpd, MySQL y phpMyAdmin:

apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin

Crea una contraseña para el usuario root de MySQL (reemplaza yourrootsqlpassword con la contraseña que deseas usar):

mysqladmin -u root password yourrootsqlpassword

Luego verifica con

netstat -tap | grep mysql

en qué direcciones está escuchando MySQL. Si la salida se ve así:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld

lo que significa que MySQL está escuchando solo en localhost.localdomain, entonces estás seguro con la contraseña que configuraste antes. Pero si la salida se ve así:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld

deberías establecer una contraseña de MySQL para tu nombre de host también, porque de lo contrario cualquiera puede acceder a tu base de datos y modificar datos:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

3 Crear La Base De Datos MySQL Para vsftpd

Ahora creamos una base de datos llamada vsftpd y un usuario de MySQL llamado vsftpd que el demonio vsftpd usará más adelante para conectarse a la base de datos vsftpd:

mysql -u root -p
CREATE DATABASE vsftpd;  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';  
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';  
FLUSH PRIVILEGES;

Reemplaza la cadena ftpdpass con la contraseña que desees usar para el usuario MySQL vsftpd. Aún en la consola de MySQL, creamos la tabla de base de datos que necesitamos (sí, ¡solo hay una tabla!):

USE vsftpd;
CREATE TABLE `accounts` (  
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
`username` VARCHAR( 30 ) NOT NULL ,  
`pass` VARCHAR( 50 ) NOT NULL ,  
UNIQUE (  
`username`  
)  
) ENGINE = MYISAM ;
quit;

Como habrás notado, con el comando quit; hemos salido de la consola de MySQL y estamos de vuelta en la consola de Linux.

Por cierto, (asumo que el nombre de host de tu sistema de servidor FTP es server1.example.com) puedes acceder a phpMyAdmin en http://server1.example.com/phpmyadmin/ (también puedes usar la dirección IP en lugar de server1.example.com) en un navegador e iniciar sesión como el usuario vsftpd. Luego puedes echar un vistazo a la base de datos. Más adelante puedes usar phpMyAdmin para administrar tu servidor vsftpd.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.