Tutorial: VsFTPD
Autor: Fábio Rafael (moiza)
Email: moiza@bsd.com.br
Necessidade:
Precisávamos ter um Servidor para Transferência de Arquivo, um método típico de cópia de arquivos entre dois sites Internet para ser utilizado para transferir arquivos com tamanhos superiores à 10MB, pois muitos provedores e serviços não permitem o envio e o recebimento de arquivos com tamanho superior a 10MB. Existem muitos repositórios públicos de programas de computador e documentos espalhados pela Internet usando este tipo de aplicação.
Síntese:
Armazenar arquivos em diretórios, permitindo o seu download (recepção) e o upload (envio) de novos arquivos.
Descrição:
Este serviço possibilita que pessoas tenham acesso a documentos através da Internet e/ou de uma Intranet, em qualquer horário (no caso de acesso via Internet,também de qualquer lugar). É o meio mais recomendado e mais rápido para trocas de arquivos via rede, sendo muito mais ágil que o envio por e-mail.
Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (Servidor FTP, neste caso, tradicionalmente aparece em letras minúsculas, por influência do programa de transferência de arquivos do Unix).
A transferência de dados em redes de computadores envolve normalmente transferência de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais). O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o padrão da pilha TCP/IP para transferir arquivos, é um protocolo genérico independente de hardware e do sistema operacional e transfere arquivos por livre arbítrio, tendo em conta restrições de acesso e propriedades dos mesmos.
Implementação:
Veremos agora como instalar e configurar um servidor de ftp básico utilizando-se para isso o vsftpd.
Pré-requisitos:
* Um servidor GNU/Linux Debian, FreeBSD ou outra distro previamente configurado.
* Um repositório ou ports atualizado.
Instalação:
Atualizando o repositório do Debian
debian:/# apt-get update
Instalando o pacote vsftpd
debian:/# apt-get install vsftpd
Lendo lista de pacotes…
Fazendo uma cópia do conf original
debian:/# cp /etc/vsftpd.conf /etc/vsftpd.conf.default
É possível ver os docs e exmplos do vsftpd em
debian:/# ls -l /usr/share/doc/vsftpd/
Assumindo-se que a instalação foi concluída com sucesso vamos agora para a configuração, o arquivo de configuração fica em /etc/vsftpd.conf ou /usr/local/etc/vsftpd.conf caso seja um FreeBSD utilize o seu editor de texto preferido como o ee, vi, nano, pico, etc.
==== Configuração básica VsFTPD ====
#standalone mode – habilita o vsftpd para rodar sem depender do inetd
listen=YES
#Essa opção define o máximo de pessoas conectadas ao mesmo tempo no servidor ftp
max_clients=6
max_per_ip=4
# Essa opção desabilita a utilização do usuário anonymous
anonymous_enable=NO
# Essa opção habilita os usuários que possuem conta no servidor
local_enable=YES
# Opção da permissão de escrita aos usuários conectados no servidor ftp
write_enable=YES
# Security
pasv_enable=YES
hide_ids=YES
pasv_promiscuous=YES
# Essas duas opções definem a porta min e max para usuários que irão conectar através da LAN ou NAT
pasv_min_port=40000
pasv_max_port=65535
# Essa opção é útil no caso de ‘prender’ o usuário no seu home, não permitindo que ele passeie pelos outros diretórios
chroot_local_user=YES
# Essa opção especifica a permissão padrão de quando é enviado um arquivo
local_umask=007
# Dir Security
secure_chroot_dir=/usr/local/share/vsftpd/empty
# Habilita os logs de conexão/uploads/downloads no /var/log/vsftpd.log
xferlog_enable=YES
# Features
ls_recurse_enable=NO
ascii_download_enable=YES
# Essa opção mostra uma mensagem inicial quando o usuário conecta ao servidor ftp
ftpd_banner= Bem vindo ao Servidor FTP
# Essa opção especifica após quanto tempo de inatividade o servidor irá desconectar o usuário
idle_session_timeout=120
accept_timeout=60
connect_timeout=60
# Performance
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
==== Fim da Configuração básica VsFTPD ====
Para iniciar o vsftpd execute
debian:/# /etc/init.d/vsftpd start
Starting FTP server: vsftpd.
Acompanhe as conexões pelo log do vsftpd, para diagnosticar caso algum usuário informe que não está conseguindo acessar/autenticar:
# tail -f /var/log/vsftpd.log
Dicas:
Crie um arquivo de log para o vsftpd
debian:/# touch /var/log/vsftpd.log
Crie também um diretório para não dar erro quando o cliente conectar no servidor ftp
debian:/# mkdir /usr/share/empty
Caso o cliente tenha dificulades em usar o ftp em modo console/prompt recomende a extensão do Iceweasel/Firefox o FireFTP.
– No menu ferramentas acesse “complementos” acesse o link “Mais extensões” procure pelo complemento “FireFTP” clique em
baixar agora… em segundos o FireFTP estará instalado.
– Acesse em Ferramentas “FireFTP” va em “Manage Accounts” coloque em “New Account” coloque o IP do Servidor VsFTPD caso tenha um
DNS instalado coloque o Nome do Host, em seguida coloque o “Usuário/Senha” criados no Servidor VsFTPD.
– A coluna esquerda indica host local, à direita o Servidor FTP, agora já é possível criar diretórios, fazer downloads e uploads dos
arquivos e documentos.
Abaixo os Screenshots da configuração do cliente no Iceweasel/Firefox:
Referências:
man vsftpd
man useradd/adduser
http://pt.wikipedia.org/wiki/Ftp
http://vsftpd.beasts.org/vsftpd_conf.html