Servidor FTP Debian: Como instalar e configurar
O protocolo de transferência de arquivos (FTP) é um dos métodos de transferência de arquivos mais populares, geralmente utilizado para uploads e downloads em espaços web. Neste tutorial, mostramos como configurar um servidor FTP Debian com criptografia TLS.
Instalar servidor FTP Debian
Antes de configurar e personalizar o seu servidor, você deve encontrar e instalar o software adequado. Vários servidores FTP são adequados a sistemas Linux, sendo muitos deles open source e geralmente disponibilizados nos repositórios das principais distribuições Linux.
Um dos servidores FTP mais populares é o ProFTPD, de licença GPL e altamente expansível graças à sua estrutura modular. Sua principal configuração utiliza diretivas e grupos de diretivas, um método familiar para administradores com experiência em servidores Apache. O ProFTPD está incluído por padrão no repositório de software do Debian. Sua instalação é realizada de forma convencional, utilizando o terminal com os seguintes comandos:
Se você quiser que o servidor FTP inicie automaticamente quando o sistema for reiniciado, você também deve executar o seguinte comando:
Quer armazenar ou transferir dados? Alugue agora um servidor FTP seguro com a IONOS. Transferência segura graças ao SSH e SSL/TLS com backups diários inclusos.
Após a instalação, é necessário decidir se o ProFTPD será utilizado no modo servidor (standalone) ou como um serviço controlado pelo inetd. No modo standalone, o servidor FTP gerencia diretamente as requisições recebidas. Já na segunda opção, o “superservidor inetd/xinetd” recebe as requisições e as encaminha para o servidor FTP — uma abordagem recomendada apenas quando o tráfego FTP esperado for muito baixo.
Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.
- Armazenamento 100% SSD
- Pronto em 55 segundos
- Certificado SSL
Servidor FTP Debian: 5 possibilidades e o plano IONOS ideal
Está em dúvida sobre qual configuração de hardware e rede você precisa para o seu servidor FTP Debian? Na tabela abaixo, listamos três cenários possíveis para o uso de um servidor FTP e sugerimos o plano mais adequado da IONOS para cada um deles.
Cenário do servidor FTP | Plano IONOS ideal |
---|---|
Pequeno servidor web | VPS Linux M |
Servidor web maior | VPS Linux XL |
Servidor FTP empresarial | Servidor Dedicado AMD Ryzen XXL-128 NVMe |
Passo a passo para instalar e configurar servidor FTP Debian
Após a instalação, você pode começar a configurar o ProFTPD. O arquivo de configuração necessário, proftpd.conf, está localizado no diretório* /etc/proftpd/. Para editá-lo, abra-o com o editor de sua preferência* – com o programa padrão do Debian, nano, isso pode ser feito com o seguinte comando no terminal:
Nas linhas de configuração, você encontrará as principais opções de ajuste e recursos do servidor Debian FTP. Cada componente tem uma linha própria e requer valores definidos: por exemplo, para habilitar ou desabilitar um recurso, podem ser utilizados os valores “on” (recurso ativado) ou “off” (recurso desativado). Além disso, é possível adicionar o símbolo de jogo da velha (#) no início de uma linha para “comentá-la”. O servidor ProFTPD ignorará completamente essa linha, tornando essa notação uma alternativa prática para desativar recursos.
Em vez de usar o arquivo proftpd.conf, você também pode criar um arquivo de configuração próprio e armazená-lo no diretório /etc/proftpd/conf.d/. Esse diretório permanece intacto durante as atualizações do software FTP, reduzindo, com um simples passo, o risco de perder suas configurações. Por meio de uma diretiva Include, as especificações de servidor armazenadas na pasta conf.d podem ser facilmente integradas ao arquivo principal (isso ocorre automaticamente na configuração padrão).
Fazer configurações básicas: Nome do servidor, diretório FTP etc
Antes de configurar os detalhes do seu servidor FTP Debian, você deve fazer a configuração básica. Ela inclui a escolha do hostname do servidor ou do diretório que você deseja disponibilizar para uploads e downloads de arquivos. Além disso, há diversas opções de configuração relacionadas aos potenciais usuários do servidor FTP, como demonstrado pelo exemplo abaixo:
# Indicação do hostname e da mensagem de boas-vindas
ServerName "hostname/endereço-ip"
DisplayLogin "Seu login no servidor FTP Debian foi bem-sucedido!"
# Políticas gerais de login
<Global>
# Permitir acesso apenas com shells definidas em /etc/shells
RequireValidShell on
# Negar login como root
RootLogin off
# Indicação do diretório FTP ao qual os usuários podem acessar
DefaultRoot Caminho-do-diretório
</Global>
# Definir usuários/autorização para login FTP
<Limit LOGIN>
# O login só é permitido para os usuários do grupo exemplo ftpuser.
# Em vez de uma longa lista, basta negar os demais grupos com o operador (!)
DenyGroup !ftpuser
</Limit>
Nesta configuração básica, concedemos acesso a um diretório específico aos usuários. Isso é útil, por exemplo, quando usuários estão envolvidos na manutenção de um site e, portanto, precisam de direitos de acesso extensivos. No entanto, se a função do servidor FTP for apenas proporcionar um local de armazenamento para arquivos, é recomendável configurar o ProFTPD para restringir o acesso ao diretório home do usuário:
# Permitir acesso apenas ao diretório home do usuário
DefaultRoot ~
Criar usuários FTP
Ao criar novos usuários no ProFTPD, você deve sempre definir /bin/false como o shell de login. Isso impede que os usuários tenham acesso ao shell do sistema, restringindo-os ao uso do servidor FTP. Para isso, adicione /bin/false ao arquivo de shells permitidos com o seguinte comando no terminal:
Você pode então criar sua primeira conta de usuário:
Neste exemplo, você cria uma conta chamada “user1” e define seu diretório home no mesmo passo. Em seguida, define uma senha para a conta e confirma o perfil. Para garantir que essa nova conta possa se conectar ao servidor FTP Debian e fazer upload ou download de arquivos para seu diretório exclusivo, você precisa especificar o diretório home na configuração do proftpd.conf:
<Directory /home/user1>
Umask 022
AllowOverwrite off
<Limit LOGIN>
AllowUser user1
DenyAll
</Limit>
<Limit ALL>
AllowUser user1
DenyAll
</Limit>
</Directory>
Este exemplo de código restringe o diretório de várias formas, transformando-o no local privado de armazenamento dos arquivos de “user1”. Com o comando Umask (022), a conta proprietária recebe todas as permissões padrão. Outros usuários podem apenas ler os arquivos e só poderão executá-los se a conta proprietária conceder permissão. A diretiva desabilitada AllowOverwrite impede que arquivos já armazenados sejam sobrescritos durante o upload. Por fim, o login FTP (Limit LOGIN) e a execução de comandos FTP (Limit ALL) são bloqueados para todas as contas, exceto “user1”.
Em vez de bloquear a execução de todos os comandos FTP, você pode restringir operações específicas. Isso permite, por exemplo, criar um diretório onde os usuários possam apenas fazer upload de arquivos. Uma visão geral detalhada das várias opções de configuração pode ser encontrada nos manuais on-line.
Permitir acesso anônimo
Se você deseja configurar o seu servidor FTP Debian para atuar como um servidor para downloads públicos, normalmente, também quer permitir que os usuários acessem os arquivos fornecidos de forma anônima. Para isso, você deve, inicialmente, definir as permissões necessárias para o diretório de download, que aqui chamamos de /home/ftpdownload, utilizando o comando chmod:
O usuário proprietário do diretório terá todos os direitos (7 = Ler, Escrever e Executar), enquanto os usuários do grupo e todos os outros poderão somente ler e executar (5). Após definir as permissões, o acesso anônimo pode ser configurado no arquivo proftpd.conf:
<Anonymous ~ftp>
User ftp
Group ftpgroup
# Perfis de login possíveis para os clientes
UserAlias anonymous ftp
# Ocultar as propriedades do usuário e grupo, e definir o número máximo de clientes
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Agora, para que o login no servidor FTP Debian com o usuário ftp seja possível, você precisará adicionar esse perfil ao grupo ftpuser:
Configurar criptografia SSL/TLS
O protocolo FTP transmite tanto as credenciais de login quanto os dados enviados em texto simples. Se você deseja configurar um servidor ProFTPD privado, que não seja acessível a todos, é altamente recomendável criar uma conexão criptografada durante o login. Isso pode ser feito utilizando o software livre OpenSSL. O kit de ferramentas de criptografia está disponível na gestão de pacotes do Debian e pode já estar instalado. Caso necessário, você pode instalar com o comando:
Passo 1: Gerar certificado e chave
Em seguida, use o OpenSSL para criar um certificado. Como você precisará armazená-lo em algum lugar, primeiro crie o diretório adequado no diretório do ProFTPD:
Agora, gere o certificado (proftpd.cert.pem) e a chave (proftpd.key.pem) com validade de um ano para o seu servidor FTP Linux, informando o local de armazenamento com o seguinte comando:
Além disso, são necessárias algumas informações para registrar corretamente o certificado:
- Country Name (2 letter code): Código do país, por exemplo, “BR” para o Brasil.
- State or Province Name (full name): Estado/região, por exemplo, “São Paulo”.
- Locality Name (eg, city): Cidade, por exemplo, “São Paulo”.
- Organization Name (eg, company): Nome da empresa ou seu nome.
- Organizational Unit Name (eg, company): Nome do departamento (se houver), por exemplo, “TI”.
- Common Name (eg, YOUR name): Nome do domínio a ser protegido, por exemplo, “ftp.example.com”.
- Email Address: Endereço de e-mail.
Essas informações são necessárias para a criação do certificado SSL/TLS com o OpenSSL.
O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo assistente pessoal!
- Suporte 24 horas
- Tráfego ilimitado
- Certificado SSL
Passo 2: Habilitar SSL/TLS no ProFTPD
Após criar seu próprio certificado e chave privada, é necessário ativar a tecnologia de criptografia para o servidor ProFTPD. Para isso, o software do servidor Debian-FTP disponibiliza o módulo mod_tls. Para ativá-lo, são necessárias alterações no arquivo* tls.conf*. Abra o arquivo de configuração e procure a seguinte entrada:
<IfModule mod_tls.c>
TLSEngine off
Atribua o valor “on” à diretiva TLSEngine e expanda a seção da seguinte maneira, por exemplo, removendo os comentários:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1 TLSv1.1 TLSv1.2
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>
Com isso, você ativou a criptografia SSL/TLS para o seu servidor Debian-FTP e fez as configurações essenciais. Assim, o arquivo de log das conexões FTP (TLSLog) foi definido, assim como os caminhos para o certificado (TLSRSACertificateFile) e a chave (TLSRSACertificateKeyFile). Além disso, as versões de protocolo possíveis (TLSProtocol) também foram especificadas. As duas últimas linhas garantem que o módulo não verificará os certificados apresentados pelo cliente (TLSVerifyClient) e que a criptografia seja obrigatória para a conexão (TLSRequired). Após reiniciar o servidor ProFTPD, as novas configurações estarão em vigor:
Passo 3: Conectar-se ao servidor ProFTPD via SSL/TLS
Se você ativou o SSL/TLS para o ProFTPD (como recomendado neste tutorial do servidor Debian-FTP), os usuários precisarão de um cliente FTP que suporte a conexão criptografada. Um dos principais representantes é o FileZilla, que está disponível não apenas para Debian e outras distribuições Linux, mas também para macOS e Windows. Assim, o programa de código aberto oferece a solução ideal para acessar o servidor FTP de diferentes plataformas.
No Servermanager do FileZilla, ao selecionar o tipo de servidor, escolha a versão segura FTPS (“FTP com TLS/SSL explícito”). Durante a primeira conexão com o servidor, o cliente precisará aceitar o certificado.
Caso a conexão TLS não seja estabelecida no FileZilla, pode ser necessário habilitar manualmente o módulo mod_tls. Para isso, adicione a seguinte linha no início do arquivo proftpd.conf:
LoadModule mod_tls.c
Após essa alteração, reinicie o servidor para que a mudança tenha efeito:
O SSH File Transfer Protocol usa SSH em vez de TLS/SSL e oferece uma alternativa simples e amigável ao FTPS.
Dicas de configuração do ProFTPD
As opções de configuração apresentadas aqui são apenas uma pequena amostra. O software FTP ProFTPD permite configurar cenários muito mais específicos e complexos para o servidor. O site oficial do ProFTPD oferece várias informações úteis sobre o tema. A documentação on-line gratuita inclui, entre outras coisas, exemplos de configurações, tutoriais detalhados, perguntas frequentes (FAQs) e explicações sobre as diretrizes individuais. Além disso, o site fornece informações sobre os diferentes módulos padrão e adicionais.
Possíveis erros durante a configuração do servidor FTP Debian
Em alguns casos, após reiniciar o servidor ProFTPD, você pode receber a seguinte mensagem de erro:
mod_tls_memcache/0.1: notice: unable to register 'memcache' SSL session cache: Memcache support not enabled
O problema ocorre porque o módulo mod_tls_memcache foi ativado automaticamente como parte do SSL/TLS durante a compilação do ProFTPD. Quando você configura a criptografia SSL/TLS, esse módulo teoricamente ajuda no cache das sessões FTP criptografadas. No entanto, como o cache de sessão não é necessário por padrão, você não fez as configurações necessárias para que o módulo funcione, o que resulta na mensagem de erro do ProFTPD. A solução para esse problema é simples: basta comentar o módulo ou o processo de carregamento do módulo no arquivo de configuração:
# LoadModule mod_tls_memcache.c
Além do problema do módulo de cache, também podem ocorrer falhas na conexão após a configuração do servidor FTP Debian. Para investigar esse problema, você pode usar várias opções de análise:
1. Testar se o servidor ProFTPD está em execução:
2. Testar se o servidor ProFTPD está escutando na porta TCP 21 para registrar as solicitações FTP de entrada:
3. Verificar mensagens de erro no log do ProFTPD:
4. Verificar mensagens de erro no log TLS:
5. Testes de conexão na porta 21 com telnet:
6. Testes de conexão na porta 21 com TLS: