= Bftpd Tutorial =

Se precisa configurar um servidor FTP, você veio ao lugar certo.



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.

0.1. Instalação

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.

0.2. Configurando

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."
  }

0.3. Executando

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!

0.4. Coisas que os outros tutoriais não dizem à você

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.

0.5. FIM

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.

0.6. Créditos

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.