Como criar um servidor FTP no Ubuntu ou Debian

Servidores Linux 16 de Novembro de 2019 às 14:10

Para poder acessar o seu servidor e transferir seus arquivos, é necessário configurar um servidor FTP. No GNU/Linux Debian (ou Ubuntu) o software responsável por fazer esse processo é o proftpd.

Antes de iniciar a instalação, é altamente recomendado procurar por softwares que possam estar usando a porta 21, que é associada ao FTP.

netstat -pln | grep 21

Caso o comando retorne alguma linha, é um indicativo que já existe um servidor FTP sendo executado, do contrário, prossiga com o tutorial.

Instalando o proftpd

Para instalar o proftpd, execute os comandos abaixo (um por vez, como super usuário).

apt-get update
apt-get install proftpd

Durante a instalação, você será questionado se deseja executar o proftpd pelo "Inetd" ou "standalone", selecione "standalone" e aguarde a instalação ser finalizada.

Após sua instalação é necessário configurar a forma no qual o proftpd irá atuar no servidor, para isso, abra o arquivo de configurações.

nano /etc/proftpd/proftpd.conf

Em seguida, realize as seguintes modificações:

  • Localize "# DefaultRoot" e remova a cerquilha.
  • Caso não utilize IPv6, localize "UseIPv6" e defina como "Off"
  • Localize e remova as cerquilhas de "# PassivePorts", e altere seu valor para "60000 60005"

Essas configurações farão com que cada usuário fique preso em sua home, sem poder acessar outras pastas de outros usuários, desativar o IPv6 caso não utilize e definir as portas passivas do servidor para 60000 e 60005.

Acrescente o trecho abaixo no final do arquivo e salve as configurações.

RootLogin off
RequireValidShell off
<Limit LOGIN>
    DenyGroup !userftp
</Limit>
<IfModule mod_facts.c>
    FactsAdvertise off
</IfModule>

Pressione Ctrl+X, em seguida digite Y e pressione enter para salvar. Desta forma o login para o usuário root e usuários que não pertençam ao grupo "userftp", serão impossibilitados de fazer login.

Criando usuários para o servidor FTP

Agora seu servidor já está configurado, porém ainda não há usuários que podem acessa-lo, para isso é necessário criar um grupo chamado "userftp" e adicionar um novo usuário, um algum já existente.

Caso tenha dúvidas em como criar grupos e usuários no Debian, veja este tutorial:

Inicialmente será criado o grupo "userftp",

addgroup userftp

Em seguida será criado um novo usuário para realizar o acesso ao servidor FTP. Caso já tenha um usuário e este não seja o root do sistema, desconsidere esta etapa.

adduser renan -shell /bin/false -home /home/renan

Lembre-se de alterar o usuário e sua home pelos valores desejados.

Com o usuário e o grupo criado, basta adicionar o usuário ao grupo.

adduser renan userftp

Por fim o serviço deve ser reiniciado para recarregar as configurações.

service proftpd restart

Agora basta acessar o seu servidor através de algum cliente FTP.

Solução de problemas

Em alguns casos é necessário desativar o módulo mod_tls_memcache do proftpd para resolver mensagens de erros relacionadas. Para isso digite o comando abaixo para acessar suas configurações.

nano /etc/proftpd/modules.conf

Procure pela linha "LoadModule mod_tls_memcache.c" e adicione uma cerquilha em seu início, ficando assim:

# LoadModule mod_tls_memcache.c

Pressione Ctrl+X e digite Y para salvar.

Caso tenha problemas com permissões de arquivos, é necessário verificar se o seu usuário tem permissão para acessar a pasta solicitada. Para redefinir as permissões para seu usuário em toda sua home, digite o seguinte comando (lembre-se de adaptar para seu usuário),

cd ~
chown -R renan *

Desta forma todos os arquivos serão do usuário "renan". Caso queira permitir que o grupo possa acessar arquivos que estejam com suas permissões definidas para visualização ou edição pelo grupo, modifique o comando para.

cd ~
chown -R renan:userftp *

Agora você já poderá acessar seus arquivos, porém lembre-se que caso tenha informado um grupo, os usuários deste grupo também poderão.