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.