Translation(s): English - Français - Português Brasileiro - Русский

(!) ?Discussion


Instalando e configurando o servidor FTP vsftpd.

Introdução

Este artigo tem como objetivo detalhar os passos para configurar um servidor FTP de compartilhamento de arquivos, usando o vsftpd (Serviço de FTP Muito Seguro - Very Secure FTP Daemon).

Instalação

Como de costume, a instalação é muito simples com o apt. Como root rode:

apt install vsftpd

Após a instalação, o servidor é iniciado automaticamente e escuta na porta TCP 21 por padrão.

Você pode verificar isso no netstat:

# netstat -npl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      22468/vsftpd    

Se o seu host não tiver um firewall, recomenda-se interromper o vsftpd antes de configurá-lo.

/etc/init.d/vsftpd stop

Configuração

O arquivo de configuração para este servidor fica em /etc/vsftpd.conf. Você pode encontrar arquivos de configuração de exemplo em /usr/share/doc/vsftpd/EXAMPLE.

O arquivo de configuração possui três tipos de opções:

Se certas opções não estiverem presentes no arquivo de configuração, o servidor usará os parâmetros padrão (veja man vsftpd.conf).

Acesso anônimo

Por padrão, conexões anônimas não são aceitas.

Se você habilitar isso, somente o acesso ao diretório /srv/ftp/ será permitido:

anonymous_enable=YES

Para ativar o upload anônimo, defina:

Para ativar as alterações de dono de arquivo, defina:

chown_uploads=YES
chown_username=username

Controle de acesso do usuário

O acesso está habilitado para usuários locais autorizados por padrão. Para desabilitar:

local_enable=NO

Para ativar o acesso de gravação:

write_enable=YES

Gerenciamento de usuários

Contenção de usuários

As contas de usuários podem acessar arquivos de todo o sistema, o que nem sempre é desejável e pode ajudar a comprometer a máquina, eles podem ser confinados alterando vsftpd.conf:

chroot_local_user=YES

A pasta do seu FTP será seu diretório pessoal /home/nome_de_usuário.

No entanto, uma conta pode ser usada para conectar-se para fora do ftp: ssh, getty (login do terminal) são exemplos. Ele ainda terá acesso ao resto do sistema pela linha de comando. Você pode configurar os serviços fornecidos como exemplos para bloquear a conta ou para contê-la, mas a principal solução é desabilitar a linha de comando para o usuário.

Para isso, atribuímos o interpretador de comandos do usuário para false, um binário simples que retorna um sinal de erro:

usermod -s /bin/false

Então, você precisa adicionar false à lista de interpretadores de comandos:

echo /bin/false >> /etc/shells

Veja também: