Hospedagem Virtual · 3 min read · Dec 15, 2025
Hospedagem Virtual Com PureFTPd E MySQL (Incl. Gerenciamento De Quota E Largura De Banda) No Debian Etch
Hospedagem Virtual Com PureFTPd E MySQL (Incl. Gerenciamento De Quota E Largura De Banda) No Debian Etch
Versão 1.0
Autor: Falko Timme
Este documento descreve como instalar um servidor PureFTPd que utiliza usuários virtuais de um banco de dados MySQL em vez de usuários reais do sistema. Isso é muito mais eficiente e permite ter milhares de usuários ftp em uma única máquina. Além disso, mostrarei o uso de limites de quota e largura de banda de upload/download com esta configuração. As senhas serão armazenadas criptografadas como strings MD5 no banco de dados.
Para a administração do banco de dados MySQL, você pode usar ferramentas baseadas na web como o phpMyAdmin, que também será instalado neste tutorial. O phpMyAdmin é uma interface gráfica confortável, o que significa que você não precisa se preocupar com a linha de comando.
Este tutorial é baseado no Debian Etch (Debian 4.0). Você já deve ter configurado um sistema básico Debian Etch, conforme descrito nos primeiros seis capítulos deste tutorial: https://www.howtoforge.com/perfect_setup_debian_etch
Este guia é destinado a ser um guia prático; não cobre os fundamentos teóricos. Eles são tratados em muitos outros documentos na web.
Este documento vem sem garantia de qualquer tipo! Quero dizer que esta não é a única maneira de configurar um sistema desse tipo. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Neste tutorial, uso o nome do host server1.example.com com o endereço IP 192.168.0.100. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.
2 Instalar MySQL E phpMyAdmin
Tudo isso pode ser instalado com um único comando:
apt-get install mysql-server mysql-client libmysqlclient15-dev phpmyadmin apache2Crie uma senha para o usuário root do MySQL (substitua yourrootsqlpassword pela senha que você deseja usar):
mysqladmin -u root password yourrootsqlpasswordEm seguida, verifique com
netstat -tap | grep mysqlem quais endereços o MySQL está escutando. Se a saída parecer com isso:
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqldisso significa que o MySQL está escutando apenas em localhost.localdomain, então você está seguro com a senha que definiu antes. Mas se a saída parecer com isso:
tcp 0 0 *:mysql *:* LISTEN 2713/mysqldvocê deve definir uma senha do MySQL para seu nome de host também, porque caso contrário, qualquer um pode acessar seu banco de dados e modificar dados:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword3 Instalar PureFTPd Com Suporte A MySQL
Para o Debian, há um pacote pure-ftpd-mysql pré-configurado disponível. Instale-o assim:
apt-get install pure-ftpd-mysqlEm seguida, criamos um grupo ftp (ftpgroup) e um usuário (ftpuser) ao qual todos os nossos usuários virtuais serão mapeados. Substitua o grupo e o ID do usuário 2001 por um número que esteja livre em seu sistema:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "usuário pureftpd" -g ftpgroup ftpuser4 Criar O Banco De Dados MySQL Para PureFTPd
Agora criamos um banco de dados chamado pureftpd e um usuário MySQL chamado pureftpd que o daemon PureFTPd usará mais tarde para se conectar ao banco de dados pureftpd:
mysql -u root -pCREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;Substitua a string ftpdpass pela senha que você deseja usar para o usuário MySQL pureftpd. Ainda no shell do MySQL, criamos a tabela do banco de dados que precisamos (sim, há apenas uma tabela!):
USE pureftpd;CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;quit;Como você pode ter notado, com o comando quit; saímos do shell do MySQL e voltamos ao shell do Linux.
A propósito, (estou assumindo que o nome do host do seu sistema de servidor ftp é server1.example.com) você pode acessar o phpMyAdmin em http://server1.example.com/phpmyadmin/ (você também pode usar o endereço IP em vez de server1.example.com) em um navegador e fazer login como o usuário pureftpd. Então você pode dar uma olhada no banco de dados. Mais tarde, você pode usar o phpMyAdmin para administrar seu servidor PureFTPd.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.