Servidor FTP com usuários no banco de dados MySQL

pure-ftpd-with-mysql

Neste tutorial vamos montar um servidor FTP utilizando o PureFTPd com usuários no banco de dados Mysql ao invés de usar usuários do sistema, vamos ainda poder configurar quotas e limites de upload e download.


Distribuição utilizada: Debian 9 (Stretch ) / Instalação Limpa (Tutorial de instalação aqui)

Requisitos:
Servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin “LAMP” no Debian 9 Stretch

Agora criaremos nosso grupo FTP (grupoftp) e usuário (pureftpd) para que nosso usuários virtuais sejam mapeados.

Próximo passo criar a nossa base de dados, onde ficaram armazenado as informações dos nossos usuários.

Antes vamos criar um backup do /etc/pure-ftpd/db/mysql.conf e montar este arquivo com nossas configuração para fazera conexão ao mysql.

Adicione:

Esteja certo que você mudou o campo MYSQLPassword ‘SENHA_MYSQL_FPTd’

Seguindo com as configurações

ChrootEveryone – Prender por padrão os usuários FTP em seu diretório;
CreateHomeDir – Criar o home do usuário automaticamente;

Vamos criar agora um usuário, no exemplo abaixo meu usuário será dono do /var/www/html (diretório padrão do apache/debian 8)

Sempre que você queira criar um novo usário, você tem que criar uma entrada na tabela ftpd.
Explicando a estrutura da tabela:

User: Seu usuário (ex. como no nosso usuário acima: teste).
Status: 0 ou 1. 0 deixará sua conta inativa, e o usuário não pode logar.
Password: A senha do usuário. A senha está encriptada com MD5.
UID: O userid do usuário ftp que você criou (ex: 2001)
GID: O groupid do grupo ftp que você criou (ex: 2001).
Dir: Diretório home do usuário (ex: /home/teste). Se não existir será criado quando logar pela primeira vez via FTP. O usuário será preso neste diretório home.
ULBandwidth: Controle de Upload em KB/Sec. Use 0 para que seja ilimitado.
DLBandwidth: Controle de Download em KB/sec. Use 0 para que seja ilimitado.
Comment: Você pode inserir qualquer comentário (ex: Usuário da administração). Você deixa este campo limpo.
Ipaccess: Você pode definir o ip que serão permitidos para conectar nesta conta FTP. Ou ‘*’ para qualquer endereço IP.
QuotaSize: Espaço de armazenamento em MB (não KB, como em ULBandwidth eDLBandwidth) Defina 0 como ilimitado.
QuotaFiles: Número total de arquivos que este usuário poderá salvar. Defina 0 para ilimitado.

Alterando as permissões do /var/www/html isso vai ser relativo ao diretório que você definido ao usuário criado.

Fontes:
http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

4 Resultados

  1. Vicente Filho disse:

    Parabéns Pelo Excelente Trabalho!

    fiquei em dúvida aqui:
    chown ftpuser. -R /var/www/html/

    quando execute ele diz:
    chown: não foi possível acessar ‘/var/www/html/’: Arquivo ou diretório inexistente

    será que preciso instalar o Apache ou Nginx?

  2. Daniel disse:

    Muito bom!
    Funcionando 100%
    Obrigado remontti por compartilhar conhecimento!!

  1. 1 de outubro de 2016

    […] 2000:fff:250:250:0::2 (ns1) SERV DNS SLAVE -> 250.250.0.3 / 2000:fff:250:250:0::3 (ns2) SERV WEB + FTP* -> 250.250.0.4 / 2000:fff:250:250:0::4 (www,ftp) SERV ZABBIX * -> 250.250.0.5 / […]

  2. 20 de fevereiro de 2017

    […] Se você deseja arriscar e elevar o nível e criar um servidor FTP você pode seguir o tutorial: Servidor FTP com usuários no banco de dados MySQL […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *