Como instalar e configurar o vsftpd
Vsftpd é provavelmente o ftpserver mais seguro e rápido para sistemas unix e seus derivados. Para se ter uma idéia, os seguintes sites usam ele com seu ftpserver padrão:
* ftp.redhat.com
* ftp.suse.com
* ftp.debian.org
* ftp.gnu.org
* ftp.gnome.org
* ftp.kde.org
* ftp.rpmfind.net
* ftp.linux.org.uk
* ftp.gimp.org
* ftp.openbsd.org
* ftp.sunet.se
* ftp.ximian.com
* ftp.engardelinux.org
Deu para notar que esse ftpserver é realmente seguro. Bom, vamos deixar a história de lado e vamos por a mão na massa, e começaremos baixando o pacote:
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz tar xvzf vsftpd-1.2.0.tar.gz cd vsftpd-1.2.0
Agora para compilar digita simplesmente:
make
O vsftpd precisa do usuario "nobody" na sua configuração default. Caso o seu sistema não tenha esse usuário, você tem que adicioná-lo:
useradd nobody useradd: user nobody exists
O vsftpd tambem precisa que seja criado o diretorio /usr/share/empty :
mkdir -p /usr/share/empty/ mkdir: cannot create directory `/usr/share/empty': File exists
Para poder configurar o vsftpd para aceita usuários anonymous, será nescessário ter o usuário ftp no seu sistema, e que o user tenha um diretório, com as permissões setadas para o mesmo. Caso o seu sistema não tenha esse user, adicione-o:
mkdir -p /home/ftp useradd -d /home/ftp ftp chown root.root /home/ftp chmod og-w /home/ftp
Agora copie os arquivos do vsftpd para os seus respectivos lugares:
cp vsftpd /usr/local/sbin/vsftpd cp vsftpd.conf.5 /usr/local/man/man5 cp vsftpd.8 /usr/local/man/man8 cp vsftpd.conf /etc
Agora vamos configurar o inet para rodar o mesmo, então edite o seu /etc/inetd.conf e faca a seguinte mudança:
ftp stream tcp nowait root /usr/sbin/tcpd proftpd por ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd
salve e reinicie o inetd:
killall -HUP inetd
Caso queira usá-lo sem o inetd, acrescente a seguinte linha no /etc/vsftpd.conf:
listen=YES
agora starte o vsftpd:
root@but3k4:~# /usr/local/sbin/vsftpd [1] 3693
agora vamos ver se está funcionando:
root@slack:~# ftp localhost Connected to localhost. 220 (vsFTPd 1.2.0) Name (localhost:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls -la 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing.> drwxr-xr-x 2 0 0 4096 Nov 02 17:39 . drwxr-xr-x 2 0 0 4096 Nov 02 17:39 .. 226 Directory send OK. ftp>
Pronto, o seu vsftpd está instalado e rodando perfeitamente, agora vamos fazer algumas configurações:
edite o arquivo /etc/vsftpd.conf e descomente as seguintes linhas:
#local_enable=YES
esta linha ativa o acesso a usuários que estão no /etc/passwd.
#write_enable=YES
esta linha ativa o acesso a escrita nos diretórios do users.
#ftpd_banner=Welcome to blah FTP service.
Altere o nome "Welcome to blah FTP service" para o nome do seu servidor ex: but3k4 FTP Server
chroot_local_user=YES
Acrescente esta linha, caso queira que os usuários fiquem presos no seu home.
syslog_enable=YES
Acrescente esta linha, para todos os acessos ficarem gravados no /var/log/messages.
use_localtime=YES
Acrescente esta linha caso queira que ele pegue a data do sistema.
userlist_enable=YES
Se esta opção for ativada o vsftpd irá ler uma lista de nomes que está na opção do userlist_file. Se o usuário que esta tentando acessar o sistema tiver o nome neste arquivo, terá seu acesso negado antes de ser perguntado a senha do mesmo.
userlist_file=/etc/ftpusers
esse arquivo diz ao vsftpd quais usuários que não poderão acessar o sistema. Para cadastrar todos os usuários do seu /etc/passwd no /etc/ftpusers, use o seguinte comando:
cat /etc/passwd | cut -d: -f1 | grep -v "seu-user" > /etc/ftpusers echo "anonymous" >> /etc/ftpusers
Essa segunda linha e caso você queira que o anonymous não logue no seu ftp.
Bom, acho que o agora o seu servidor vsftpd está configurado e rodando perfeitamente, caso queira saber mais opções para o mesmo, de um:
man vsftpd.conf
Espero poder ter ajudado todos com esse tutorial, pois esta é uma boa alternativa para o popular proftpd. :)
Cláudio Borges

