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:
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