Alojamiento Virtual · 5 min read · Nov 27, 2025
Alojamiento Virtual Con PureFTPd Y MySQL (Incl. Gestión De Cuotas Y Ancho De Banda) En CentOS 6.5
Alojamiento Virtual Con PureFTPd Y MySQL (Incl. Gestión De Cuotas Y Ancho De Banda) En CentOS 6.5
Versión 1.0
Autor: Falko Timme, actualizado por Srijan Kishore
Sigue a howtoforge en Twitter
Este documento describe cómo instalar un servidor PureFTPd que utiliza usuarios virtuales de una base de datos MySQL en lugar de usuarios reales del sistema. Esto es mucho más eficiente y permite tener miles de usuarios ftp en una sola máquina. Además, mostraré el uso de cuotas y límites de ancho de banda de carga/descarga con esta configuración. Las contraseñas se almacenarán encriptadas como cadenas MD5 en la base de datos.
Para la administración de la base de datos MySQL, puedes usar herramientas basadas en 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 CentOS 6.5. Ya deberías haber configurado un sistema básico de CentOS 6.5, por ejemplo, como se describe en los primeros seis capítulos de este tutorial: El Servidor Perfecto - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)
Este howto está destinado como 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 emito 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. Estos ajustes pueden diferir para ti, así que debes reemplazarlos donde sea apropiado.
2 Instalar MySQL Y phpMyAdmin
Primero habilitamos el repositorio EPEL en nuestro sistema CentOS, ya que algunos paquetes que vamos a instalar en el transcurso de este tutorial no están disponibles en los repositorios oficiales de CentOS 6.5:
cd /tmp
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpmyum install yum-prioritiesEdita /etc/yum.repos.d/epel.repo…
vi /etc/yum.repos.d/epel.repo… y agrega la línea priority=10 a la sección [epel]:
| [epel] name=Paquetes Extra para Linux Empresarial 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Ahora podemos instalar MySQL y phpMyAdmin de la siguiente manera:
yum install mysql mysql-server phpMyAdmin httpdAhora configuramos phpMyAdmin. Cambiamos la configuración de Apache para que phpMyAdmin permita conexiones no solo desde localhost (comentando todo en el bloque
para que el archivo se vea así:
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - Navegador MySQL basado en web escrito en php # # Solo permite localhost por defecto # # Pero permitir phpMyAdmin a cualquier persona que no sea localhost debe considerarse # peligroso a menos que esté debidamente asegurado por SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin |
Luego creamos los enlaces de inicio del sistema para MySQL y Apache (para que ambos se inicien automáticamente cada vez que se inicie el sistema) y comenzamos ambos servicios:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startchkconfig --levels 235 httpd on
/etc/init.d/httpd startCrea una contraseña para el usuario root de MySQL (reemplaza yourrootsqlpassword con la contraseña que deseas usar):
mysql_secure_installation[root@server1 ~]# mysql_secure_installation
NOTA: ¡SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MySQL EN USO EN PRODUCCIÓN! ¡LEA CADA PASO CUIDADOSAMENTE!
Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MySQL, y no has establecido la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.
Introduce la contraseña actual para root (presiona enter para ninguno): <– ENTER
OK, se utilizó la contraseña con éxito, continuando…
Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MySQL sin la autorización adecuada.
¿Establecer la contraseña de root? [Y/n] <– ENTER
Nueva contraseña: <– yourrootsqlpassword
Reingresa la nueva contraseña: <– yourrootsqlpassword
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
… ¡Éxito!
Por defecto, una instalación de MySQL tiene un usuario anónimo, permitiendo que cualquiera inicie sesión en MySQL sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas, y para hacer que la instalación sea un poco más fluida. Debes eliminarlos antes de pasar a un entorno de producción.
¿Eliminar usuarios anónimos? [Y/n] <– ENTER
… ¡Éxito!
Normalmente, solo se debería permitir que root se conecte desde ‘localhost’. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <– ENTER
… ¡Éxito!
Por defecto, MySQL viene con una base de datos llamada ‘test’ a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debe ser eliminado antes de pasar a un entorno de producción.
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <– ENTER
- Eliminando la base de datos de prueba…
… ¡Éxito! - Eliminando privilegios sobre la base de datos de prueba…
… ¡Éxito!
Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.
¿Recargar tablas de privilegios ahora? [Y/n] <– ENTER
… ¡Éxito!
Limpiando…
¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MySQL debería estar ahora segura.
¡Gracias por usar MySQL!
[root@server1 ~]#
3 Instalar PureFTPd Con Soporte Para MySQL
El paquete PureFTPd de CentOS soporta varios backends, como MySQL, PostgreSQL, LDAP, etc. Por lo tanto, todo lo que tenemos que hacer es instalar el paquete normal de PureFTPd:
yum install pure-ftpdLuego creamos un grupo ftp (ftpgroup) y un usuario (ftpuser) al que se mapearán todos nuestros usuarios virtuales. Reemplaza el grupo y el ID de usuario 2001 con un número que esté libre en tu sistema:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "usuario pureftpd" -g ftpgroup ftpuserRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.