FTP Server · 6 min read · Sep 24, 2025

Instalando Pure-FTPd no Ubuntu 22.04

Pure-FTPd é um servidor FTP gratuito (licença BSD), seguro, de qualidade de produção e conforme aos padrões. Ele não fornece recursos desnecessários, mas foca na eficiência e facilidade de uso. Este guia fornece um processo passo a passo para instalar e configurar o Pure-FTPd no Ubuntu.

Pré-requisitos para Instalar o Pure-FTPd

Antes de prosseguir com a instalação, certifique-se de que você tem:

  • Um servidor Ubuntu configurado
  • Acesso a uma conta de usuário com privilégios sudo

Instalação Passo a Passo do Pure-FTPd

Atualizando Pacotes do Sistema

Primeiro, atualize a lista de pacotes do seu sistema:

sudo apt update

Instalando o Pure-FTPd

Em seguida, instale o Pure-FTPd usando o seguinte comando:

sudo apt install pure-ftpd

Configurando o Pure-FTPd para Segurança Aprimorada

Configurando um Ambiente Seguro

Crie um grupo dedicado para usuários FTP:

sudo groupadd ftpgroup

Crie um usuário para o Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Gerenciando Acesso de Usuário

Para adicionar um usuário ao servidor FTP:

sudo pure-pw useradd [nome_de_usuário] -u ftpuser -g ftpgroup -d /home/ftpusers/[nome_de_usuário]  
sudo pure-pw mkdb

Substitua [nome_de_usuário] pelo nome de usuário desejado.

Configurando TLS para Transferência Segura de Dados

Gere um certificado autoassinado:

sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Modifique a configuração do Pure-FTPd para ativar o TLS:

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS  
sudo service pure-ftpd restart

Opções de Configuração Avançadas

Aqui está uma lista de configurações comuns que podem ser configuradas para o Pure-FTPd no diretório /etc/pure-ftpd/conf/ no Ubuntu. O nome do arquivo de configuração está em negrito.

  • AltLog: Especifica métodos alternativos de registro. Por exemplo, AltLog clf:/var/log/pureftpd.log registrará transferências no formato W3C.
  • AnonymousOnly: Quando habilitado (criando um arquivo chamado AnonymousOnly), restringe o servidor para permitir apenas logins anônimos.
  • AntiWarez: Se este arquivo existir, os usuários estão proibidos de enviar arquivos que já existem no servidor.
  • AutoRename: Renomeia automaticamente arquivos enviados se um arquivo com o mesmo nome existir.
  • Bind: Vincula o servidor a um endereço IP e porta específicos. Por exemplo, Bind 21 vincula à porta 21 em todos os endereços disponíveis.
  • BrokenClientsCompatibility: Habilita compatibilidade com clientes FTP que não aderem estritamente aos padrões FTP.
  • ChrootEveryone: Se habilitado, restringe todos os usuários ao seu diretório inicial.
  • CreateHomeDir: Cria automaticamente diretórios iniciais se não existirem quando um usuário faz login.
  • CustomerProof: Aumenta a resiliência contra erros comuns cometidos em configurações e comandos de clientes.
  • Daemonize: Quando este arquivo existir, o Pure-FTPd será executado como um daemon.
  • DisplayDotFiles: Controla se arquivos ocultos (dot files) são exibidos ou não.
  • DontResolve: Impede a resolução de DNS para registro e controle de largura de banda, o que pode melhorar o desempenho.
  • ExtAuth: Especifica um programa externo para autenticação de usuários.
  • ForcePassiveIP: Força o servidor a relatar um endereço IP específico para clientes em modo passivo.
  • FSCharset: Define o conjunto de caracteres do sistema de arquivos, útil para nomes de arquivos não-ASCII.
  • IPv4Only ou IPv6Only: Restringe o servidor a escutar apenas endereços IPv4 ou IPv6.
  • KeepAllFiles: Impede a exclusão de qualquer arquivo no servidor.
  • LDAPConfigFile: Especifica o caminho para o arquivo de configuração LDAP para autenticação.
  • LimitRecursion: Limita a profundidade de recursão e o número de arquivos exibidos nas listagens de diretórios.
  • MaxClientsNumber: Limita o número máximo de clientes simultâneos.
  • MaxClientsPerIP: Restringe o número de conexões simultâneas de um único endereço IP.
  • MaxDiskUsage: Limita a porcentagem de uso do disco.
  • MaxIdleTime: Define o tempo máximo de inatividade em minutos antes de desconectar um cliente.
  • MaxLoad: Desconecta clientes ou recusa novas conexões acima de uma certa carga do sistema.
  • MinUID: Define o UID mínimo para login. Usuários com um UID mais baixo não podem fazer login.
  • MySQLConfigFile: Especifica o caminho para o arquivo de configuração MySQL para autenticação baseada em banco de dados.
  • NoAnonymous: Desabilita logins anônimos se este arquivo existir.
  • NoChmod: Desabilita o comando CHMOD no servidor.
  • NoRename: Impede que os usuários renomeiem arquivos.
  • PassivePortRange: Define um intervalo de portas para conexões passivas (por exemplo, 30000 35000).
  • PerUserLimits: Define limites com base em cada usuário.
  • PureDB: Especifica o caminho para o arquivo de banco de dados de usuários PureDB.
  • Quota: Define limites de cota para usuários.
  • SyslogFacility: Define a instalação do syslog para registro.
  • TLSCipherSuite: Especifica os cifradores TLS permitidos para conexões criptografadas.
  • TrustedGID: Especifica uma lista de IDs de grupo confiáveis para login.
  • UMask: Define a umask padrão para criação de arquivos.
  • UnixAuthentication: Habilita autenticação contra o banco de dados de senhas UNIX.
  • UploadScript: Especifica um script para ser executado após um upload bem-sucedido.

Esta lista cobre as opções de configuração mais comumente usadas, mas não é exaustiva. Sempre consulte a documentação oficial do Pure-FTPd ou use o

pure-ftpd-wrapper --help

comando para as informações mais precisas e abrangentes.

Exemplos

Aqui está uma lista de configurações do Pure-FTPd em /etc/pure-ftpd/conf/ com exemplos para ilustrar os tipos de valores que aceitam:

  • AltLog: AltLog clf:/var/log/pureftpd.log - Exemplo: clf:/var/log/pureftpd.log
  • AnonymousOnly: Habilite criando um arquivo chamado AnonymousOnly. - Nenhum valor necessário.
  • AntiWarez: Habilite criando um arquivo chamado AntiWarez. - Nenhum valor necessário.
  • AutoRename: Habilite criando um arquivo chamado AutoRename. - Nenhum valor necessário.
  • Bind: Bind 21 - Exemplo: 192.168.0.1,21
  • BrokenClientsCompatibility: Habilite criando um arquivo chamado BrokenClientsCompatibility. - Nenhum valor necessário.
  • ChrootEveryone: Habilite criando um arquivo chamado ChrootEveryone. - Nenhum valor necessário.
  • CreateHomeDir: Habilite criando um arquivo chamado CreateHomeDir. - Nenhum valor necessário.
  • CustomerProof: Habilite criando um arquivo chamado CustomerProof. - Nenhum valor necessário.
  • Daemonize: Habilite criando um arquivo chamado Daemonize. - Nenhum valor necessário.
  • DisplayDotFiles: Habilite criando um arquivo chamado DisplayDotFiles. - Nenhum valor necessário.
  • DontResolve: Habilite criando um arquivo chamado DontResolve. - Nenhum valor necessário.
  • ExtAuth: ExtAuth /path/to/authenticator - Exemplo: /usr/local/bin/myauth
  • ForcePassiveIP: ForcePassiveIP 192.168.0.1 - Exemplo: 192.168.0.1
  • FSCharset: FSCharset utf-8 - Exemplo: utf-8
  • IPv4Only ou IPv6Only: Habilite criando um arquivo chamado IPv4Only ou IPv6Only. - Nenhum valor necessário.
  • KeepAllFiles: Habilite criando um arquivo chamado KeepAllFiles. - Nenhum valor necessário.
  • LDAPConfigFile: LDAPConfigFile /etc/pure-ftpd/ldap.conf - Exemplo: /etc/pure-ftpd/ldap.conf
  • LimitRecursion: LimitRecursion 10000 8 - Exemplo: 10000 8 (10000 arquivos, 8 níveis de profundidade)
  • MaxClientsNumber: MaxClientsNumber 50 - Exemplo: 50
  • MaxClientsPerIP: MaxClientsPerIP 8 - Exemplo: 8
  • MaxDiskUsage: MaxDiskUsage 95 - Exemplo: 95 (95 por cento)
  • MaxIdleTime: MaxIdleTime 15 - Exemplo: 15 (15 minutos)
  • MaxLoad: MaxLoad 4.0 - Exemplo: 4.0
  • MinUID: MinUID 1000 - Exemplo: 1000
  • MySQLConfigFile: MySQLConfigFile /etc/pure-ftpd/mysql.conf - Exemplo: /etc/pure-ftpd/mysql.conf
  • NoAnonymous: Habilite criando um arquivo chamado NoAnonymous. - Nenhum valor necessário.
  • NoChmod: Habilite criando um arquivo chamado NoChmod. - Nenhum valor necessário.
  • NoRename: Habilite criando um arquivo chamado NoRename. - Nenhum valor necessário.
  • PassivePortRange: PassivePortRange 30000 35000 - Exemplo: 30000 35000
  • PerUserLimits: PerUserLimits 8 - Exemplo: 8 (8 conexões simultâneas por usuário)
  • PureDB: PureDB /etc/pure-ftpd/pureftpd.pdb - Exemplo: /etc/pure-ftpd/pureftpd.pdb
  • Quota: Quota 1000M - Exemplo: 1000M (1000 Megabytes)
  • SyslogFacility: SyslogFacility ftp - Exemplo: ftp
  • TLSCipherSuite: TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - Exemplo: HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
  • TrustedGID: TrustedGID 1000 - Exemplo: 1000
  • UMask: UMask 133:022 - Exemplo: 133:022 (Arquivos: 133, Diretórios: 022)
  • UnixAuthentication: Habilite criando um arquivo chamado UnixAuthentication. - Nenhum valor necessário.
  • UploadScript: UploadScript /path/to/script - Exemplo: /usr/local/bin/uploadscript

Esses exemplos devem esclarecer como configurar várias opções no Pure-FTPd.

Monitoramento e Manutenção

Verifique regularmente os logs em /var/log/pure-ftpd/ para qualquer atividade ou erro incomum.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.