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 updateInstalando o Pure-FTPd
Em seguida, instale o Pure-FTPd usando o seguinte comando:
sudo apt install pure-ftpdConfigurando o Pure-FTPd para Segurança Aprimorada
Configurando um Ambiente Seguro
Crie um grupo dedicado para usuários FTP:
sudo groupadd ftpgroupCrie um usuário para o Pure-FTPd:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuserGerenciando 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 mkdbSubstitua [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.pemModifique a configuração do Pure-FTPd para ativar o TLS:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restartOpçõ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 --helpcomando 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
IPv4OnlyouIPv6Only. - 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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.