O protocolo FTP está entre as soluções mais populares para upload e download de arquivos. Neste tutorial, você aprenderá como con­fi­gu­rar o seu próprio servidor FTP no Ubuntu. De­ta­lha­mos os pontos es­sen­ci­ais desse processo.

Instalar servidor FTP no Ubuntu

Antes de iniciar a con­fi­gu­ra­ção do seu servidor FTP, você deve escolher o software adequado. O sistemas ope­ra­ci­o­nal Ubuntu, também na versão 22.04, já inclui no ge­ren­ci­a­dor de pacotes o vsftpd, solução pronta para uso. Para instalá-lo, abra o terminal e execute o seguinte comando:

sudo apt-get install vsftpd
bash
Imagem: Instalação do vsftpd no terminal do Ubuntu 22.04
Os direitos de root ou de ad­mi­nis­tra­dor (sudo) são um requisito básico para a ins­ta­la­ção do vsftpd no Ubuntu.
Dica

Se você precisa armazenar ou trans­fe­rir dados, garanta que eles sejam tratados da forma mais segura possível con­tra­tando um dos ser­vi­do­res FTP de segurança máxima da IONOS: suporte SSH, SSL/TLS e backups diários.

Pré-re­qui­si­tos de hardware para Ubuntu FTP server

O hardware a ser utilizado tem deve ser escolhido conforme o objetivo do servidor FTP Ubuntu 22.04 que você deseja con­fi­gu­rar. Para garantir uma conexão estável com a internet, re­co­men­da­mos a con­tra­ta­ção da in­fra­es­tru­tura de um provedor pro­fis­si­o­nal, como da IONOS. Ela oferece ser­vi­do­res virtuais (VPS) e ser­vi­do­res dedicados, que são ideais para hospedar ser­vi­do­res FTP robustos.

A tabela abaixo apresenta três pos­si­bi­li­da­des de uso de um servidor FTP Ubuntu e o plano IONOS mais adequado a cada um deles:

Uso do servidor FTP Ubuntu Plano IONOS re­co­men­dado
Servidor FTP simples; trans­fe­rên­cia es­po­rá­dica de dados VPS Linux M
Servidor FTP cor­po­ra­tivo de grande porte; trans­fe­rên­cias regulares VPS Linux XL
Servidor FTP público com trans­fe­rên­cia contínua de dados Dedicated Server AR6-32 SSD
VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • Free 24/7 premium support 

Passo a passo: Con­fi­gu­rar Ubuntu FTP server

Concluída a ins­ta­la­ção, feche o terminal e comece a con­fi­gu­rar o seu servidor FTP. Para isso, abra o arquivo de con­fi­gu­ra­ção vsftpd.conf, lo­ca­li­zado no diretório etc.

Imagem: Arquivos disponíveis no diretório etc do arquivo de configuração
No diretório “/etc”, você en­con­trará vários arquivos de con­fi­gu­ra­ção e in­for­ma­ções, como o vsftpd.conf

Para editar o arquivo de con­fi­gu­ra­ção do seu servidor FTP Ubuntu, utilize um editor de texto simples. O sistema ope­ra­ci­o­nal já inclui, por padrão, o gedit, editor GNOME.

O conteúdo do arquivo se divide em duas partes:

  • Linhas iniciadas com o símbolo # são co­men­tá­rios, não sendo in­ter­pre­ta­das pelo servidor vsftpd. Essas linhas podem conter ex­pli­ca­ções sobre as opções de con­fi­gu­ra­ção ou sobre as funções de­sa­ti­va­das.
  • Linhas sem # contêm as in­for­ma­ções que o servidor utilizará, de fato, na con­fi­gu­ra­ção.
Imagem: Exemplo do arquivo vsftpd.conf
As hashtags não são apenas sinais para o servidor vsftpd, mas também ajudam a com­pre­en­der e otimizar a le­gi­bi­li­dade do arquivo.

Não há um padrão único para con­fi­gu­rar um servidor FTP no Ubuntu 22.04, pois as de­fi­ni­ções dependem dos re­qui­si­tos es­pe­cí­fi­cos do seu ambiente virtual. Nos próximos tópicos deste tutorial, você en­con­trará in­for­ma­ções sobre as prin­ci­pais opções de con­fi­gu­ra­ção e as res­pec­ti­vas fun­ci­o­na­li­da­des.

Nota

Para salvar al­te­ra­ções no arquivo vsftpd.conf, é ne­ces­sá­rio ter per­mis­sões de root. Caso contrário, o arquivo poderá ser apenas lido.

Permitir acesso anônimo

Por padrão, o vsftpd está con­fi­gu­rado para permitir apenas o acesso de usuários que tenham uma conta es­pe­cí­fica no servidor FTP. No entanto, o Protocolo de Trans­fe­rên­cia de Arquivos (FTP) também permite que usuários se conectem ano­ni­ma­mente, sem a ne­ces­si­dade de fornecer dados pessoais. Para ativar esse acesso, localize a linha anonymous_enable=NO no arquivo de con­fi­gu­ra­ção e substitua NO por YES:

anonymous_enable=YES
txt
Imagem: Configuração do acesso anônimo ao FTP no arquivo vsftpd.conf
Assim que você inserir a linha “anonymous_enable=YES”, será possível fazer login anônimo no servidor FTP do Ubuntu.

Expandir per­mis­sões de usuários anônimos

Por padrão, as per­mis­sões para usuários anônimos são bastante restritas em ser­vi­do­res FTP Ubuntu. Nor­mal­mente, é permitido apenas o download de arquivos pu­bli­ca­mente legíveis (anon_world_readable_only=YES). Caso você desative essa restrição, será possível baixar outros arquivos.

Outras opções dis­po­ní­veis para ampliar as per­mis­sões de usuários anônimos incluem:

  • anon_mkdir_write_enable=YES: Permite que usuários anônimos criem novos di­re­tó­rios. Para ativar essa opção, remova o caractere # que comenta essa linha e cer­ti­fi­que-se de que write_enable também esteja ativado.
  • anon_other_write_enable=YES: Com essa opção ativada, usuários anônimos podem renomear e excluir arquivos e di­re­tó­rios no servidor FTP.
  • anon_upload_enable=YES: Permite que usuários anônimos façam upload de arquivos. Para que isso funcione, write_enable deve estar ativado e é ne­ces­sá­rio criar um diretório es­pe­cí­fico para uploads, pois usuários anônimos não podem gravar di­re­ta­mente no diretório principal (home).

Res­trin­gir acesso de usuários locais ao diretório pessoal

Caso você queira res­trin­gir os usuários locais para que eles possam acessar apenas seus próprios di­re­tó­rios home (/home/username), configure essa opção no arquivo vsftpd.conf. Um dos pa­râ­me­tros res­pon­sá­veis por essa restrição é o chroot_local_user. No Ubuntu 22.04, essa linha está comentada por padrão. Para ativá-la, remova o caractere #:

chroot_local_user=YES
txt

Ativar e desativar login de usuários locais

Para permitir o acesso de usuários locais ao seu servidor FTP Ubuntu, o parâmetro local_enable=YES deve estar ativado, o que já ocorre por padrão. Caso você queira bloquear o acesso de usuários locais, basta comentar essa linha, adi­ci­o­nando # antes dela:

#local_enable=YES
txt
Imagem: Configuração do acesso de usuários locais no servidor FTP Ubuntu
Por padrão, o login para contas de usuários locais é permitido no vsftpd.conf.

Ativar per­mis­sões globais de escrita

Por padrão, nem usuários locais nem anônimos podem executar comandos de escrita via FTP no Ubuntu 22.04. A linha cor­res­pon­dente a essa con­fi­gu­ra­ção (write_enable=YES) está comentada. Para permitir que usuários logados possam modificar o sistema de arquivos do servidor FTP, basta remover o caractere # dessa linha:

write_enable=YES
txt

Res­trin­gir acesso FTP em contas es­pe­cí­fi­cas

Em algumas situações, pode ser ne­ces­sá­rio bloquear o acesso de de­ter­mi­na­dos usuários ao servidor FTP ou definir exa­ta­mente quais usuários podem se conectar a ele.

Para negar o acesso de usuários es­pe­cí­fi­cos, adicione as seguintes linhas ao final do arquivo de con­fi­gu­ra­ção:

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt

Dessa forma, qualquer usuário listado no arquivo externo vsftpd.user_list será impedido de acessar o servidor, enquanto os demais poderão es­ta­be­le­cer uma conexão nor­mal­mente.

Se, por outro lado, você quiser permitir o acesso apenas a usuários es­pe­cí­fi­cos, altere o valor do parâmetro userlist_deny para NO. Assim, somente os usuários listados no arquivo poderão se conectar ao seu servidor FTP Ubuntu:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt
Nota

Em ambos os casos, é ne­ces­sá­rio criar ma­nu­al­mente o arquivo de texto externo vsftpd.user_list no diretório /etc/. Uma linha separada deve ser usada no arquivo para cada entrada de conta de usuário.

Outras con­fi­gu­ra­ções possíveis em ser­vi­do­res FTP Ubuntu

Opção Valor Padrão Descrição
download_enable - Ativa (YES) ou desativa (NO) downloads
ssl_enable NO Ativa a crip­to­gra­fia SSL para conexões FTP
force_anon_logins_ssl NO Obriga conexões SSL para usuários anônimos (YES)
force_local_logins_ssl NO Obriga conexões SSL para usuários locais (YES)
anon_max_rate 0 Define a taxa máxima de trans­fe­rên­cia (em bytes/segundo) para usuários anônimos; 0 significa ilimitado
local_max_rate 0 Define a taxa máxima de trans­fe­rên­cia para usuários locais
max_clients 0 Número máximo de clientes co­nec­ta­dos si­mul­ta­ne­a­mente; 0 significa sem limite
max_per_ip 0 Número máximo de conexões per­mi­ti­das por IP; 0 significa sem limite
anon_root /home/ftp Define o diretório padrão para usuários anônimos

Para vi­su­a­li­zar a lista completa de opções, utilize o seguinte comando no terminal:

man vsftpd.conf
bash
Imagem: Manuais de configuração do vsftpd no terminal
Você pode encontrar des­cri­ções de­ta­lha­das de todas as opções dis­po­ní­veis nos manuais do apli­ca­tivo do servidor FTP Ubuntu.
Dedicated Servers
Per­for­mance through in­no­va­tion

O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo as­sis­tente pessoal!

  • Dedicated en­ter­prise hardware
  • Con­fi­gu­ra­ble hardware equipment
  • ISO-certified data centers

Como usar servidor FTP no Ubuntu 22.04

Após ajustar o arquivo de con­fi­gu­ra­ção do seu Ubuntu FTP server, salve as al­te­ra­ções. Para que o servidor reconheça as mudanças, reinicie-o com o seguinte comando:

sudo systemctl restart vsftpd
bash

Se o seu servidor FTP Ubuntu ainda não estiver em execução, inicie-o com:

sudo systemctl start vsftpd
bash

Criar conta de usuário no servidor FTP Ubuntu

Para acessar o seu servidor FTP, você terá de criar um usuário. Para isso, basta seguir o exemplo de criação do nosso usuário ftpuser, com a senha test123:

sudo useradd -m user -s /usr/sbin/nologin
sudo passwd user
bash

Adicione a linha abaixo ao final do arquivo /etc/shells para permitir o login:

/usr/sbin/nologin
txt

Es­ta­be­le­cer conexão com o servidor FTP Ubuntu

A partir deste momento você poderá usar a conta de usuário que criou para es­ta­be­le­cer uma conexão com o servidor vsftpd uti­li­zando o cliente FTP de sua pre­fe­rên­cia. Uma solução popular, cujos pacotes já estão dis­po­ní­veis no Ubuntu por padrão, é o apli­ca­tivo mul­ti­pla­ta­forma e de código aberto FileZilla. A ins­ta­la­ção pode ser feita de maneira tra­di­ci­o­nal pelo terminal:

sudo apt-get install filezilla
bash

Abra o FileZilla e adicione uma nova conexão com os dados apro­pri­a­dos: No campo “Host”, insira o endereço IP do seu servidor FTP Ubuntu, que – a menos que você tenha alterado as con­fi­gu­ra­ções – escuta re­qui­si­ções na porta 21. Escolha o protocolo de trans­fe­rên­cia de arquivos e, se possível, selecione SFTP (Secure FTP) ou FTP over TLS, pois uma conexão FTP simples, pela porta 21, re­pre­senta um risco de segurança sig­ni­fi­ca­tivo. No campo “Logon Type”, selecione “Normal”. Para “User” e “Password”, utilize as cre­den­ci­ais criadas an­te­ri­or­mente para a conta de exemplo. Clique em “Connect” para es­ta­be­le­cer a conexão com o servidor.

Imagem: Site Manager do FileZilla
O cliente FileZilla oferece opções de con­fi­gu­ra­ção de­ta­lha­das para es­ta­be­le­cer uma conexão com um servidor FTP.

500 OOPS: Problema causado por recurso de segurança

Se você con­fi­gu­rou um servidor FTP no Ubuntu, mas certas con­fi­gu­ra­ções não estão fun­ci­o­nando, pode ter ocorrido algum problema. Você pode ter esquecido de reiniciar o servidor FTP ou de salvar o arquivo de con­fi­gu­ra­ção. Além disso, erros de sintaxe no vsftpd.conf, como um espaço em branco no local errado, podem acontecer. No entanto, uma mensagem de erro comum pode ter uma causa com­ple­ta­mente diferente:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

Essa mensagem, que pode aparecer durante a tentativa de conexão, na verdade não é um erro, mas um recurso de segurança. Seu motivo é uma possível vul­ne­ra­bi­li­dade da bi­bli­o­teca glibc (bi­bli­o­teca padrão do Ubuntu para a linguagem de pro­gra­ma­ção C), que poderia ser explorada por usuários com per­mis­sões de escrita no próprio diretório raiz. Para contornar essa restrição de segurança, existem duas soluções:

  1. Remover a permissão de escrita no diretório raiz do usuário: Isso impede que os usuários locais escrevam no diretório raiz, per­mi­tindo apenas gravação em sub­di­re­tó­rios. Embora resolva o problema “500 OOPS”, essa abordagem pode ser in­con­ve­ni­ente se for ne­ces­sá­rio gravar arquivos di­re­ta­mente no diretório raiz. O comando a ser executado no terminal é:
chmod a-w */home/user*
bash
  1. Permitir a permissão de escrita no diretório raiz no arquivo vsftpd.conf: Se você não tiver pre­o­cu­pa­ções de segurança em relação ao abuso dessas per­mis­sões, pode informar ao seu servidor FTP Ubuntu que essa fun­ci­o­na­li­dade é permitida. Para isso, basta adicionar a seguinte linha ao arquivo de con­fi­gu­ra­ção:
allow_writeable_chroot=YES
txt
Teste o VPS da IONOS grátis

Ex­pe­ri­mente seu vServer de graça agora - Teste um servidor virtual por 30 dias!

  • Recursos dedicados
  • Tráfego ilimitado
  • Consultor pessoal
Ir para o menu principal