MUSTHOST

O blog da MUSTHOST

Como configurar um Servidor FTP no VPS Ubuntu

Este tutorial irá mostrar como configurar um servidor FTP em uma VPS Ubuntu. Um servidor vsFTPd será utilizado que é amplamente considerado como o FTP mais rápido e seguro para sistemas como UNIX por aí.

FTP ou File Transfer Protocol (protocolo de transferência de arquivos) é um meio de enviar e receber arquivos através de uma conexão de rede. Fazendo uso de uma estrutura cliente/ servidor e segurança SSL/TLS, o FTP permite aos usuários compartilhar e receber arquivos de computadores remotos via transferência segura de dados, eficiente e confiável utilizando protocolos TCP/IP.

O FTP funciona da mesma forma que o HTTP ou SMTP; a única diferença obviamente é que é responsável pelo transporte seguro de arquivos de um remetente para um receptor, ao invés de páginas na internet de servidores para o usuário ou correio eletrônico pela internet. Este tutorial se concentrará em orientar os usuários em relação a configuração do servidor FTP no Ubuntu 16.04.

Nota: O seguinte tutorial é baseado no Ubuntu 16.04. Mas você pode aplicar os mesmos passos para criar um servidor FTP no Ubuntu 14.04.

Etapa 1 – Instalando Vsftpd

Primeiramente vamos atualizar os pacotes antes de prosseguir com a instalação do daemon vsFTPd. Para começar, execute o seguinte comando:

sudo apt-get update

Aguarde até que o processo esteja completo e você verá uma confirmação assim que as atualizações terminarem.

Quando o caminho estiver livre, instale o daemon vsFTPd utilizando os seguintes comandos:

sudo apt-get install vsftpd

Você receberá uma mensagem de confirmação, que irá requerer você digite Y e aperte o Enter para continuar com a instalação.

Após a instalação estar completa, crie um backup dos arquivos originais para que possamos começar nosso trabalho com um arquivo de configuração em branco:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Agora nós estamos prontos para ir para a próxima etapa que é configurar o firewall.

Etapa  2 – Permitindo tráfego FTP do firewall

Para permitir que o servidor FTP se comunique com o mundo afora, ele precisa passar pelo firewall. Vejamos se o firewall está habilitado na máquina ou não. Para isso execute o seguinte comando para verificar seu status:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Se você encontrar a seguinte mensagem:

ufw: command not found

Isso significa que o firewall não está instalado e você pode proceder para a próxima etapa.

No entanto, caso a saída mostra algumas regras definidas ou uma mensagem que o status do firewall está ativo, você terá que verificar se o tráfego FTP funcionará. Vamos em frente e abrir as portas 20 e 21 para o tráfego FTP; portas 40000-50000 serão reservadas para o intervalo de portas passivas que eventualmente serão definidas no arquivo de configuração e a porta 990 será utilizada quando TLS for ativada. Execute os seguintes comandos para prosseguir:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp

Agora vamos conferir o status novamente:

sudo ufw status

A saída deve parecer agora como algo assim:

Output
Status: active
To                         Action      From
--                              ------      ----
990/tcp                    ALLOW       Anywhere
20/tcp                     ALLOW       Anywhere
21/tcp                     ALLOW       Anywhere
40000:50000/tcp            ALLOW       Anywhere
20/tcp (v6)                ALLOW       Anywhere (v6)
21/tcp (v6)                ALLOW       Anywhere (v6)
990/tcp (v6)               ALLOW       Anywhere (v6)
40000:50000/tcp (v6)       ALLOW       Anywhere (v6)

Agora que nós temos todas as portas necessárias abertas e disponíveis, nós podemos prosseguir para a próxima etapa.

Etapa  3 – Criando o diretório do usuário

Como a terceira etapa para criar um servidor FTP Ubuntu, precisaremos selecionar o usuário que fará uso do acesso FTP. Para mostrar como é feito, vamos adicionar um novo usuário. Para criá-lo utilize o seguinte comando:

sudo adduser alex

Quando solicitado, insira uma senha para o usuário e preencha os outros detalhes. Idealmente, o FTP deve ser restrito a um diretório específico por motivos de segurança. O vsFTPd usa cadeias chroot para realizar isso. Com o Chroot habilitado, o usuário local é restrito ao diretório inicial, definido por padrão. No entanto, é possível que por conta da segurança vsFTPd, um usuário não consiga escrever no diretório. Nós não removeremos os privilégios de gravação da pasta inicial, em vez disso, nós vamos utilizar um diretório FTP que atuará como um chroot junto com o diretório gravável de arquivos que será responsável por manter os arquivos pertinentes. Utilize o seguinte comando para criar a pasta FTP:

sudo mkdir /home/alex/ftp

Defina a propriedade utilizando:

sudo chown nobody:nogroup /home/alex/ftp

Finalmente, remova as permissões para gravar:

sudo chmod a-w /home/alex/ftp

Agora, use o seguinte comando para verificar as permissões:

sudo ls -la /home/alex/ftp

A saída deve parecer algo como:

total 8
dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 .
drwxr-xr-x 3 alex   alex    4096 Jun 29 11:32 ..

Como próximo passo, criaremos o diretório que contém os arquivos e atribuiremos a propriedade

sudo mkdir /home/alex/ftp/files
sudo chown alex:alex /home/alex/ftp/files

Finalmente, adicione um arquivo de testes ao diretório que será utilizado quando testarmos tudo isso mais tarde:

echo "vsftpd sample file" | sudo tee /home/alex/ftp/files/sample.txt

Etapa  4 – Configurando vsftpd

Como o próxima etapa em nossa tentativa de configurar um servidor FTP no Ubuntu VPS, vamos configurar estaremos configurando um vsFTPd e nosso acesso FTP. Neste tutorial, permitiremos que um único usuário se conectar com FTP utilizando uma conta de shell local. As duas configurações-chave de teclas necessárias para isso já estão definidas no arquivo de configuração (vsftpd.conf). Primeiramente, verifique se o arquivo de configuração realmente possui configurações são correspondentes as mencionadas abaixo utilizando o nano comando:

sudo nano /etc/vsftpd.conf
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
. . .

No mesmo arquivo, Nós vamos prosseguir removendo # e habilitando o código write_enable:

. . .
write_enable=YES
. . ..

O chroot também será descomentado para garantir que o usuário conectado via FTP apenas acesseará arquivos dentro do diretório permitido:

. . .
chroot_local_user=YES
. . .

Alguns novos valores precisaram ser adicionados manualmente. Você pode simplesmente colá-los na parte inferior do arquivo. Em primeiro lugar, um user_sub_token será adicionado ao caminho do diretório local_root. Isso irá permitir que a configuração funcione com o usuário atual e qualquer outro usuário que posteriormente for adicionado:

user_sub_token=$USER
local_root=/home/$USER/ftp

Para garantir que uma quantidade substancial de conexões esteja disponível, limitaremos o número de portas utilizadas no arquivo de configuração:

pasv_min_port=40000
pasv_max_port=50000

Neste tutorial, planejaremos permitir o acesso caso a caso, então vamos configurar de forma que o acesso seja somente concedido aos usuários que tenham sido explicitamente adicionados a uma lista:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

O indicador userlist_deny é responsável por alternar a lógica; quando configurado para “não”, somente os usuários especificados na lista terão acesso permitido. Uma vez feito isso, clique em CTRL + X e confirme as alterações no arquivo.
Por fim, procederemos àa criação e adição de nossos usuários ao arquivo:

echo "alex" | sudo tee -a /etc/vsftpd.userlist

Verifique se o usuário está realmente ativo, executando o seguinte comando:

cat /etc/vsftpd.userlist

A saída deve ser “alex” como mostra a imagem:

Reinicie o daemon utilizando o seguinte comando para carregar as alterações nas configuraçẽos:

sudo systemctl restart vsftpd

Pronto, o seu servidor está online e o usuário que você criou também, caso queria um VPS para rodar o ubuntu e configurar o servidor, basta clicar aqui.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *