Instalando o VSFTP

Sobre:

VSFTP –  FTP é acrônimo para ‘File Transfer Protocol’ (Protocolo de Transferência de Arquivos), é um dos protocolos mais antigos e utilizados na Internet. Tem como função, a transferência de arquivos pela rede, podendo ser download ou upload. 

O FTP é uma aplicação Cliente/Servidor que utiliza o protocolo TCP e as portas: 

– 20 para transferência de arquivos e,
– 21 para comandos. 

As especificações do protocolo FTP estão detalhadas no RFC 959, que pode ser encontrado em: RFC959 – FTP 

O RFC 959 lista os seguintes objetivos para o FTP:

  • Promover o compartilhamento de arquivos;
  • Encorajar indiretamente o uso de Servidores remotos como Backup;
  • Transferir dados de forma confiável e eficiente;
  • Proteger os internautas de variações em sistemas de armazenamento de arquivos entre Servidores.

Com estes objetivos em mente, vamos à configuração do Servidor. 

VSFTPD é um servidor FTP licenciado sob a GPL (General Public License) para sistemas UNIX e GNU/LINUX estável, rápido e seguro. É utilizado por sites como:

  • ftp.debian.org
  • ftp.gnu.org
  • ftp.redhat.org
  • ftp.suse.org
  • ftp.openbsd.org

Pode ser implementado em dois modos: Standalone (modo independente) ou controlado pelo XINETED. Este artigo aborda a instalação Standalone e a configuração básica do Servidor VSFTPD na distribuição CentOS 6.5
Detalhes: http://en.wikipedia.org/wiki/Vsftpd

Detalhes:

Instalação do Vsftp no CentOS 6.5:

Instalando o Vsftp:

Atualizar Sistemas

# yum update

Instalar Vsftp

# yum install vsftpd

Inicializando o serviço web Apache:

# service vsftp start

Para verificar se o serviço está realmente sendo executado, vamos utilizar o comando ‘ps’

# ps aux | grep vsftpd

Configurando

O arquivo de configuração padrão do VSFTPD, está localizado em “/etc/vsftpd/vsftpd.conf”. Antes de realizar qualquer alteração no arquivo, faça uma cópia de segurança.

Para fazer o Backup, entre no diretório onde se encontram os arquivos de configuração:

# cd /etc/vsftpd

Em seguida, utilize o comando ‘cp’ para realizar a cópia:

# cp vsftpd.conf vsftpd.conf.bkp

Para configurar o Servidor abra o arquivo. Neste caso, será utilizado o editor VI:

# vi /etc/vsftpd/vsftpd.conf

Parâmetros

Dentro do “vsftpd.conf”, edite os seguintes parâmetros:

– Desabilitar o acesso anônimo ao Servidor, por padrão é: YES
anonymous_enable=NO
– Permitir o acesso de usuários do sistema, que estão em “/etc/passwd”, de acordo com suas permissões:
local_enable=YES

– Permitir operações de escrita no Servidor via FTP (por padrão é: NO). As operações de escrita (alterar conteúdo, apagar arquivos e inserir arquivos/diretórios) podem ser realizadas de acordo com as permissões dos usuários no sistema:
write_enable=YES

– Ativar o Log detalhado:
xferlog_enable=YES

– Determinar a porta utilizada para transferência de arquivos, por padrão é: 20
connect_from_port_20=YES

– Habilitar formato detalhado de Logs:
xferlog_std_format=YES

– Prender os usuários do sistema em suas pastas locais, não deixando que estes naveguem pelo sistema de arquivos:
chroot_local_user=YES

– Define o modo de operação Standalone:
listen=YES

Detalhes

Sempre que forem realizadas alterações no arquivo “vsftpd.conf” o serviço deverá ser reiniciado, para que as alterações na configuração do serviço sejam executadas:

# service vsftpd restart

Para iniciar, parar e reiniciar serviços em distribuições baseados no Red Hat Linux, utiliza-se o comando:

# service nome_do_serviço start ('stop' ou 'restart')

Criar usuário para acessar o ‘ftp’:

# adduser nome_usuario
# passwd nome_usuario

Para adicionar o VSFTPD na inicialização do sistema:

# chkconfig vsftpd on

Verificando as permissões no SELinux:

# getsebool -a | grep ftp

O comando acima deve retorna algumas informações, como é mostrado na imagem abaixo:

img02

Importante:

No Centos 6.5 ha uma configuração que deve ser feita pois o mesmo não ira permitir o acesso não importa a configuração que for feita no vsftpd.conf, abaixo detalhes:

Editar o arquivo:

#nano /etc/selinux/config

Editar linha:
SELINUX=disabled

Reiniciar o servidor

#reboot

Erro resultante da falta da configuração acima:
500 OOPS: cannot change directory:/home/user
500 OOPS: privsock_get_cmd
Connection closed by remote host

Fontes:
http://www.vivaolinux.com.br/artigo/VSFTPD-no-CentOS-62-Instalacao-e-Configuracao
http://www.vivaolinux.com.br/artigo/VSFTPD-no-CentOS-62-Instalacao-e-Configuracao?pagina=2
http://www.vivaolinux.com.br/artigo/Instalar-e-configurar-um-servidor-FTP-no-CentOS
http://unix.stackexchange.com/questions/79743/what-are-the-settings-to-correct-vsftpd-500-oops-cannot-change-directory-erro