Vsftp - Instalação de um servidor FTP focado em segurança

Este artigo aborda a instalação de um servidor FTP com segurança. Pontos de segurança tratados: usuário FTP limitado
ao seu home, SELinux ativo, regras IPtables TCP Wrappers, limitação apenas para a pasta do usuário e criação de contas FTP.

[ Hits: 29.514 ]

Por: Leonardo Macedo Cerqueira em 18/10/2012 | Blog: http://devopslab.com.br/


Instalação



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

Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalação
Outros artigos deste autor

Instalação do Gitlab e introdução ao Git

Instalação do Varnish + Apache + Virtual Hosts

KNOCK + SSH

PHP Server Monitor - Monitore URLs e IPs

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

Leitura recomendada

ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

Acesso remoto para principiantes

Datagramas IP (Protocolo Internet)

Acessando a Internet 3G da Claro no Ubuntu e no Debian de maneira simples

Instalando e configurando um servidor DNS (Bind)

  
Comentários
[1] Comentário enviado por jonatas.baldin em 18/10/2012 - 10:02h

Configurei o mesmo FTP praticamente igual semana passada. Ótimo artigo!

[2] Comentário enviado por danniel-lara em 18/10/2012 - 14:04h

Muito bom
Parabéns

[3] Comentário enviado por andrezc em 20/10/2012 - 21:27h

Gostei mesmo foi do título do negócio.

"vsf"tp. (:

[4] Comentário enviado por grandetilismo em 21/12/2013 - 16:06h

Excelente post.

Obrigado por postar.

Abraço.


'Os homens são miseráveis, porque não sabem ver nem entender os bens que estão ao seu alcance.'
Pitágoras

[5] Comentário enviado por andreasfelix em 21/01/2014 - 15:48h

exelente !
otimo conteudo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts