Sou questionado algumas vezes se a instalação/configuração de um servidor FTP em Linux é fácil. Costumo responder que fácil não é…é super fácil. Normalmente instalo como servidor de FTP o vsftpd pela flexibilidade, segurança, simplicidade e rapidez que oferece. Hoje vamos aqui aprender como montar um servidor FTP potente.
Passo 1 – Instalar o vsftpd
sudo apt-get install vsftpd
Passo 2 – Configurações do serviço vsftpd
Por norma os ficheiros de configuração dos serviços encontram-se em /etc. No caso do vsftpd o ficheiro de configuração é /etc/vsftpd.conf
Vamos abrir o ficheiro e editar/rever algumas directivas:
sudo nano -w /etc/vsftpd.conf
Ficheiro vsftpd.conf
Desactivar o acesso “anónimo”.
anonymous_enable=NO
Permitir o acesso a utilizadores locais
local_enable=YES
Passo 3 – Adicionar uma Shell “fake”
Por forma a não permitir a autenticação dos utilizadores FTP via SSH ou login local vamos adicionar uma shell fake e assim limitar o acesso a esses utilizadores. Desta forma, as credenciais de um utilizador FTP apenas servem para se autenticar via FTP.
Vamos então abrir o ficheiro /etc/shells e adicionar a linha /bin/false
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/false
Passo 4 – Criar um utilizador (conta) FTP
Como já referido anteriormente, é importante que as credenciais de uma conta FTP apenas funcionam para autenticação via FTP. Neste passo vamos proceder ao seguinte:
- Criar pasta do utilizador (ex. /home/ftp/ftpuser)
- Criar utilizador, definir qual a sua directoria e associá-lo a shell “fake” (ex. user ftpuser)
- Criar/mudar a password do utilizador (com o comando passwd)
sudo mkdir -p /home/ftp/ftpuser
sudo useradd ftpuser -d /home/ftp/ftpuser/ -s /bin/false
sudo passwd ftpuser
É também importante que o utilizador tenha permissões de escrita na sua pasta uma vez que a pasta criada ficou associada ao root. Para isso podemos simplesmente mudar o owner da pasta através do comando
sudo chown ftpuser /home/ftp/ftpuser
Passo 5 – As configurações estão feitas, teremos apenas de reiniciar o serviço vsftpd através do comando:
sudo /etc/init.d/vsftpd restart
Coloquei entretanto 2 ficheiros na pasta /etc/vsftpd.conf para exemplificar o exemplo.
Nota: No ficheiro de configuração (/etc/vsftpd.conf) do serviço é possível especificar muitos parâmetros como por exemplo: o número de clientes, adicionar um banner, etc etc.
Como aceder ao FTP
Depois do serviço montado o acesso ao FTP pode ser realizado via um simples browser ou através de uma aplicação cliente para FTP (ex. filezzila, fireFTP). Neste exemplo vou usar o browser.
Colocamos então ftp://<IP_Servidor>
Não esquecer, que o <IP_Servidor> deve ser mudado pelo IP da máquina onde instalaram o vsftpd (No meu caso é o 192.168.193.13)
Inserimos os dados de autenticação (criados no passo 4)
E acedemos ao nosso servidor FPT. Agora basta colocar conteúdos e partilhar. É claro que as aplicações cliente FTP dão mais flexibilidade na gestão dos conteúdos, por isso basta por exemplo fazerem download do filezzila (FileZilla 3.3.2 RC2 – Um excelente cliente FTP)