Configuración FTP · 2 min read · Feb 09, 2026
Alojamiento Virtual Con vsftpd Y MySQL En Debian Etch - Página 2
4 Configurar vsftpd
Primero creamos un usuario no privilegiado llamado vsftpd (con el directorio home /home/vsftpd) que pertenece al grupo nogroup. Ejecutaremos vsftpd bajo este usuario, y los directorios FTP de nuestros usuarios virtuales estarán en el directorio /home/vsftpd (por ejemplo, /home/vsftpd/user1, /home/vsftpd/user2, etc.).
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpdLuego hacemos una copia de seguridad del archivo original /etc/vsftpd.conf y creamos el nuestro:
cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
cat /dev/null > /etc/vsftpd.conf
vi /etc/vsftpd.confEl archivo debe tener el siguiente contenido:
| listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf |
Las opciones de configuración se explican en http://vsftpd.beasts.org/vsftpd_conf.html. Las opciones importantes para nuestra configuración virtual son chroot_local_user, guest_enable, guest_username, user_sub_token, local_root y virtual_use_local_privs.
Con la opción user_config_dir puedes especificar un directorio para archivos de configuración por usuario que anulan partes de la configuración global. Esto es totalmente opcional y depende de ti si deseas utilizar esta función. Sin embargo, debemos crear ese directorio ahora:
mkdir /etc/vsftpd_user_confAhora debemos configurar PAM para que utilice la base de datos MySQL para autenticar a nuestros usuarios FTP virtuales en lugar de /etc/passwd y /etc/shadow. La configuración de PAM para vsftpd está en /etc/pam.d/vsftpd. Hacemos una copia de seguridad del archivo original y creamos uno nuevo así:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd| auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 |
¡Asegúrate de reemplazar la contraseña de MySQL con la tuya propia!
Después, reiniciamos vsftpd:
/etc/init.d/vsftpd restart5 Crear El Primer Usuario Virtual
Para poblar la base de datos puedes usar la consola de MySQL:
mysql -u root -pUSE vsftpd;Ahora creamos el usuario virtual testuser con la contraseña secret (que se almacenará cifrada usando la función PASSWORD de MySQL):
INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
quit;directorio home de testuser es /home/vsftpd/testuser; desafortunadamente, vsftpd no crea ese directorio automáticamente si no existe. Por lo tanto, lo creamos manualmente ahora y lo hacemos propiedad del usuario vsftpd y del grupo nogroup:
mkdir /home/vsftpd/testuser
chown vsftpd:nogroup /home/vsftpd/testuserAhora abre tu programa cliente FTP en tu estación de trabajo (algo como WS_FTP o SmartFTP si estás en un sistema Windows o gFTP en un escritorio Linux) y trata de conectarte. Como nombre de host usas server1.example.com (o la dirección IP del sistema), el nombre de usuario es testuser, y la contraseña es secret.
Si puedes conectarte - ¡felicitaciones! Si no, algo salió mal.
6 Administración de Base de Datos
Para la mayoría de las personas es más fácil si tienen una interfaz gráfica para MySQL; por lo tanto, también puedes usar phpMyAdmin (en este ejemplo bajo http://server1.example.com/phpmyadmin/) para administrar la base de datos vsftpd.

Cada vez que crees o modifiques un usuario, asegúrate de usar la función PASSWORD de MySQL para cifrar la contraseña de ese usuario. Además, cuando crees un nuevo usuario virtual, por favor no olvides crear el directorio home de ese usuario en la consola, como se mostró al final del capítulo anterior.

7 Enlaces
- vsftpd: http://vsftpd.beasts.org
- Debian: http://www.debian.org
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.