Página seguinte Página anterior Índice

77. sistema/rede/wu-ftp

77.1 Quais as configurações básicas do wu-ftp ?

Instalar os pacotes:

wu-ftpd:

wu-ftpd é o daemon que serve arquivos FTP para clientes ftp. Ele é útil se você deseja transferir programas entre computadores sem rodar um sistema de arquivos de rede como o NFS; ou se você deseja ter um site de FTP anônimo (neste caso, você necessita instalar o pacote anonftp).

anonftp (depende de um servidor de ftp qualquer):

Contém os arquivos necessários para permitir acesso ftp anônimo a sua máquina. Isso deixa qualquer usuário pegar arquivos de sua máquina sem ter uma conta, o que é um meio popular de tornar programas disponíveis na Internet.

Após instalar, verifique se existe a linha :

ftp             21/tcp
no arquivo /etc/services, pois é onde está sendo definida a porta de<htmlurl url=" ftp." name=" ftp.">

E também, verificar se a linha abaixo, do arquivo /etc/inetd.conf está
descomentada/habilitada. 

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a

Caso não esteja, basta descomentar e reinicializar o serviço inet :

[root@localhost]# /etc/rc.d/init.d/inet stop 
[root@localhost]# /etc/rc.d/init.d/inet start 
Pronto, seu servidor de ftp está em funcionamento, com as configurações básicas (padrões).

--------------------------------------------------------------------------

Aqui vão as descrições de algumas opções mais relevantes que são adicionadas ao arquivo /etc/ftpaccess (arquivo mais importante) que podem ser encontradas na documentação (man ftpaccess).

Para maiores configurações, deve-se utilizar-se dos seguintes arquivos :

/etc/ftpaccess < -------- Configurações gerais do servidor. Exemplo:

# Define uma classe de usuários: reais, convidados e anônimos
class   all         real,guest,anonymous    *
class   rmtusers    guest,anonymous         *
class   local       real                    *
# Para restringir o acesso de usuários reais, basta retirar o real da linha anterior
# Para restringir o acesso de usuários convidados, basta retirar o guest da linha anterior
# Para restringir o acesso de usuários anônimos, basta retirar o anonymous da linha anterior
# É possível restringir o acesso de tipos de usuários de um certo domínio :
class   renegados     real    !*.domínio.com.br
# O "!" funciona como negação e renegados = o nome da classe

# Proíbe qualquer máquina do domínio conectiva.com.br de efetuar login e
# exibe o arquivo /etc/wu-ftpd/access_deny_msg
deny *.conectiva.com.br /etc/wu-ftpd/access_deny_msg

# Proíbe que as máquinas/domínios listados no arquivo
# /etc/wu-ftpd/deny_hosts efetuem login e exibe a mensagem contida no
# arquivo /etc/wu-ftpd/access_deny_msg
deny /etc/wu-ftpd/deny_hosts /etc/wu-ftpd/access_deny_msg

# Definição de grupos de convidados, mesmo sendo um usuário real, caso o
# grupo do mesmo esteja na lista de guestgroup a sessão de ftp dele será
# automaticamente passada para uma sessão anônima
guestgroup users

# Define um usuário convidado. No /etc/passwd deve estar definido o seu
# diretório root e também o $HOME deste usuário ao utilizar o<htmlurl url=" ftp." name=" ftp."> Esses
# diretórios devem ser separados por "/./", por exemplo:
# convidado:senha:id:gid:Conta de FTP - convidado:/ftp/./incoming:/etc/ftponly
guestuser convidado

# Definição de grupos/usuários reais, por exemplo, caso se tenha utiizado a
# opção guestgroup * mas ainda deseja-se que os usuários do grupo suporte
# queiram acessar como reais:
realgroup suporte
realuser  usuario

# Toda vez que um usuário da classe abaixo acessar o ftp, o processo do
# servidor ftp irá ter prioridade  = valor nice
nice <valor nice> [<classe que se logar>]

# Define o valor de umask para cada classe ou geral
defumask 011 rmtusers
defumask 022 local

# Segundos que o serviço espera pela vinda de uma conexão PASV
timeout accept 120

# Segundos que o serviço espera para realizar a conexão de dados com a porta
timeout connect 120

# Segundos que o serviço espera por atividades na conexão de dados
timeout data 1200

# Segundos que o serviço espera pelo próximo comando
timeout idle 900

# Segundos que o serviço espera pelo próximo comando (valor máximo, não pode
# ultrapassar). Caso o timeout idle ultrapasse o valor do maxidle, é sempre
# válido o maxidle

timeout maxidle 1200

# Segundos que o serviço disponibiliza para toda a conversação RFC931:
# <htmlurl url="http://andrew2.andrew.cmu.edu/rfc/rfc931.html" name="http://andrew2.andrew.cmu.edu/rfc/rfc931.html">
timeout RFC931 10

# Quantidade de arquivos máxima que um usuário da classe pode transferir
# raw total: total de arquivos: entrada + saída
# raw out:   saída
# raw in:    entrada
file-limit raw total 50 rmtusers

# Quantidade de bytes máxima que um usuário da classe pode transferir
# raw total: total de arquivos: entrada + saída
# raw out:   saída
# raw in:    entrada
byte-limit

# Tempo máximo (em minutos) da conexão para usuários convidados, anônimos e ou os dois:
# limit-time guest     60
# limit-time anonymous 60
# limit-time *         60
# Por esta opção, usuários reais não possuem tempo máximo de conexão
limit-time guest 10

# Não permite a transferência de arquivos.
# Sintaxe: noretrieve [absolute|relative] [class=<classname>] ... [-] <filename> <filename>
noretrieve class=rmtusers /home/*/.bashrc

# Após 3 tentativas de acesso sem sucesso, é guardado no log informações de
# que após 3 tentativas não foi possível o acesso e é terminada a conexão
loginfails 3

# Define o modo da mensagem de "boas-vindas" ao se conectar:
# full:  exibe o nome do servidor e qual serviço utiliza
#        (proftpd/wu-ftpd/etc)
# brief: exibe apenas o nome da máquina
# terse: exibe apenas a mensagem: "FTP server ready"
greeting full

# Define uma mensagem padrão de conexão - NOTE: caso seja definido o tipo de
# mensagem (acima), o texto abaixo não irá aparecer
greeting text Servidor de FTP

# Logo após entrar com usuário e senha (com sucesso) será mostrado o
# conteúdo do arquivo.
banner /etc/ftp/banner

# Define o nome padrão do servidor ftp - pode ser acessado através de %L,
# caso seja um servidor virtual, este valor não é utilizado
hostname lilica

# Define o email do administrador do servidor - pode ser acessado por %E
email administrador@servidorftp.com.br

# Exibe o conteúdo do arquivo <path> quando o usuário acessar o servidor
# <LOGIN> ou quando entrar em algum diretório <CWD>
# message <path> {<when> {<class> ...}}
message /etc/ftp/message CWD=/home/ftp/pub all

# No arquivo de mensagens, podem haver os seguintes "atalhos":
# %T      tempo (formato Thu Nov 15 17:12:42 1990)
# %F      espaço livre na partição (kbytes) [não suportado em todos]
# %C      diretório local (equivale ao pwd)
# %E      email do administrador
# %R      nome da máquina que está acessando o servidor
# %L      nome do servidor
# %u      nome do usuário determinado via autenticação RFC931
# %U      nome do usuário que está logado (que foi digitado)
# %M      número máximo de usuários permitidos nesta classe
# %N      número de usuários correntes desta classe

...... Daqui prá baixo complicou a tradução ........
# %B      absolute limit on disk blocks allocated  #
# %b      preferred limit on disk blocks           #
# %Q      current block count                      #
# %I      maximum number of allocated inodes (+1)  #
# %i      preferred inode limit                    #
# %q      current number of allocated inodes       #
# %H      time limit for excessive disk use        #
# %h      time limit for excessive files           #
....................................................

# readme <path> {<when> {<class>}}
# Exibe uma indicação de que o usuário deve verificar um certo arquivo
# <path>
readme /home/ftp/README LOGIN all

# Guarda o log dos comandos dos usuários, dividido por tipos, real, guest,
# anonymous e separados por vírgulas
log commands guest,anonymous

# Guarda o log das transferências de arquivos de usuários anônimos,
# convidados e/ou reais.
# inbound = arquivos enviados ao servidor
# oubound = arquivos baixados do servidor
log transfers real,anonymous,guest inbound

# Guarda o log das violações das regras de segurança para usuários reais,
# anônimos ou convidados.
log security anonymous,guest

# Redireciona os avisos de transferências de arquivos para o syslog, sem isso,
# irá para xferlog
log syslog

# Redireciona os avisos de transferências de arquivos para o syslog e
# xferlog
log syslog+xferlog

# Permite utilizar-se de apelidos para diretórios
alias atualizacoes /pub/conectiva/atualizacoes

# Isto define um diretório de busca que seja usado ao mudar diretórios.
cdpath /pub/conectiva/atualizacoes
cdpath /pub/conectiva/beta

# O sistema irá verificar todo o tempo se o servidor será desligado, caso
# sim, o usuário que estiver acessando o servidor será avisado, novos
# acessos não serão permitidos antes de certo tempo (definido no arquivo de
# configuração) de o servidor ser desligado.
shutdown /etc/ftp_shutdown
# Parâmetros para o arquivo:
# <ano> <mês> <dia> <hora> <minuto> <hora1> <hora2>
# <texto>
# onde
# <ano> qualquer ano > 1970
# <mês> 0-11
# <hora> 0-23
# <minuto> 0-59
# <hora1> e <hora2> no formato HHMM, definem a hora em que os usuários serão
# avisados do desligamento do servidor e quando será realizado o
# desligamento automático de usuários.
# <texto> Segue o mesmo padrão da tag "message" com as opções :
# %s hora em que o servidor será desligado
# %r hora em que conexões não serão mais permitidas
# %d hora em que as conexões serão desligadas

# Para a criação de domínios virtuais (Virtual hosts) é necessário que o seu
# servidor deve estar com seu nome cadastrado como válido no  servidor de
# nomes :
# virtual <address> <root|banner|logfile> <path>
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> root /home/ftp/suporte banner /etc/ftp/sup_banner logfile xferlog_suporte

# Define os usuários que podem ou não ter acesso ao servidor virtual de<htmlurl url=" ftp." name=" ftp.">
# virtual <address> allow <username> [<username> ...]
# virtual <address> deny <username> [<username> ...]
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> allow *
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> deny usuario

# Geralmente, é permitido o acesso de usuários anônimos em domínios
# virtuais, com a opção a seguir, é retirada esta permissão.
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> private

# Define os usuários que podem ou não ter acesso ao servidor de<htmlurl url=" ftp." name=" ftp.">
defaultserver allow usuario
defaultserver deny *

# Geralmente, é permitido o acesso de usuários anônimos em servidores ftp,
# com a opção a seguir, é retirada esta permissão.
defaultserver private

# passive address <externalip> <cidr>
# Permite que certos intervalos de ip's acessem um certo servidor ao invés
# do padrão.
passive address 10.0.1.15   10.0.0.0/8
passive address 192.168.1.5 0.0.0.0/0

# Especifica o nome de um servidor de email, para onde será enviada as
# mensagens de notificação de "uploads". São aceitos vários servidores, onde
# o serviço de ftp irá mandar mensagens até que um dos servidores definidos
# aceite a mensagem.
mailserver mail.conectiva.com.br
mailserver mail.domínio.com.br
mailserver<htmlurl url=" www.emails.com" name=" www.emails.com">

# Define o email de quem irá receber informações sobre os "uploads"
# anônimos. Pode-se definir mais de um email, todos serão notificados. Caso
# não seja definido nenhum email, não haverá avisos.
incmail usuario@conectiva.com.br
incmail usuario@hotmail.com

# Define o email de quem irá receber informações sobre os "uploads" anônimos
# do domínio virtual. Caso não seja definido, serão enviadas notificações
# para o email geral.
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> incmail usuario@ftp.suporte

# Define o email de quem irá receber informações sobre os "uploads"
# anônimos no servidor padrão (excluindo os virtuais).
defaultserver incmail usuario@conectiva.com.br

# Define o email do usuário que enviará a mensagem
mailfrom anonftp@conectiva.com.br

# Define o email do usuário que enviará a mensagem para o servidor virtual
virtual<htmlurl url=" ftp.suporte" name=" ftp.suporte"> mailfrom anonftp@ftp.suporte

# Define o email geral do usuário que enviará a mensagem (apenas do servidor
# padrão)
defaultserver mailfrom anonftp@conectiva.com.br

# Permite ou não executar a especificada função. Por padrão, todas são
# permitidas. Pode-se utilizar classes de usuários, bastando seguir a
# sintaxe class=nome_da_classe
# chmod <yes|no> <typelist>
chmod no anonymous
# delete <yes|no> <typelist>
delete yes real,guest,anonymous
# overwrite <yes|no> <typelist>
overwrite yes real,guest,anonymous
# rename <yes|no> <typelist>
rename no guest
# umask <yes|no> <typelist>
umask no real

# Define o nível de checagem das senhas do usuário anônimo.
# passwd-check <none|trivial|rfc822> (<enforce|warn>)
# none, não realiza checagem alguma
# trivial, deve haver "@"
# rfc822, a senha deve ser compatível com a regra rfc822:
# <htmlurl url="http://www.faqs.org/rfcs/rfc822.html" name="http://www.faqs.org/rfcs/rfc822.html">
# enforce, caso a senha não seja aceita, não realiza o acesso
# warn, caso a senha não seja aceita, apenas avisa o usuário e então acessa
passwd-check rfc822 enforce

# Define as senhas que não serão aceitas (dependerá da configuração acima se
# o usuário poderá ou não acessar o servidor)
deny-email usuario@conectiva.com.br
deny-email info@conectiva.com.br
deny-email suporte@conectiva.com.br

# Define se um diretório tem ou não permissão para realizar "uploads"
# upload [absolute|relative] [class=<classname>]... [-] <root-dir> <dirglob>
# <yes|no> <owner> <group> <mode> ["dirs"|"nodirs"] [<d_mode>]
# Não permitir upload
upload /var/ftp *              no
# Permitir upload no diretório incoming
upload /var/ftp /incoming      yes ftp daemon 0666
# Permitir upload e criação de subdiretórios no diretório incoming/gifs
upload /var/ftp /incoming/gifs yes jlc guest  0600 nodirs

# Define a taxa máxima de transferência para determinados arquivos, caso
# utilize-se "*" é válido como todos os arquivos do diretório definido
throughput /e/ftp *    *      oo   -   *
# Taxa de transferência máxima para todos os arquivos localizados no
# diretório /e/ftp
throughput /e/ftp /sw* *      1024 0.5 *
# Taxa de transferência máxima = 1024 bps para todos os arquivos localizados
# em /e/ftp/sw
throughput /e/ftp /sw* README oo   -   *
# Taxa de transferência máxima para arquivos chamados README
throughput /e/ftp /sw* *      oo   -   *.foo.com
# Taxa de transferência máxima para usuários do domínio foo.com
# Os caraceteres "oo" significam que não há restrição e "-","0.5" são os
# fatores por qual será multiplicado o valor de bps definido para cada nova
# transferência realizada no diretório indicado

# Define o diretório raiz (/) de usuários anônimos, onde real e rmtusers são
# classes de usuários
anonymous-root /home/ftp/uploads real
anonymous-root /home/ftp/pub rmtusers

# Define o diretório raiz de usuários convidados, pode ser passado o
# parâmetro de um intervalo de id's dos usuários
guest-root /home/users
# Define para todos os usuários o diretório raiz = /home/users
guest-root /home/staff %100-999 usuario
# Define para os usuários com id >= 100 e <= 900 e o usuário usuario a raiz
# = /home/staff
guest-root /home/users/barea/ftp barea
# Define para o usuário barea o diretório raiz = /home/users/barea

# Permite ou não o acesso de usuários através de seus id's, gid's ou nome
# (usuário e grupo)
deny-gid %-99 %65535
deny-uid %-99 %65535
allow-gid ftp
allow-uid ftp

# Permite ou não o acesso de usuários além de seu home
restricted-uid usuario
unrestricted-gid root
------------------------------------------------------------------------------------------
/etc/ftpconversions < -------- É a "base de dados" do serviço ftpd

:.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
:   : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: :  :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
:   : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
:   : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
:   : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
:   : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP

Sintaxe do arquivo:

           Campo          Descrição
             1             strip prefix
             2             strip postfix
             3             addon prefix
             4             addon postfix
             5             external command
             6             types
             7             options
             8             description

------------------------------------------------------------------------------------------
/etc/ftpgroups

# test:ENCRYPTED PASSWORD HERE:archive

------------------------------------------------------------------------------------------
/etc/ftphosts < ----- Arquivo que contém regras para o login de usuários/máquinas

# Example host access file

# Everything after a '#' is treated as comment,
# empty lines are ignored

# Habilita o login das máquinas addrglob com apenas o usuário X
# allow <username> <addrglob> [<addrglob> ...]
allow gonzalez 192.168.255.0:255.255.255.0

# Desabilita o login de qualquer máquina que utilize-se do usuário X
# deny <username> <addrglob> [<addrglob> ...]
deny luciano 192.168.255.0:255.255.255.0

------------------------------------------------------------------------------------------
/etc/ftpusers < -------- Arquivo que contém o nome dos usuários que não podem realizar ftp

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

------------------------------------------------------------------------------------------
/etc/logrotate.d/ftpd

/var/log/xferlog {
    # ftpd doesn't handle SIGHUP properly
    nocompress
}

------------------------------------------------------------------------------------------
/etc/pam.d/ftp < ------- Arquivo utilizado para a autenticação dos usuários via ftp ?

#%PAM-1.0
auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib/security/pam_pwdb.so shadow nullok
auth       required     /lib/security/pam_shells.so
account    required     /lib/security/pam_pwdb.so
session    required     /lib/security/pam_pwdb.so


Página seguinte Página anterior Índice