Instalação do VSFTP
CentOS/Red Hat/Fedora:
# yum install vsftpd.x86_64
Colocando na inicialização:
# chkconfig vsftpd on
Bloqueando todos os usuários do sistema, para não acessarem o FTP. Coloque todos os usuários do sistema no arquivo
/etc/vsftpd/ftpusers.
Por padrão, qualquer usuário do sistema operacional, pode acessar o FTP, desde que se saiba a senha. Então, vamos bloquear todos os logins.
Faça um backup do arquivo
/etc/vsftpd/ftpusers.
Execute o comando abaixo, que vai filtrar todas as contas do
/etc/passwd e jogar na lista de usuários bloqueados no
vsftp:
# awk '{print $1}' /etc/passwd | cut -d: -f1 > /etc/vsftpd/ftpusers
Pronto, todas as contas do sistema operacional, está bloqueado no FTP.
Configuração do vsftp
Isolando os usuários apenas ao seu Home, criando listas de usuários permitidos ao FTP. Abaixo, vou fazer uma breve descrição das linhas editadas.
# vi /etc/vsftpd/vsftpd.conf
#Remove acesso anônimo.
anonymous_enable=NO
#Permite acesso a usuários do sistema operacional.
local_enable=YES
#Configura o servidor FTP, como apenas Leitura, ou escrita. No nosso caso, é apenas um servidor para download, só
leitura, então:
write_enable=NO
#Arquivo de Logs do FTP.
xferlog_file=/var/log/xferlog
# Esta linha, vai limitar o acesso dos usuários FTP, apenas ao seu HOME.
chroot_local_user=YES
#Estas 2 linhas, ativa mais uma pequena segurança no servidor. ela libera apenas os usuários listados no arquivo
"chroot_list", para acessar o FTP.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
FTP Configurado
Tem mais algumas configurações no "vsftpd.conf", mas para a proposta do artigo, o que acabamos de fazer está bom. Recomendo dar uma olhada
com calma no arquivo "vsftpd.conf" e alterar o que achar necessário.
Crie o arquivo de Logs:
# touch /var/log/xferlog
Configuramos o servidor de FTP. Faça um
reboot, para todas as configurações surtirem efeito e deixar o servidor zerado para os testes.
# init 6
Testes
Crie um usuário e defina sua pasta Home, lembrando que a pasta Home do usuário é onde estarão seus arquivos FTP. Por padrão, o vsftp cria a pasta
/var/ftp como repositório FTP. Eu vou seguir a pasta padrão do vsftp.
Criando um usuário FTP e setando a senha:
# useradd -d /var/ftp/ftpuser -s /sbin/nologin -m ftpuser
# passwd ftpuser
Criei o usuário "ftpuser", com a Home
/var/ftp/ftpuser, e sem permissão de login remoto via SSH.
Coloque o usuário na lista de permissões do FTP:
# echo ftpuser >> /etc/vsftpd/chroot_list
Bom, agora é só testar o acesso ao FTP.
Eu uso o cliente
FileZilla. Para FTP, eu gosto da interface gráfica, mas você pode usar o FTP via linha de comando mesmo, ou um
cliente de sua preferência.
Obs.: Se você quiser mudar a localização da pasta padrão do FTP:
/var/ftp, pode fazer tranquilamente, mas terá que acertar as
permissões do SELinux, apenas criar a pasta em outra localização vai alarmar o SElinux e não vai funcionar.
Se quiser mudar pasta Home do usuário FTP, leia sobre SELinux e faça as devidas alterações.
Instalamos um servidor FTP, com foco em segurança.
Bom, é isto.
Abraço.
Leonardo Macedo Cerqueira