(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

153. Configurando o seu computador Linux como um servidor NCP.

Existem dois pacotes disponíveis que permitem ao Linux fornecer as funções de servidores de arquivo Novell. Ambos permitem que você compartilhe arquivos no seu Linux com usuários que estejam usando o software de cliente Novell NetWare. Os usuários podem ligar e mapear os sistemas de arquivo para parecerem como controladores locais nas suas máquinas como eles apareceriam para um sistema de arquivo Novell real. Talvez você queira experimentar os dois para ver qual deles é melhor para o seu propósito.

153.1 O pacote mars_nwe.

Martin Stover <mstover@freeway.de> desenvolveu o mars_nwe para capacitar o Linux para fornecer os arquivos e serviços de impressão para clientes NetWare.

Se você está querendo saber o nome: mars_nwe é Martin Stovers Netware Emulator.

Capacidade para mars_nwe.

mars_nwe implementa uma sub-rede do NCP Novell para serviços de arquivo bindery baseado em disco e também serviços de impressão. Parece que contém problemas, mas existem muitas pessoas usando isto e o número de problemas está decrescendo constantemente à medida que novas versões estão sendo divulgadas.

Obtendo o mars_nwe.

Você pode obter o mars_nwe proveniente do ftp.gwdg.de ou do ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/.

A versão vigente no momento da escrita deste documento era: mars_nwe-0.98.pl8.tgz.

Construindo o pacote mars_nwe.

Construa um kernel com Ethernet e Suporte IPX

Na versão do kernel 1.2.13 você precisa somente se certificar que tenha respondido Y para a questão: 'The IPX protocol' e N para a questão: `Full internal IPX network' como ilustrado:

 ...
 ...
The IPX protocol (CONFIG_IPX) [n] y
 ...
 ...
 Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
 ...
 ...
Nos kernels mais novos, é adotado um processo similar porém o texto real da linha de comando pode ter mudado um pouco.

Você necessitará também se certificar que incluiu um controlador apropriado para a sua placa Ethernet. Se você não sabe como fazer isto, leia o COMO FAZER Ethernet.

Você pode então continuar a construir o seu kernel. Lembre-se de fazê-lo executar para instalá-lo quando você tiver terminado.

Descompacte o pacote mars_nwe usando o Tar.

# cd /usr/src
# tar xvfz mars_nwe-0.98.pl3.tgz

Faça mars_nwe.

Para fazer o pacote é muito simples. O primeiro passo é simplesmente executar make, isto criará para você um arquivoconfig.h. Então você deve examinar e editar o arquivo config.h, se for necessário. Isto permite que você configure itens tais como diretórios de instalação que serão usados e o número máximo de sessões e volumes que o servidor suportará. As entradas que realmente devem ser vistas são:

FILENAME_NW_INI       a localização do arquivo de inicialização.
PATHNAME_PROGS        onde os programas de suporte executável serão encontrados.
PATHNAME_BINDERY      onde irão os arquivos 'bindery'.
PATHNAME_PIDFILES     o diretório para os arquivos 'pid' serem escritos.
MAX_CONNECTIONS       o número máximo de conexões simultâneas permitidas.
MAX_NW_VOLS           o número máximo de volumes mars_nwe que suportará.
MAX_FILE_HANDLES_CONN o número máximo de arquivos abertos por conexão.
WITH_NAME_SPACE_CALLS se você quer suportar clientes ncpfs.
INTERNAL_RIP_SAP      se você quer mars_nwe para fornecer roteamento rip/sap.
SHADOW_PWD            se você usa senhas protegidas ou não.

Os padrões provavelmente estarão ok, mas você deve verificá-los de qualquer modo.

Quando isto estiver feito:

# make
# make install

Isto construirá os servidores e os instalará no diretório apropriado. O programa de instalação também instala o arquivo de configuração /etc/nwserv.conf.

Configure o servidor

A configuração é razoavelmente simples. Você precisa editar o arquivo/etc/nwserv.conf. O formato deste arquivo pode, a princípio, parecer um pouco oculto, mas ele é razoavelmente direto. O arquivo contém uma linha de itens de configuração. Cada linha é delimitada por espaço em branco e inicia com um número que indica o conteúdo da linha. Todos os caracteres seguindo um caractere '#' são considerados um comentário e são ignorados. Martin fornece um exemplo de arquivo de configuração no pacote, mas eu apresentarei o que eu considero ser um exemplo simplificado para oferecer uma alternativa para você.

# VOLUMES (max. 5)
# Só o volume SYS é compulsório. O diretório contendo o  volumeSYS
# deve conter os diretórios: LOGIN, PUBLIC, SYSTEM, MAIL.
# A opção 'i' ignora a letra (o tamanho).
# A opção 'k' converte todos os nome de arquivos em requisitos NCP para minúscula.
# A opção 'm' marca o volume como removível (útil para cd-ROMs etc.).
# A opção 'r' dispõe o volume para somente leitura.
# A opção 'o' indica que o volume é um simples sistema de arquivo montado.
# A opção 'P' permite comandos para serem usados como arquivos.
# A opção 'O' permite o uso do espaço nome OS/2.
# A opção 'N' permite o uso do espaço nome NFS.
# O padrão é maiúscula.
# Sintaxe:
#    1 <Nome>       <Diretório>    <Opções> 

1   SYS         /home/netware/SYS/               # SYS
1   DATA        /home/netware/DATA/      k       # DATA
1   CDROM       /cdrom                   kmr     # CDROM

# NOME DO SERVIDOR
# Se não configurado o nome da máquina Linux será convertido para maiúsculas
# e usado. Isto é opcional, o nome da máquina será usado se não estiver
# configurado.
# Sintaxe:
#    2 <Nome do Servidor>

2   LINUX_FS01

# ENDEREÇO DA REDE INTERNA
# O endereço de Rede Interna IPX é uma característica que simplifica o roteamento IPX 
# para máquinas multihomed (máquinas que têm portas em mais de uma rede IPX).
# Sintaxe:
#    3 <End. da Rede Interna> [<Número do Nó>]      
# ou:
#    3 auto
#
# Se você usa 'auto' então o seu endereço de máquina IP será usado. NOTA: isto pode 
# ser perigoso. Certifique-se de pegar um número único para a sua rede.
# Os endereços são 4byte hexadecimal (o 0x é necessário).

3   0x49a01010  1


# DISPOSITIVO(S) DE REDE
# Esta entrada configura a sua rede IPX. Se você já tiver a sua 
# rede IPX configurada então você não precisa disto. É o mesmo que 
# usar ipx_configure/ipx_interface antes de você iniciar o servidor.
# Sintaxe:
#    4 <Número IPX da Rede> <nome_dispositivo>  <frametype> [<ticks>]
#                         Frame types: ethernet_ii, 802.2, 802.3, SNAP

4  0x39a01010  eth0  802.3  1

# GUARDE AS ROTAS IPX DEPOIS QUE O SERVIDOR ESTÁ PRONTO
# Sintaxe:
#    5 <status>
#       0 = não guarda rotas, 1 = guarda rotas

5 0

# VERSÃO NETWARE 
# Sintaxe:
#    6 <versão> 
#      0 = 2.15, 1 = 3.11

6 1

# MANEJANDO SENHAS
# Os clientes Dos da Novell reais suportam uma característica que encripta a sua
# senha quando ela é trocada. Você pode selecionar se quer que o seu 
# servidor mars suporte esta característica ou não.
# Sintaxe
#    7 <status>
#    <status> é:
#        0 força a encriptação de senha; os clientes não podem mudar as senhas.
#        1 força a encriptação da senha, permite a mudança de senhas não encriptadas.
#        7 permite senhas não encriptadas mas não senhas vazias.
#        8 permite senhas não encriptadas incluindo senhas vazias.
#        9 senhas completamente não encriptadas (não executa com OS/2).

7 1

# DIREITOS MÍNIMOS GID UID (identificação G identificação  U)
# Permissões usadas para ligações sem acesso. Estas permissões 
# serão usadas para os arquivos no seu servidor de ligação primária.
# Sintaxe:
#    10 <gid>
#    11 <uid>
#    <gid> <uid> são provenientes de grupos /etc/passwd, /etc/.

10  200
11  201

# senha SUPERVISOR 
# Pode ser removida depois que o servidor tenha iniciado uma vez. O servidor
# encriptará esta informação no arquivo bindery depois que ele tenha executado.
# Você deve evitar o uso do usuário 'root' e em seu lugar usar outra
# contabilização para administrar o servidor de arquivo mars.
#
# Esta entrada é lida e encriptada dentro dos arquivos de servidor bindery, então
# ela só precisa existir a primeira vez que você inicia o servidor para assegurar
# que a senha não foi roubada.
#
# Sintaxe:
#    12 <Supervisor-Login> <Username no Unix> [<senha>]      

12  SUPERVISOR  terry  secreto

# CONTAS DE USUÁRIOS
# Associa os acessos NetWare com contabilidade Unix. A senha é 
# opcional.
# Sintaxe:
#    13 <Login_Usuário>  <Username no Unix> [<senha>]       

13  MARTIN martin
13  TERRY  terry  

# CONFIGURAÇÃO DO ADMINISTRADOR DE SISTEMAS
# Se você tem um número grande de usuários e não pode ser incomodado usando
# o tipo 13 para mapeamentos individuais,  você pode automaticamente mapear 
# acessos mars_nwe para nomes de usuários Linux. Porém, não existe atualmente maneira de fazer
# uso da senha de acesso Linux, assim todos os usuários configurados deste modo 
# usarão a senha única fornecida aqui. Minha recomendação é não
# fazer isto a não ser que você não tenha nenhuma preocupação com segurança.
# Sintaxe:
#    15 <status> <senha comum>
#    <status> é: 0  - não mapeia automaticamente usuários.
#                1  - mapeia automaticamente usuários não configurados acima.
#                99 - mapeia automaticamente cada usuário nesta maneira.

15  0  duzzenmatta

# CHECAGEM       
# O mars_nwe automaticamente garantirá que alguns diretórios existem se 
# você aponta esta direção.
# Sintaxe:
#    16 <status>
#    <status> é  0 para não, ou 1 para sim.

16  0

# CONSULTAS DE IMPRESSÃO
# São impressoras NetWare associadas com impressoras Unix. As consultas aos 
# diretórios de série devem ser criados manualmente antes que a impressão seja tentada.
# Os diretórios de série NÃO são séries lpd.
# Sintaxe:
#    21 <nome> <diretório> <comando_Unix>               

21  EPSON  SYS:/PRINT/EPSON lpr -h
21  LASER  SYS:/PRINT/LASER lpr -Plaser

# STATUS DE ERROS
# Estes não são normalmente necessários mas podem ser úteis se você estiver solucionando um problema.
# Sintaxe:
#    <item> <status>               
#
#    100 = IPX KERNEL
#    101 = NWSERV
#    102 = NCPSERV
#    103 = NWCONN
#    104 = start NWCLIENT
#    105 = NWBIND
#    106 = NWROUTED
#                 0 = incapacita debug, 1 = capacita debug

100 0
101 0
102 0
103 0
104 0
105 0
106 0

# EXECUTE O  NWSERV E USE O ARQUIVO DE REGISTROS 
# Sintaxe:
#    200 <status>
#        0 = executa NWSERV na experiência e não usa arquivo de acesso.
#        1 = executa NWSERV na experiência anterior e usa arquivo de acesso.

200  1

# NOME DO ARQUIVO DE REGISTROS
# Sintaxe:
#    201 <arquivo de registros>

201  /tmp/nw.log

# ANEXA REGISTRO OU SOBRESCREVE
# Sintaxe:
#    202 <status>
#        0 = junta ao arquivo de acesso existente.
#        1 = sobrescreve  o arquivo de acesso existente.

202  1

# TEMPO DE DESLIGAMENTO DO SERVIDOR        
# Este item ajusta o tempo depois que um SERVIDOR DESLIGADO é distribuído para que o  servidor realmente desligue. 
# Sintaxe:
#    210 <tempo>
#        em segundos. (padrão 10)

210  10

# INTERVALO DE ROTEAMENTO EM BROADCASTS
# Tempo contado em segundos entre servidores broadcasts.
# Sintaxe:
#    211 <tempo>
#        em segundos. (padrões 60)

211  60

# INTERVALO DE ROTEAMENTO DE ACESSO
# Indique quantas broadcasts acontecem antes que o acesso de 
# informações de roteamento ocorra.
# Sintaxe:
#    300  <número>

300  5

# ARQUIVO DE ACESSO DE ROTEAMENTO
# Indica o nome do arquivo de acesso de roteamento.
# Sintaxe:
#    301 <nome_arquivo>

301  /tmp/nw.routes

# ANEXAR/SOBRESCREVER
# Indica se você quer juntar a um arquivo de acesso já existente ou
# sobrescrevê-lo.
# Sintaxe:
#    302 <status>
#        <status> 0 é para anexar, 1 para criar/sobrescrever.

302  1

# TEMPO DE WATCHDG
# Indique o tempo para as mensagens de proteção watchdg que garantem que a rede
# ainda está viva.
# Sintaxe:
#    310 <valor>
#        <valor> =   0 - sempre manda proteção watchdogs.
#                  < 0 - (-ve) para proteções watchdogs incapacitadas.
#                  > 0 - manda proteções quando o tráfego da rede.

310  7

# ARQUIVO DE ESTAÇÕES
# Indica o nome do arquivo para o arquivo de estações que determina para qual
# computador este servidor de arquivo agirá como um servidor de arquivo primário.
# A sintaxe deste arquivo está descrita em diretórios 'exemplos' 
# de código de fonte.
# Sintaxe:
#    400 <nome_arquivo>

400  /etc/nwserv.stations

# OBTENHA O SERVIDOR DE ARQUIVOS MANEJADOS MAIS PRÓXIMOS
# Indique como Requisitos do SAP  o Servidor de Arquivo manejados mais Próximo.
# Sintaxe:
#    401 <status>
#        <status> é: 0 - incapacita requisitos 'Get Nearest Fileserver'.
#                    1 - O arquivo 'stations'  lista estações a serem excluídas.
#                    2 - O arquivo 'stations' lista estações a serem incluídas.

401  2

Inicia o servidor

Se você tinha configurado o servidor para esperar programas externos para configurar sua rede e/ou fornecer função de roteamento, então você deve iniciá-los antes de iniciar o servidor. Supondo que você tenha configurado o servidor, então para que ele configure suas interfaces para você e forneça os serviços de roteamento você precisa somente divulgar o comando:

# nwserv

Teste o servidor

Para testar o servidor você deve primeiro tentar juntar um acesso proveniente de um cliente NetWare na sua rede. Então você indica um CAPTURE proveniente do cliente e tenta uma impressão. Se você obtiver êxito em ambos, então o servidor está funcionando.

153.2 O pacote lwared.

Ales Dryak <A.Dryak@sh.cvut.cz> desenvolveu lwared para permitir que Linux funcione como um servidor de arquivo baseado em NCP.

Ales tinha chamado seu pacote de lwared, uma abreviação para LinWareDaemon.

Capacitação do lwared.

O servidor lwared é capaz de fornecer uma sub-rede de função total do NCP Novell. Ele incorpora mensagens mas não fornece nenhuma facilidade de impressão. Ele não funciona muito bem atualmente nem com os clientes do Windows95 nem com os clientes NT Windows. O servidor lwared confia em programas externos para construir e atualizar o roteamento IPX e tabelas SAP. Clientes mal intencionados podem causar dano no servidor. Pensando nisto, facilidades de tradução dos nomes de arquivos não foram incluídas.

O servidor trabalha para ambientes de trabalho NETX e VLM NetWare.

Obtendo lwared

O pacote lwared pode ser construído para qualquer kernel mais novo que 1.2.0. Eu recomendo que você use a versão 1.2.13 onde não são requisitadas emendas de kernel. Algumas funcionalidades do IPX foram mudadas com a versão dos kernels 1.3.* e isto significa que agora as emendas são requeridas para fazê-los trabalhar direito. As emendas apropriadas estão incluídas para o novo kernel, assim, se você tem que usar um kernel alfa, você ainda pode pegar lwared para trabalhar para você.

Você pode obter o pacote lwared pelo ftp anônimo proveniente de: klokan.sh.cvut.cz

ou de:

sunsite.unc.edu ou de sites espelho. A versão vigente no momento da escrita deste documento era: lwared-0.95.tar.gz.

Construção lwared

Descompacte usando tar o lwaredpacote

Algo como:

# cd /usr/src
# tar xvpfz lwared-0.95.tar.gz

Construa um kernel com suporte Ethernet e IPX

Se você estiver usando um kernel alfa 1.3.* então você deve tentar e usar a versão kernel 1.3.17 ou mais nova porque as emendas fornecidas foram construídas contra ele. Os kernels 1.3.* mais velhos que 1.3.17 requisitarão emenda manual para instalar (estão incluídas algumas informações sobre como fazer isto no arquivo INSTALL no pacote). Para instalar as emendas contra um kernel 1.3.17 ou mais novo, você deve tentar:

#fazer emendas

Depois de aplicar as emendas necessárias, a próxima coisa que você precisa fazer é assegurar-se que o seu kernel tenha sido construído com suporte IPX capacitado. No kernel versão 1.2.13 você precisa somente se assegurar que você tenha respondido Y para a questão: 'The IPX protocol' conforme ilustrado:

 ...
 ...
Assume que sub-redes são locais (CONFIG_INET_SNARL) [y]
Incapacita algoritmo NAGLE (normalmente capacitado) (CONFIG_TCP_NAGLE_OFF) [n]
O protocolo IPX (CONFIG_IPX) [n] y
*
* suporte a SCSI
 ...
 ...
Nos kernels mais novos, um processo similar é adotado; o texto atual da linha de comando pode ter mudado ligeiramente.

Você precisa também se certificar que incluiu um programa de controle apropriado para a sua placa Ethernet. Se você não sabe como fazer isto, então leia o COMO FAZER Ethernet.

Você pode então prosseguir com a construção do seu kernel. Lembre-se de funcionar lilo para instalá-lo quando você tiver terminado.

Compile e instale o lwared

Para compilar o lwared você deve primeiro verificar e editar, se for necessário, o arquivo server/config.h. Este arquivo contém várias colocações que governarão a maneira que o seu servidor se comportará quando estiver funcionando. Os padrões são razoáveis, entretanto, você pode querer checar se os diretórios específicos para os arquivos de acesso e configuração se encaixam no seu sistema.

# make depend
# make
# make install
Eu descobri que o 'make depend' reclama por não encontrar o arquivo float.h no meu sistema mas de qualquer maneira, parece funcionar. Eu também descobri que quando eu tentei compilar com gcc 2.6.3, que tinha trocado a linha:
#include <net/route.h>
por
#include <net/if_route.h>
no lib/ipxkern.c, este arquivo trocou de nome algumas vezes.

O 'make install' tentará instalar o servidor e os programas de roteamento daemon dentro do seu diretório /usr/sbin, o programa lwpasswd dentro do seu diretório /usr/bin, os programas utilitário IPX serão instalados dentro do seu diretório /sbin e então as páginas manuais irão dentro da estrutura de diretório /usr/man. Se nenhuma destas localizações estão compatíveis com o seu sistema, então você deve editar o Makefile e mudar a meta dos seus diretórios para adaptá-los.

Configurando e usando o lwared

Agora a diversão!

Configurando a rede IPX

A primeira coisa que você deve fazer é configurar as suas interfaces Ethernet para suportar as redes IPX que o seu servidor suportará. Para fazer isto, você precisará conhecer os endereços de rede IPX para cada um dos seus segmentos LAN, quais dispositivos Ethernet (eth0, eth1, etc.) estão em que segmento, que tipo de estrutura (802.3, EtherII, etc.) cada segmento LAN usa e que endereço de Rede Interna o seu servidor deve usar (isto é realmente necessário se o seu servidor prestará serviços para mais de um segmento LAN). A configuração para um servidor que está em dois segmentos diferentes com endereços de rede IPX 23a91300, 23a91301 e endereço de rede interna bdefaced pode parecer:

/
# ipx_internal_net add BDEFACED 1
# ipx_interface add eth0 802.3 23a91300
# ipx_interface add eth1 etherii 23a91301

Inicie o servidor de roteamento

O software kernel faz ele mesmo o reenvio do pacote IPX do mesmo modo que faz para o IP, mas o kernel requer programas adicionais para administrar a atualização de tabelas de roteamento. No caso do IPX, são necessários dois servidores e ambos são fornecidos com o lwared: o ipxripd administra a informação de roteamento IPX e o ipxsapd administra a informação SAP. Para iniciar os servidores você precisa somente especificar a localização onde eles devem escrever seus registros de mensagens:

# ipxripd /var/adm/ipxrip
# ipxsapd /var/adm/ipxsap

Configure o lwared servidor

Existem dois arquivos que você deve configurar manualmente para permitir acesso de usuário para o seu servidor lwared. Eles são:

/etc/lwpasswd

É onde a informação de contabilização do usuário LinWare é mantida. O programa lwpasswd serve para mantê-lo atualizado. Na sua forma simples, o arquivo /etc/lwpasswd parece como:

ales:
terryd:
guest:
Seu formato é uma lista de identificação de acesso simples seguida pelo caractere ':' e depois pela versão encriptada da senha de acesso. Muita atenção aqui: sem senha encriptada significa sem senha. Usuários LinWare devem ter contabilização Linux, isto é, qualquer usuário que você coloque em /etc/lwpasswd deve também aparecer em /etc/passwd e root é a única contabilização que pode mudar a senha de outro usuário LinWare. Se você está acessado como root, você pode mudar a senha de um usuário LinWare como esta transcrição demonstra:
# lwpasswd rodg
Mudança de senha para RODG
Entre a nova senha: 
Re-digite a nova senha: 
Senha mudada.
/etc/lwvtab

Esta é a tabela de volumes LinWare e ela guarda informações sobre que diretório deve se tornar disponível para usuários LinWare (este arquivo é similar ao arquivo NFS /etc/exports). Um simples exemplo de seu formato é o seguinte:

SYS             /lwfs/sys
DATA            /lwfs/data
HOME            /home
O formato é simples: nome do volume seguido de espaço em branco seguido de diretório Linux para exportar. Você deve ter no mínimo uma entrada para o volume SYS para o servidor iniciar. Se você pretende que o seu usuário baseado em DOS seja capaz, use o seu servidor LinWare como seu servidor primário então você deve instalar uma estrutura de diretório de volume padronizada SYS logo abaixo do diretório que você exportou como seu SYS volume. Como estes arquivos são de propriedade da corporação Novell e possuem direitos autorais, você deve obter uma licença para eles. Se os seus usuários irão usar um servidor de arquivo Novell como seus servidores primários, então isto não será necessário.

Inicia o servidor lwared

# lwared
É quase um anticlimax não é? Ok, então você tem uma pergunta, certo? Qual é o nome do servidor que está sendo anunciado? Se você iniciou o servidor como foi mostrado, então o nome do servidor LinWare sendo anunciado será baseado no que foi retornado pelo Linux hostname. Se você gostaria que ele fosse alguma coisa mais, então você tem que dar ao servidor o nome quando você o inicia. Por exemplo:
# lwared -nlinux00
iniciará o servidor com o nome linux00.

Teste o servidor lwared

A primeira coisa para testar é se o seu servidor LinWare aparece em um slist proveniente de um cliente DOS na sua rede. O programa slist é guardado no volume SYS do servidor de arquivo Novell. Então você deve fazer isto de uma máquina que já está registrada em algum lugar. Se não der certo, então cheque se ipxsapd e lwared estão ambos executando. Se o slist der certo, então você deve tentar juntar ao servidor e mapear um volume:

C:> attach linux00/ales
 ...
 ...
C:> map l:=linux00/data:
C:> l:
Você agora deve ser capaz de tratar o novo mapeamento da mesma maneira que você trata qualquer outro. O arquivo de permissão que você terá se baseará naqueles permitidos da contabilização Linux que compara a inicialização do seu LinWare.


Página seguinte Página anterior Índice