# 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](http://www.proftpd.org/ "ProFTPD — proftpd.org"), 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](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-o-apache/ "O que é Apache?"). O **ProFTPD está incluído por padrão no repositório de software do [Debian](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/debian-sistema-operacional-universal/ "Debian: Sistema operacional universal ")**. Sua instalação é realizada de forma convencional, utilizando o terminal com os seguintes comandos:

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

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

```bash
sudo systemctl enable proftpd
```

Dica Quer armazenar ou transferir dados? Alugue agora um [servidor FTP seguro](https://www.ionos.com/hosting/ftp-hosting "Servidor FTP — IONOS") com a IONOS. Transferência segura graças ao [SSH](https://www.ionos.com/help/hosting/setting-up-and-managing-ssh-accounts/what-is-ssh/ "O que é 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.

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

<table>
  <thead>
    <tr>
      <th>Cenário do servidor FTP</th>
      <th>Plano IONOS ideal</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Pequeno servidor web</td>
      <td>VPS Linux M</td>
    </tr>
    <tr>
      <td>Servidor web maior</td>
      <td>VPS Linux XL</td>
    </tr>
    <tr>
      <td>Servidor FTP empresarial</td>
      <td>Servidor Dedicado AMD Ryzen XXL-128 NVMe</td>
    </tr>
  </tbody>
</table>

## 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:

```bash
sudo nano /etc/proftpd/proftpd.conf
```

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:

```none
# 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:

```none
# 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:

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

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

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

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**:

```none
<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](http://www.proftpd.org/docs/howto/Limit.html "ProFTPD: Configurar Limites — proftpd.org").

### 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*:

```bash
sudo chmod 755 -R /home/ftpdownload
```

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*:

```none
<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*:

```bash
sudo adduser ftp ftpgroup
```

### 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:

```bash
sudo apt install openssl
```

#### 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**:

```bash
sudo mkdir /etc/proftpd/ssl
```

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:

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

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.

#### 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:

```none
<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:

```none
<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:

```bash
sudo /etc/init.d/proftpd restart
```

#### 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*:

```none
LoadModule mod_tls.c
```

Após essa alteração, reinicie o servidor para que a mudança tenha efeito:

```bash
sudo systemctl restart proftpd
```

Dica O [SSH File Transfer Protocol](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/sftp-ssh-file-transfer-protocol/ "Protocolo de transferência de arquivo SSH/SFTP") 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](http://proftpd.org/docs/ "proftpd.org — Manuais on-line") 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:

```none
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:

```none
# 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:**

```bash
sudo service proftpd status
```

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

```bash
sudo netstat -tlp|grep proftpd
```

**3. Verificar mensagens de erro no log do ProFTPD:**

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

**4. Verificar mensagens de erro no log TLS**:

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

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

```bash
sudo telnet [endereço-IP] 21
```

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

```bash
sudo openssl s_client -connect  [endereço-IP]:21 -starttls ftp
```


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/configurar-servidor-ftp-debian-com-proftpd/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/configurar-servidor-ftp-debian-com-proftpd/) for AI/LLM consumption.