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:

sudo apt update
sudo apt install proftpd
sudo apt install proftpd-mod-crypto
bash

Se você quiser que o servidor FTP inicie automaticamente quando o sistema for reiniciado, você também deve executar o seguinte comando:

sudo systemctl enable proftpd
bash
Dica

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.

vServer (VPS) da IONOS

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:

sudo nano /etc/proftpd/proftpd.conf
bash

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.

Dica

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:

sudo sh -c 'echo "/bin/false" >> /etc/shells'
bash

Você pode então criar sua primeira conta de usuário:

sudo adduser user1 --shell /bin/false --home /home/user1
bash

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”.

Dica

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:

sudo chmod 755 -R /home/ftpdownload
bash

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:

sudo adduser ftp ftpgroup
bash

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:

sudo apt install openssl
bash

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:

sudo mkdir /etc/proftpd/ssl
bash

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:

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
bash

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.

Dedicated Server da IONOS

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:

sudo /etc/init.d/proftpd restart
bash

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:

sudo systemctl restart proftpd
bash
Dica

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:

sudo service proftpd status
bash

2. Testar se o servidor ProFTPD está escutando na porta TCP 21 para registrar as solicitações FTP de entrada:

sudo netstat -tlp|grep proftpd
bash

3. Verificar mensagens de erro no log do ProFTPD:

sudo tail -20 /var/log/proftpd/proftpd.log
bash

4. Verificar mensagens de erro no log TLS:

sudo tail -20 /var/log/proftpd/tls.log
bash

5. Testes de conexão na porta 21 com telnet:

sudo telnet [endereço-IP] 21
bash

6. Testes de conexão na porta 21 com TLS:

sudo openssl s_client -connect  [endereço-IP]:21 -starttls ftp
bash
Este artigo foi útil?
Ir para o menu principal