COMO DEIXAR O FTP PUBLIC (VSFTPD).

Etapa 1 – Instalando o vsftpd

Vamos começar atualizando nossa lista de pacotes e instalando o vsftpddaemon:

  • sudo apt-get update
  • sudo apt-get install vsftpd

Quando a instalação estiver concluída, copiaremos o arquivo de configuração para que possamos começar com uma configuração em branco, salvando o original como um backup.

  • sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Com um backup da configuração, estamos prontos para configurar o firewall.

Passo 2 – Abrindo o Firewall

Primeiro, vamos verificar o status do firewall para ver se ele está habilitado e, em caso afirmativo, para ver o que é permitido atualmente, para que, quando chegar a hora de testar a configuração, você não tenha regras de firewall bloqueando você.

  • sudo ufw status

No nosso caso, vemos o seguinte:

Output
Output
Status: active

To Action  From
-- ------  ----
OpenSSH ALLOW   Anywhere
OpenSSH (v6)   ALLOW   Anywhere (v6)

Você pode ter outras regras em vigor ou nenhuma regra de firewall. Neste exemplo, somente o sshtráfego é permitido, então precisamos adicionar regras para o tráfego de FTP.

Com muitos aplicativos, você pode usá sudo ufw app list-los e ativá-los pelo nome, mas o FTP não é um deles. Como o ufw também verifica o / etc / services para a porta e o protocolo de um serviço, ainda podemos adicionar o FTP pelo nome. Precisamos dos dois ftp-datana porta 20 e ftp(para comandos) na porta 21:

  • sudo ufw allow ftp-data
  • sudo ufw allow ftp
  • sudo ufw status

Agora nossas regras de firewall se parecem com:

Output
Status: active

To Action  From
-- ------  ----
OpenSSH  ALLOW   Anywhere
21/tcp ALLOW   Anywhere
20/tcp ALLOW   Anywhere
OpenSSH (v6)   ALLOW   Anywhere (v6)
21/tcp (v6)ALLOW   Anywhere (v6)
20/tcp (v6)ALLOW   Anywhere (v6)

Com o vsftpdinstalado e as portas necessárias abertas, estamos prontos para prosseguir.

Etapa 3 – Preparando espaço para arquivos

Primeiro, criaremos o diretório no qual planejamos hospedar os arquivos, usando o -psinalizador para criar o diretório intermediário. A estrutura de diretórios permitirá que você mantenha todos os diretórios FTP juntos e depois adicione outras pastas que requerem autenticação:

  • sudo mkdir -p /var/ftp/pub

Em seguida, vamos definir as permissões do diretório para nobody:nogroup. Mais tarde, configuraremos o servidor FTP para mostrar todos os arquivos como pertencentes ao usuário e ao grupo ftp.

  • sudo chown nobody:nogroup /var/ftp/pub

Por fim, faremos um arquivo no diretório para teste posterior.

  • echo “vsftpd test file” | sudo tee /var/ftp/pub/test.txt

Com este arquivo de exemplo, estamos prontos para configurar o daemon vsftpd.

Etapa 4 – Configurando o acesso anônimo

Estamos configurando usuários com sudoprivilégios para manter arquivos para ampla distribuição para o público. Para fazer isso, vamos configurar vsftpdpara permitir o download anônimo. Vamos esperar que os administradores de arquivo para usar scpsftpou qualquer outro método seguro para manter os arquivos, por isso não vamos permitir upload de arquivos via FTP.

O arquivo de configuração contém algumas das muitas opções de configuração do vsftpd.

Vamos começar mudando aqueles que já estão definidos:

  • sudo nano /etc/vsftpd.conf

Encontre os seguintes valores e edite-os para que correspondam aos valores abaixo:

/etc/vsftpd.conf
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=YES
#

We’ll set the local_enable setting to “NO” because we’re not going to allow users with local accounts to upload files via FTP. The comment in the configuration file can be a little confusing, too, because the line is uncommented by default. 
# Uncomment this to allow local users to log in.
local_enable=NO
. . .

Além de alterar as configurações existentes, vamos adicionar algumas configurações adicionais.

Nota: Você pode aprender sobre toda a gama de opções com o man vsftpd.confcomando.

Adicione essas configurações ao arquivo de configuração. Eles não dependem do pedido, portanto, você pode colocá-los em qualquer lugar do arquivo.

#
# Point users at the directory we created earlier.
anon_root=/var/ftp/
#
# Stop prompting for a password on the command line.
no_anon_password=YES
#
# Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
#
# Limit the range of ports that can be used for passive FTP
pasv_min_port=40000
pasv_max_port=50000

Nota: Se você estiver usando o UFW, essas configurações funcionam como estão. Se você estiver usando o Iptables , talvez seja necessário adicionar regras para abrir as portas especificadas entre pasv_min_portpasv_max_port.

Depois que eles forem adicionados, salve e feche o arquivo. Em seguida, reinicie o daemon com o seguinte comando:

  • sudo systemctl restart vsftpd

systemctl não exibe o resultado de todos os comandos de gerenciamento de serviços, portanto, se você quiser ter certeza de que foi bem-sucedido, use o seguinte comando:

  • sudo systemctl status vsftpd

Se a linha final parecer com a seguinte, você conseguiu:

Output
Aug 17 17:49:10 vsftpd systemd[1]: Starting vsftpd FTP server...
Aug 17 17:49:10 vsftpd systemd[1]: Started vsftpd FTP server.

Agora estamos prontos para testar nosso trabalho.

Etapa 5 – Testando o acesso anônimo

Em um navegador da Web, digite ftp: // seguido pelo endereço IP do seu servidor.

ftp: // 203.0.113.0

Se tudo estiver funcionando como esperado, você deverá ver o pubdiretório:

Imagem da pasta 'pub' em um navegador

Você também deve ser capaz de clicar pub, ver test.txte clicar com o botão direito para salvar o arquivo.

Imagem do arquivo 'test.txt' em um navegador

Você também pode testar a partir da linha de comando, o que dará muito mais feedback sobre sua configuração. Vamos ftp para o servidor no modo passivo, que é o -psinalizador em muitos clientes de linha de comando. O modo passivo permite que os usuários evitem alterar as configurações do firewall local para permitir que o servidor e o cliente se conectem.

Nota: O cliente FTP nativo do Windows ftp.exe, não suporta o modo passivo. Os usuários do Windows podem querer procurar outro cliente FTP do Windows, como o WinSCP .

  • ftp -p 203.0.113.0

Quando solicitado por um nome de usuário, você pode digitar “ftp” ou “anônimo”. Eles são equivalentes, então vamos usar o menor “ftp”:

Connected to 203.0.113.0.
220 (vsftpd 3.0.3)
Name (203.0.113.0:21:sammy): ftp

Depois de pressionar enter, você deve receber o seguinte:

Output

230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Assegure-se de que o modo passivo esteja funcionando como esperado:

  • ls
Output
227 Entering Passive Mode (45,55,187,171,156,74).
150 Here comes the directory listing.
drwxr-xr-x    2 ftp      ftp          4096 Aug 17 19:30 pub
226 Directory send OK.

Como usuário anônimo, você deve poder transferir o arquivo para sua máquina local com o getcomando:

  • cd pub
  • get test.txt
Output
ftp> get test.txt
227 Entering Passive Mode (45,55,187,171,156,73).
150 Opening BINARY mode data connection for test.txt (14 bytes).
226 Transfer complete.
16 bytes received in 0.0121 seconds (1325 bytes/s)

Esta saída informa que você conseguiu fazer o download do arquivo e pode dar uma olhada para ver se ele está no seu sistema de arquivos local, se quiser.

Também queremos ter certeza de que usuários anônimos não estarão preenchendo nosso sistema de arquivos, então, para testar, vamos virar o caminho e tentar colocar o mesmo arquivo de volta no servidor, mas com um novo nome:

  • put test.txt upload.txt
Output
227 Entering Passive Mode (104,236,10,192,168,254).
550 Permission denied.

Agora que confirmamos isso, sairemos do monitor em preparação para a próxima etapa:

  • bye

Agora que confirmamos que a conexão anônima está funcionando como esperado, voltaremos nossa atenção para o que acontece quando o usuário tenta se conectar.

Etapa 6 – Tentando se conectar como usuário

Você também pode querer ter certeza de que não pode se conectar como usuário com uma conta local, já que essa configuração não criptografa suas credenciais de login. Em vez de digitar “ftp” ou “anonymous” quando você for solicitado a efetuar login, tente usar o seu usuário sudo:

  • ftp -p 203.0.113.0
Output
Connected to 203.0.113.0:21.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:21:your_user)
530 This FTP server is anonymous only.
ftp: Login failed.
ftp>

Esses testes confirmam que você configurou o sistema somente para download anônimo.

Conclusão

Neste tutorial, abordamos como configurar o vsftpd apenas para downloads anônimos. Isso nos permite suportar aplicativos legados incapazes de usar protocolos mais modernos ou URLs de FTP amplamente publicados que seriam difíceis de atualizar. Para saber mais sobre como manter os arquivos, o artigo Como usar o SFTP para transferir arquivos com segurança com um servidor remoto pode orientá-lo.

Deixe uma resposta

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