### Versão 7.0 ###
A primeira coisa a fazer é verificar se os pacotes
necessários estão instalados:
[root@localhost]# rpm -qa | grep ftp
anonftp-3.0-4cl
wu-ftpd-2.6.1-1cl
linuxconf-wuftpd-1.21r8-7cl
|
Deverá aparecer pelo menos estes três pacotes. Se
algum deles não aparecer, então será
necessários instalar o pacote (ou pacotes) que está
faltando. É preciso montar o CD 1 do Conectiva Linux:
[root@localhost]# mount /mnt/cdrom
[root@localhost]# cd /mnt/cdrom/conectiva/RPMS
|
Agora é só instalar os pacotes que estão
faltando:
[root@localhost]# rpm -ivh anonftp*
[root@localhost]# rpm -ivh wu-ftpd*
[root@localhost]# rpm -ivh linuxconf-wuftpd*
|
Execute o comando rpm como acima para
cada pacote a ser instalado. Após instalar, verifique se
existe a linha :
no arquivo /etc/services, pois
é onde está sendo definida a porta de ftp. Verifique
se a mesma não está comentada (tire o # da frente da
linha, se este caracter existir). 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]# cds
[root@localhost]# ./inet stop
[root@localhost]# ./inet start
|
Pronto, seu servidor de ftp está em funcionamento, com as
configurações básicas (padrões). Agora
é preciso executar o linuxconf para configurar/personalizar
o servidor de ftp:
[root@localhost]# linuxconf
|
Vá em:
+++
Na aba "Diversos" existe as seguintes opções:
"Email do administrador": endereço de correio
eletrônico do administrador do sistema.
"Grupo de convidados": aqui você pode informar o grupo do
Linux ao qual o usuário anonymous pertencerá. Se este
campo não for preenchido, o grupo nobody será
utilizado.
"Arquivo de banner": o conteúdo do arquivo de banner
será mostrado aos usuários no momento em que os
mesmos acessarem com sucesso o seu servidor.
"Mensagem de encerramento": se o arquivo informado existir,
sempre que um usuário tentar acessar o servidor, seu
conteúdo será mostrado e o servidor irá fechar
a conexão.
"Permitir acesso anônimo": aqui você pode permitir
ou proibir os acessos anônimos (por isso o pacote
anonftp-3.0-4cl deve estar instalado).
Agora, na aba "Controles de acesso" existe três classes de
usuários:
"Usuários reais": controle de acesso dos usuários
reais do seu sistema. Esses são os usuários que
têm contas em sua rede.
"Usuários convidados": controle de acesso a
usuários convidados.
"Anônimos": controle de acesso de usuários que se
conectam anonimamente.
As opções disponíveis para cada grupo
são idênticas. As opções
disponíveis são:
"pode requisitar arquivos comprimidos": define se o
usuário pode requisitar que seus arquivos sejam compactados.
O WU-FTPD permite a compactação de arquivos durante a
transmissão.
"pode requisitar arquivos tar": especifica se o usuário
tem permissão de solicitar o arquivamento de arquivos
transmitidos com o tar.
"pode usar chmod para arquivos":especifica se o usuário
pode modificar as permissões de arquivos localizados no
servidor FTP.
"pode excluir arquivos": define se o usuário tem
permissão de apagar arquivos localizados no servidor
FTP.
"pode atualizar arquivos": define se o usuário pode
sobrescrever arquivos no servidor.
"pode renomear arquivos": especifica se o usuário pode
modificar o nome dos arquivos localizados no servidor.
"registrar transferências recebidas": especifica se o
servidor deve manter um registro de arquivos recebidos.
"registrar transferências expedidas": especifica se o
servidor deve manter um registro de arquivos enviados.
Na aba "Vários tempos de espera" pode-se deixar os tempos
padrões ou alterar conforme o necessário.
Clique em "Aceitar" e saia do linuxconf.
Servidores Virtuais
===================
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 (DNS).
[root@localhost]# linuxconf
|
Vá em:
Configuração -> Ambiente de rede -> Wu-ftp -
servidor de ftp -> Máquinas virtuais
Clique em adicionar.
Nos campos:
"Máquina virtual": digite o nome da máquina
(virtual machine).
"Caminho do arquivamento": diretório para acesso do
servidor de ftp.
"Arquivo da mensagem de banner": nome do arquivo de banner.
"Arquivo de registro": nome do arquivo de registro.
Clique em "Aceitar" e saia do linuxconf. Se o seu DNS estiver
funcionando corretamente o novo nome para o ftp virtual
funcionará sem problemas.
Caso seja necessária alguma outra
configuração específica que não exista
no linuxconf, pode-se editar diretamente o arquivo de
configuração. Primeiramente faça a checagem
dos pacotes instalados e inet configurado e startado conforme
indicado no início deste documento. Depois disso, o 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
# Para limitar o número máximo de usuários
conectados simultaneamente, por
# classe:
# Onde < class > é a classe na qual deseja-se
limitar
# < n > é o número máximo de
usuários
# < arquivo_de_mensagem > é a mensagem a ser
exibida caso a conexão seja
# negada limit < class > < n > Any <
arquivo_de_mensagem >
# 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 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:
# http://andrew2.andrew.cmu.edu/rfc/rfc931.html timeout RFC931
10
# Quantidade de arquivos máxima que um usuário da
classe <class > pode
# transferir, onde < tipo > pode ser um dos seguintes:
# [raw] total: total de arquivos (entrada + saída)
# [raw] out: saída
# [raw] in: entrada
# No caso de especificar raw, será considerado o
tráfego total, e não
# apenas os arquivos transferidos file-limit < tipo > <
valor > < class >
Ex:
file-limit total 10 all Especifica um máximo de 10
arquivos transferidos para os usuários da classe "all".
file-limit raw total 15 all
Especifica um máximo de 15 arquivos transferidos (total,
incluídos os arquivos de avisos do sistema) para os
usuários da classe "all"
# Quantidade de bytes máxima que um usuário da
classe < class > pode
# transferir, onde < tipo > pode ser um dos seguintes:
# [raw] total total de arquivos (entrada + saída)
# [raw] out saída
# [raw] in entrada
# No caso de especificar raw, será considerado o
tráfego total, e não
# apenas os arquivos transferidos data-limit < tipo > <
valor > < class >
# 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
# %B número absoluto em blocos de disco alocados
# %b limite preferido em blocos de disco
# %Q Contagem de bloco corrente
# %I número máximo de inodes alocados (+1)
# %i limite de inode preferido
# %q número corrente de inodes alocados
# %H limite de tempo para uso excessivo de disco
# %h limite de tempo para arquivos excessivos
# 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 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 ftp.
# virtual < address > allow < username > [<
username > ...]
# virtual < address > deny < username > [<
username > ...] virtual ftp.suporte allow * virtual 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 ftp.suporte private
# Define os usuários que podem ou não ter acesso
ao servidor de 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 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 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 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:
# 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 >]
# Nos casos abaixo, var/ftp é o diretório raiz do
usuário, e /incoming e
# /incoming/gifs são diretórios contidos dentro da
raiz.
# nodirs não permite a criação de
diretórios.
# Não permitir upload upload /var/ftp * no
# Permitir upload no diretório incoming upload /var/ftp
/incoming yes * * 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 determinados usuários
além de seu home restricted-uid < usuario
>>unrestricted-gid < usuario >
# Onde < usuario> pode ser * (todos)
------------------------------------------------------------------------------------------
/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
|