Aqui você aprenderá como configurar um seguro, simples e eficiente servidor de FTP. É claro que estou falando do Bftpd, este grande software é tudo que eu preciso para fazer serviços de FTP, e espero que o mesmo aconteça com você. Este documento não lhe ensinará como o FTP trabalha, aqui supõe-se que você saiba como as coisas funcionam e queira apenas configurar o servidor FTP Bftpd, mas se você for novato, não se apavore, vou explicar cada etapa em detalhes.
A primeira coisa que você precisa é do próprio pacote bftpd (é claro). Algumas distribuições já tem o pacote pronto, então meu conselho, é que você primeiro procure pelo pacote bftpd na sua distribuição. Se sua distro não possue, ou você não sabe ou quer do jeito rápído, vamos compilar nós mesmo o programa. Compilar o software é o jeito mais rápido e fácil.
O Bftpd, tem duas árvore de desenvolvimento. A estável e a desenvolvimento. Aqui usarei a versão estável, mas você pode usar sem problemas a versão de desenvolvimento. Uma nota: A palavra "desenvolvimento" no mundo Bftpd, não significa "sem teste", "vamos ver o que acontece" ou "estou brincando com código". Mesmo a versão de desenvolvimento é muito estável e pronta para uso.
Download
Para baixar o programa favor visitar a página http://bftpd.sourceforge.net/download.html e escolher a seção "The latest stable version of bftpd is 2.0."
Compilando
Primeiramente execute os seguintes comandos (substitua x.x.x pela versão do número no qual você está instalando):
tar xzf bftpd-x.x.x.tar.gz cd bftpd-x.x.x ./configure --prefix=/usr make make install (aqui você precisa ser root)
Nota: você tem que copiar o arquivo bftpd.conf da pasta fonte para /etc manualmente se você estiver atualizando de versões anteriores, já que 'make install' não sobreescreve suas configurações.
Nota: Se você quiser usar a característica 'tar.gz on-the-fly' do Bftpd, você deve pegar o código fonte do program "pax" e extraí-lo para dentro do diretório fonte do Bftpd. Então, ao invés de fazer "./configure", faça "./configure --enable-pax=pax-sourcedir --enable-libz". Você deve ter a biblioteca libz e o arquivo de cabeçalho /usr/include/zlib.h.
Antes de executar o servidor, é hora de configurá-lo. Agora é a hora chave, mas aqui não tem segredo. Todas as opções de configuração são controladas através do arquivo bftpd.conf, que reside em /etc. Num primeiro instante você não precisa mudar nada, mas saber o que esta acontecendo é sempre uma boa coisa. O arquivo bftpd.conf é auto explicativo, todas as variáveis são explicadas em detalhes, por isso é fácil de entendê-lo. Se você quiser saber como o meu arquivo bftpd.conf está configurado, veja:
global {
DENY_LOGIN="no"
PORT="21"
PASSIVE_PORTS="0"
DATAPORT20="no"
ADMIN_PASS="x"
PATH_BFTPDUTMP="/var/run/bftpd/bftpdutmp"
XFER_BUFSIZE="2048"
XFER_DELAY="0"
ALLOW_FXP="no"
CONTROL_TIMEOUT="300"
DATA_TIMEOUT="30"
RATIO="none"
ROOTDIR="%h"
UMASK="022"
LOGFILE="/var/log/bftpd.log"
HELLO_STRING="ftp at %i ready."
AUTO_CHDIR="/var/tmp/"
AUTH="PASSWD"
RESOLVE_CLIENT_IP="no"
MOTD_GLOBAL="/etc/ftpmotd"
MOTD_USER="/.ftpmotd"
RESOLVE_UIDS="yes"
DO_CHROOT="yes"
LOG_WTMP="yes"
BIND_TO_ADDR="any"
PATH_FTPUSERS="/etc/ftpusers"
AUTH_ETCSHELLS="no"
ALLOWCOMMAND_DELE="no"
ALLOWCOMMAND_STOR="yes"
ALLOWCOMMAND_SITE="yes"
HIDE_GROUP=""
QUIT_MSG="See you later..."
USERLIMIT_GLOBAL="0"
USERLIMIT_SINGLEUSER="0"
USERLIMIT_HOST="0"
GZ_UPLOAD="no"
GZ_DOWNLOAD="no"
}
user ftp {
#Any password fits.
ANONYMOUS_USER="yes"
}
user anonymous {
#If the client wants anonymous, ftp is taken instead.
ALIAS="ftp"
}
user root {
DENY_LOGIN="Root login not allowed."
}
Certo. Nosso Bftpd está agora configurado. Então, agora precisamos preparar o Bftpd para inicializar, e podemos fazer isso de duas maneira. Inetd ou standalone! Falei Grego agora! :-) Não se preocupe.
Se você quiser pelo modo inetd, adicione o seguinte no arquivo /etc/inetd.conf:
ftp stream tcp nowait root /usr/sbin/bftpd bftpd
Mas, se você quiser o modo inetd com xinetd, adicione o seguinte no seu /etc/xinetd.conf:
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/bftpd
log_on_success += HOST PID
log_on_failure += HOST
nice = 10
}
Neste modo, o programa inetd irá tomar conta de inicializar e parar o bftpd.
Para ser honesto, eu prefiro o modo "standalone". Par mim, parece que tenho mais controle. Aqui está o comando para executar em modo standalone:
/usr/sbin/bftpd -d
Executando o comando acima na linha de comando você terá o Bftpd funcionando. Mas não é confortável. Porque todas as vezes que queremos inicializar o servidor, nós iremos ter que executar esse comando. Certo, você pode pôr o comando em algum arquivo ou em algum script para inicializar automaticamente, mas para pará-lo ou reiniciá-lo, você precisa finalizá-lo e incializá-lo no braço outra vez. Para evitar tudo isso e fazer minha vida um pouco mais fácil eu tenho este pequeno script que faz todo o trabalho para mim.
---------------
#!/bin/bash
case "$1" in
'start')
echo "Starting bftpd Server"
/usr/sbin/bftpd -d
;;
'stop')
echo "Stopping bftpd Server"
killall bftpd
;;
'restart')
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
---------------
Você tem que fazer esse script executável e colocá-lo em seu diretório /etc/rc.d ou /etc/init.d (isso depende da sua distribuição).
Isso é tudo! Agora você tem seu Bftpd configurado e funcioando.
Parabéns!
Toda a informação acima é o suficiente para começar a usar um servidor FTP se você for usuário intermediário/avançado, mas para os novatos que seguirão exatamente cada etapa aqui, há alguns ítens que nós necessitamos deixar bem claro.
Firewall: É muito importante você não esquecer as regras para permitir que o tráfico FTP passe pelo seu firewall. Geralmente a regra a seguir é suficiente:
IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
Mas isso é somente um exemplo. POR FAVOR ESTUDE IPTABLES, VOCÊ SEMPRE IRÁ PRECISAR.
Conta de usuário: Certo...você tem seu servidor de FTP, mas como posso acessá-lo? Simples! Apenas crie uma conta de usuário normal em seu sistema Linux. Quando criamos uma conta de usuário, o diretório home desse usuário também é criado. Então quando o usuário acessa nosso FTP, ela/ela irá entrar com o login e senha, se tudo ocorreu bem, o usuário irá cair dentro do seu diretório home.
Ip ou Domínio: Se você irá disponibilizar nosso FTP para o mundo, você não precisa de um domínio, apenas um IP válido. Para usar um domínio para acessar o FTP, você precisa ter o DNS configurado.
Eu acredito que seja isso! Espero que de alguma maneira eu tenha ajudado alguém. Bftp é muito simples de usar, sem segredos. Mas se você tiver alguma dúvida, favor me enviar um email zilli.daniel@gmail.com ou visitar o site bftpd.sf.net e contatar Jesse Smith, mantedor do Bftd.
Autor: Daniel Zilli zilli.daniel@gmail.com
Obrigado para: Jesse Smith jessefrgsmith@yahoo.ca (atual mantedor) e Max-Wilhelm Bruker brukie@gmx.net (autor original).
Este texto está sob GNU Free Documentation License versão 1.2.
Está página foi modificada última vez em 01 de Outubro de 2007.