Avanti Indietro Indice

10. Configurazione della macchina Linux come server NCP

Sono disponibili due pacchetti che consentono a Linux di fornire le funzionalità di un file server Novell. Entrambi permettono di condividere file sulla propria macchina Linux con utenti che utilizzano il software client NetWare di Novell. Gli utenti possono fare in modo che dei file system appaiano come dischi locali sulle proprie macchine, proprio come farebbero con un reale file server Novell. Utilizzandoli entrambi, è possibile rendersi conto di quale dei due meglio soddisfa le proprie esigenze.

10.1 Il pacchetto mars_nwe

Martin Stover (mstover@freeway.de) ha sviluppato mars_nwe per consentire a Linux di fornire ai client NetWare sia servizi di file, che servizi di stampa.

Il nome mars_nwe significa Martin Stovers Netware Emulator.

Capacità di mars_nwe

mars_nwe implementa un sottoinsieme del più completo NCP Novell per servizi di file e di bindery basati su dischi o anche di stampa. Probabilmente contiene errori, tuttavia attualmente viene utilizzato da molte persone, pertanto il numero di errori è in continua diminuzione man mano che vengono rilasciate nuove versioni.

Come ottenere mars_nwe

È possibile ottenere mars_nwe da ftp.gwdg.de /pub/linux/misc/ncpfs/ o da sunsite.unc.edu /pub/Linux/system/filesystems/ncpfs/.

La versione nel momento in cui questo documento viene scritto è: mars_nwe-0.98.pl10.tgz.

Come compilare il pacchetto mars_nwe

Compilazione di un kernel con supporto Ethernet e IPX

Con un kernel di versione 1.2.13 è sufficiente assicurarsi di aver risposto ``Y'' alla domanda: The IPX protocol e ``N'' alla domanda: Full internal IPX network, come di seguito descritto:

 ...
 ...
The IPX protocol (CONFIG_IPX) [n] y
 ...
 ...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
 ...
 ...

In kernel più recenti viene adottato un processo simile ma il testo del messaggio potrebbe essere leggermente diverso.

È anche necessario includere il driver appropriato per la propria scheda Ethernet. Maggiori dettagli sono presenti in Ethernet-HOWTO.

Dopo di che è possibile procedere con la compilazione del kernel. Ricordarsi, una volta terminata l'operazione, di eseguire lilo per installarlo.

Esecuzione del comando tar per il pacchetto mars_nwe

# cd /usr/src
# tar xvfz mars_nwe-0.99.pl10.tgz

Esecuzione del comando make per mars_nwe

Si tratta di un'operazione molto semplice. Il primo passo consiste nell'eseguire semplicemente make, che creerà un file config.h. Assicurarsi della presenza del file e modificarlo se necessario. Il file consente di impostare oggetti come, per esempio, le directory di installazione o il numero massimo di sessioni e unità che il server sarà in grado di supportare. Gli inserimenti veramente importanti da guardare sono:

FILENAME_NW_INI         locazione del file di inizializzazione
PATHNAME_PROGS          percorso in cui trovare i programmi eseguibili
                        di supporto
PATHNAME_BINDERY        percorso a cui indirizzare i file "bindery"
PATHNAME_PIDFILES       directory in cui scrivere i file "pid"
MAX_CONNECTIONS         numero massimo di connessioni simultanee ammesse
MAX_NW_VOLS             numero massimo di unità che mars_nwe potrà
                        supportare
MAX_FILE_HANDLES_CONN   numero massimo di file aperti per connessione
WITH_NAME_SPACE_CALLS   se si desidera supportare i client ncpfs
INTERNAL_RIP_SAP        se si desidera che mars_nwe fornisca routing
                        rip/sap
SHADOW_PWD              se si utilizzano shadow password.

Le impostazioni predefinite dovrebbero andare bene, tuttavia è sempre meglio controllare. Una volta fatto, con i comandi

# make
# make install

si eseguiranno la compilazione dei server e l'installazione nelle directory appropriate. Verrà anche installato il file di configurazione /etc/nwserv.conf.

Configurazione del server

La configurazione è piuttosto semplice: consiste nel modificare il file /etc/nwserv.conf. Il formato di questo file a prima vista appare enigmatico, ma in realtà è molto lineare. Il file contiene diverse istruzioni di configurazione composte da una sola riga. Ogni riga è delimitata da spazi bianchi e inizia con un numero che indica l'argomento da impostare. Tutti i caratteri che seguono un "#" sono considerati un commento, e pertanto ignorati. Martin fornisce un esempio nel pacchetto, e di seguito viene riportato un altro semplificato per offrire una possibile alternativa.

# VOLUMI (max. 5)
# Solo il volume SYS è obbligatorio. La directory contenente il volume SYS
# deve contenere le directory: LOGIN, PUBLIC, SYSTEM, MAIL.
# L'opzione "n" ignora le lettere maiuscole/minuscole.
# L'opzione "k" converte tutti i nomi di file all'interno di richieste NCP
# in lettere minuscole.
# L'opzione "m" marca il volume come rimovibile (utile, ad esempio,
# per cdrom).
# L'opzione "r" imposta il volume come a sola lettura.
# L'opzione "o" indica che il volume è un file system montato singolarmente.
# L'opzione "P" consente di utilizzare i comandi come file.
# L'opzione "O" consente l'utilizzo del namespace OS/2.
# L'opzione "N" consente l'utilizzo del namespace NFS.
# È predefinito l'uso delle maiuscole.
# Sintassi:
# 1 <Nome del Volume> <Percorso del Volume>   <Opzioni>

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

# NOME DEL SERVER
# Se non impostato, l'hostname Linux sarà convertito in lettere maiuscole
# e utilizzato. È opzionale, se non configurato verrà utilizzato
# l'hostname.
# Sintassi:
#       2 <Nome del Server>

2   LINUX_FS01

# INDIRIZZO DI RETE INTERNA
# L'Indirizzo di Rete Interna IPX rappresenta una caratteristica che
# semplifica il routing IPX per host che possiedono porte su più di
# una rete IPX.
# Sintassi:
#       3 <Internal Network Address> [<Node Number>]
# oppure:
#       3 auto
#
# Se si utilizza "auto", verrà utilizzato il proprio indirizzo IP host.
# NOTA: questo potrebbe essere pericoloso, pertanto assicurarsi di
# assegnare alla propria rete un numero univoco.
# Gli indirizzi sono esadecimali a 4byte (è necessario che inizino
# con 0x).

3       0x49a01010  1

# DISPOSITIVI DI RETE
# Questa riga configura la propria rete IPX. Se la propria rete IPX
# è già stata configurata, questo inserimento è superfluo. Corrisponde
# all'utilizzo diipx_configure/ipx_interface prima di attivare il server.
# Sintassi:
#       4 <Numero di Rete IPX > <nome del device> <frametype> [<ticks>]
#                         Frame types: ethernet_ii, 802.2, 802.3, SNAP
4  0x39a01010  eth0  802.3  1


# SALVATAGGIO DEGLI INSTRADAMENTI IPX DOPO LO SPEGNIMENTO DEL SERVER
# Sintassi:
#    5 <flag>
#       0 = non salvare i route, 1 = salvare i route

5 0

# VERSIONE NETWARE
# Sintassi:
#    6 <versione>
#      0 = 2.15, 1 = 3.11

6 1

# GESTIONE DELLA PASSWORD
# i client Novell DOS reali supportano una caratteristica per criptare
# la password quando viene modificata. È possibile scegliere se si
# desidera che il proprio server supporti o meno questa caratteristica.
# Sintassi:
#       7 <flag>
#       dove <flag> può essere:
#       0 per forzare la codifica della password. (I client non possono
#         modificare la password)
#       1 forza la codifica della password, consente la modifica delle
#         password non criptate.
#       7 consente password non criptate ma non password vuote.
#       8 consente password non criptate, comprese password vuote.
#       9 per password completamente non criptate (non funziona con OS/2).

7 1

# DIRITTI GID e UID MINIMALI
# abilitazioni utilizzate per connessioni senza login. Tali abilitazioni
# saranno utilizzate per i file nella propria connessione di server
# primarie.
# Sintassi:
#       10 <gid>
#       11 <uid>
#       <gid> <uid> provengono da /etc/passwd, /etc/groups

10  200
11  201

# PASSWORD DEL SUPERVISORE
# Può essere rimosso dopo aver avviato il server per la prima volta. Il
# server cripterà questa informazione nel file bindery dopo la sua esecuzione.
# Si dovrebbe evitare di utilizzare l'utente "root", al contrario è
# consigliabile usare un altro account per amministrare il fileserver mars.
#
# Questa riga viene letta e criptata all'interno dei file bindery del server,
# pertanto è necessario che esista la prima volta che si avvia il server
# per assicurarsi che la password non venga scoperta.
#
# Sintassi:
#       12 <Login del Supervisore> <Username Unix> [<password>]

12  SUPERVISOR  terry  secret

# ACCOUNT UTENTE
# Questo associa login NetWare ad account Unix. Le password sono
# opzionali.
# Sintassi:
#       13 <Login Utente> <Username Unix> [<password>]

13  MARTIN martin
13  TERRY  terry

# CONFIGURAZIONE DI LAZY SYSTEM ADMIN
# Se esiste un grande numero di utenti e non è possibile utilizzare
# mappe di utenti individuali di tipo 13, è possibile mappare
# automaticamente i login a mars_nwe con nomi di utenti Linux.
# TUTTAVIA, attualmente non esiste un modo per fare uso di password
# di login Linux, pertanto, tutti gli utenti configurati in questo modo
# utilizzeranno la password impostata in questo punto. Il consiglio è di
# non farlo, a meno che la sicurezza non sia un optional.
# Sintassi:
#       15 <flag> <password comune>
#   <flag> :    0   - non mappare gli utenti automaticamente
#               1   - mappa automaticamente gli utenti non configurati
#              99   - mappa automaticamente tutti gli utenti.

15  0  duzzenmatta

# CONTROLLO
# se si imposta questo flag  mars_nwe si assicurerà automaticamente
# dell'esistenza di certe directory.
# Sintassi:
#       16 <flag>
#       <flag> può essere 0 per no, o 1 per sì.

16  0

# CODE DI STAMPA
# Questo associa le stampanti NetWare alle stampanti Unix. Le directory
# per le code devono essere create manualmente prima di tentare la stampa.
# Le directory per le code NON sono code lpd.
# Sintassi:
#       21 <nome della coda> <directory della coda> <unix_print_cmd>

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


# FLAG DI DEBUG
# Normalmente non sono necessari, ma possono essere utili se si sta
# eseguendo il debug di un problema.
# Sintassi:
#       <debug_item> <debug_flag>
#
#    100 = IPX KERNEL
#    101 = NWSERV
#    102 = NCPSERV
#    103 = NWCONN
#    104 = start NWCLIENT
#    105 = NWBIND
#    106 = NWROUTED
#                 0 = disabilita il debug, 1 = abilita il debug

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

# ESECUZIONE DI NWSERV IN BACKGROUND E UTILIZZO DEL FILE DI LOG
# Sintassi:
#       200     <flag>
#       0 = esegue NWSERV in foreground e non utilizza il file di log
#       1 = esegue NWSERV in background e utilizza il file di log

200  1

# NOME DEL FILE DI LOG
# Sintassi:
#       201     <file di log>

201  /tmp/nw.log

# SCRITTURA SUL FILE DI LOG IN CODA O IN SOVRASCRITTURA
# Sintassi:
#       202     <flag>
#       0 = scrive aggiungendo in coda ad un file di log esistente
#       1 = sovrascrive un file di log esistente

202  1

# TEMPO DI SPEGNIMENTO DEL SERVER
# Questa riga imposta quanto tempo deve passare dallo spegnimento del
# server per lo spegnimento effettivo del server.
# Sintassi:
#       210     <tempo>
#       in secondi (il valore predefinito è 10)

210  10

# INTERVALLO DI ROUTING BROADCAST
# Esprime il tempo in secondi tra broadcast del server
# Sintassi:
#       211     <tempo>
#       in secondi (il default è 60)

211  60

# INTERVALLO DI ROUTING LOGGING
# Imposta quanti broadcast avvengono prima di effettuare la
# registrazione delle informazioni di rete.
# Sintassi:
#       300     <numero>

300  5

# FILE DI LOG DEL ROUTING
# Imposta il nome del file di registrazione del routing
# Sintassi:
#       301     <nomefile>

301  /tmp/nw.routes

# APPEND/SOVRASCRITTURA DEL FILE DI LOG DEL ROUTING
# Imposta se si desidera scrivere aggiungendo in coda su un file di
# log esistente, oppure se si vuole sovrascriverlo.
# Sintassi:
#       302     <flag>
#       <flag> 0 per append, 1 per creazione/sovrascrittura

302  1

# TEMPO DI GUARDIA
# Imposta il tempo per messaggi di guardia in grado di assicurare che
# la rete sia ancora viva.
# Sintassi:
#       310     <valore>
#       <valore> = 0 - invia sempre dei messaggi
#                < 0 - (-ve) per disabilitare i messaggi
#                > 0 - invia messaggi quando il traffico di rete
#                      scende al di sotto di "n" ticks

310  7

# STATION FILE
# Imposta il nome per i station file che determinano per quali
# macchine il fileserver si comporterà come fileserver primario.
# La sintassi di questo file è descritta nella directory "examples"
# del codice sorgente.
# Sintassi
#       400     <nomefile>


400  /etc/nwserv.stations

# GESTIONE DEL GET NEAREST FILESERVER
# Imposta la gestione delle richieste "Get Nearest Fileserver" SAP.
# Sintassi:
#       401     <flag>
#       <flag> può essere: 0 - disabilita le richieste "Get Nearest
#                              Fileserver".
#                          1 - Il file "stations" contiene le stazioni
#                              da escludere.
#                          2 - Il file "stations" contiene le stazioni
#                              da includere.

401  2

Avviamento del server

Se il server è stato configurato in modo tale da aspettarsi che programmi esterni configurino la rete o forniscano funzionalità di instradamento, allora tali programmi devono essere eseguiti prima di avviare il server. Invece, supponendo che il server sia stato configurato affinché esso stesso configuri le interfacce e fornisca i servizi di instradamento, sarà sufficiente il solo comando:

# nwserv

Collaudo del server

Per controllare un server bisognerebbe in primo luogo collegarsi da un client NetWare sulla propria rete. Quindi impostare un CAPTURE dal client ed eseguire una stampa. Se entrambe queste operazioni hanno successo, allora il server è funzionante.

10.2 Il pacchetto lwared

Ales Dryak (A.Dryak@sh.cvut.cz) ha sviluppato lwared per consentire a Linux di agire come fileserver basato su NCP.

Ales ha chiamato il pacchetto lwared, abbreviazione per LinWare Daemon.

Capacità di lwared

Il server lwared è in grado di fornire un sottoinsieme delle funzionalità complete di NCP Novell. Comprende la messaggistica ma non fornisce alcuna funzionalità di stampa. Attualmente non funziona molto bene con client Windows 95 o Windows NT. Il server lwared si basa sulla presenza di programmi esterni per costruire e aggiornare le tabelle di instradamento e SAP di IPX. Client che non si comportano correttamente possono causare problemi al server. È importante sottolineare che le funzionalità di traduzione dei filename non sono state incluse.

Il server funziona per shell NETX e VLM NetWare.

Come ottenere lwared

Il pacchetto lwared può essere compilato per qualsiasi kernel successivo al 1.2.0, anche se è consigliata la versione 1.2.13 poiché in tal modo non sono necessari patch per il kernel. Alcune delle funzionalità IPX sono cambiate con kernel di versione 1.3.*: questo significa che sono necessari patch specifici per fare in modo che lwared funzioni correttamente. Esistono patch appropriati per i nuovi kernel, pertanto se si deve utilizzare un kernel alpha dovrebbe essere possibile avere lwared correttamente funzionante.

Il pacchetto lwared può essere ottenuto tramite ftp anonimo da: klokan.sh.cvut.cz /pub/linux/linware/ o da: sunsite.unc.edu /pub/Linux/system/network/daemons o siti mirror. La versione al momento in cui questo documento viene scritto è: lwared-0.95.tar.gz.

Compilazione di lwared

Esecuzione del comando tar per il pacchetto lwared

Qualcosa del tipo:

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

Compilazione di un kernel con supporto Ethernet e IPX

Coloro che utilizzano un kernel alpha 1.3.*, dovrebbero passare alla versione 1.3.17 o superiore poiché le patch supportate sono state create per questa versione. I kernel 1.3.* più vecchi della versione 1.3.17 richiederanno una installazione manuale delle patch (il file INSTALL contenuto nel pacchetto riporta alcune informazioni su come eseguire questa operazione). Per installare le patch su un kernel 1.3.17 si può digitare il comando:

# make patch

Il passo successivo all'applicazione delle patch, consiste nell'assicurarsi che sia stata eseguita la compilazione del kernel con abilitazione del supporto IPX. In un kernel di versione 1.2.13 è sufficiente aver risposto ``Y'' alla domanda: ``The IPX protocol'', come illustrato nell'esempio che segue:

 ...
 ...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
 ...
 ...

In kernel più recenti il procedimento è analogo, tuttavia il testo del messaggio potrebbe essere leggermente diverso.

Inoltre, è necessario includere il driver appropriato per la propria scheda Ethernet. Maggiori informazioni in l' Ethernet-HOWTO.

A questo punto è possibile procedere con la compilazione del kernel. Non si dimentichi di eseguire lilo una volta terminata l'operazione.

Compilazione e installazione di lwared

Per compilare lwared controllare in primo luogo, e modificare se necessario, il file server/config.h. Il file contiene diverse impostazioni che guideranno il comportamento del server. I valori predefiniti dovrebbero essere corretti, tuttavia si dovrebbe controllare che le directory specificate per i file di log corrispondano alle impostazioni del proprio sistema.

# make depend
# make
# make install

Può accadere che il comando ``make depend'' sembri non trovare il file float.h sul sistema, tuttavia dovrebbe funzionare comunque. Può anche accadere che, effettuando la compilazione con gcc 2.6.3 sia necessario modificare la riga:

#include <net/route.h>

con

#include <net/if_route.h>

all'interno di /lib/ipxkern.c poiché, talvolta questo file ha un nome diverso.

Il comando ``make install'' tenterà di installare il server e i programmi del demone di routing all'interno della directory /usr/sbin, il programma lwpasswd in /usr/bin, i programmi di utilità IPX in /sbin e infine, le pagine di manuale verranno installate nella directory /usr/man. Se qualcuna di queste locazioni non fosse disponibile nel sistema, sarà necessario modificare il Makefile per impostare le directory destinazione.

Configurazione e utilizzo di lwared

Configurazione della rete IPX

La prima cosa da fare consiste nella configurazione delle interfacce Ethernet per supportare le reti IPX supportate dal proprio server. È necessario conoscere gli indirizzi di rete IPX per ciascuno dei propri segmenti LAN, quale dispositivo Ethernet (eth0, eth1 ecc.) si trova su ciascun segmento, quale tipo di trama (802.3, EtherII ecc.) viene utilizzata da ogni segmento LAN e quale indirizzo di Rete Interna deve essere utilizzato dal proprio server (fondamentale se il server offre servizi a più di un segmento LAN). Esempio di configurazione per un server su due segmenti dissimili con indirizzi di rete IPX 23a91300 e 23a91301 e indirizzo di rete interna bdefaced:

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

Avvio dei demoni di instradamento

Il kernel instrada i pacchetti IPX come pure per IP, tuttavia sono richiesti programmi aggiuntivi per gestire l'aggiornamento delle tabelle. Nel caso di IPX, sono necessari due demoni, entrambi supportati da lwared: ipxripd gestisce le informazioni di instradamento e ipxsapd le informazioni di SAP. Per avviare i demoni è sufficiente specificare la locazione in cui devono scrivere i propri messaggi di log:

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

Configurazione del server lwared

È necessario eseguire la configurazione manuale di due file per consentire il login al server lwared. Tali file sono:

/etc/lwpasswd

In questo file vengono memorizzate le informazioni di account dell'utente. Il programma lwpasswd è utilizzato per mantenerlo aggiornato. La sua forma più semplice del file /etc/lwpasswd è:

ales:
terryd:
guest:

Si tratta di una semplice lista di identificativi di login, seguiti dal carattere ``:'' e dalla versione criptata della password. Due importanti avvertimenti sono: l'assenza di password criptate significa che non ne esiste alcuna, gli utenti LinWare devono avere un account per Linux quindi ogni utente presente nel file /etc/lwpasswd deve apparire anche in /etc/passwd; l'utente root è l'unico in grado di modificare le password di un altro utente LinWare come di seguito indicato:

# lwpasswd rodg
Changing password for RODG
Enter new password:
Re-type new password:
Password changed.

/etc/lwvtab

Si tratta delle tabelle relative al volume LinWare e in esse sono memorizzate le informazioni su directory da rendere disponibili agli utenti LinWare (la natura del file è simile a quella di /etc/exports di NFS). Un semplice esempio del suo formato è:

SYS             /lwfs/sys
DATA            /lwfs/data
HOME            /home

Il nome del Volume è seguito da spazi bianchi seguiti dalle directory Linux da esportare. Ci deve essere almeno una riga relativa al volume SYS affinché un server possa avviarsi. Se si desidera che i propri utenti DOS siano in grado di utilizzare il proprio server LinWare come server primario, allora deve essere installata una struttura standard per il volume SYS sotto la directory che viene esportato come volume SYS. Dal momento che il copyright di questi file appartiene a Novell Corporation, è necessario possedere una licenza per il loro utilizzo. Se gli utenti utilizzeranno un file server Novell come server primario, allora la licenza non è necessaria.

Avvio del server lwared

lwared viene avviato tramite il comando:

# lwared

Se il server è stato avviato come mostrato, il nome del server LinWare dipenderà dalla risposta dell'hostname Linux. Se si desidera un nome diverso, è possibile indicarlo esplicitamente. Ad esempio, il comando:

# lwared -nlinux00

avvia il server con nome linux00.

Collaudo del server lwared

La prima cosa da controllare è la presenza del proprio server LinWare nell'elenco fornito dal comando slist (eseguito su un client DOS della propria rete). Il programma slist è presente nel volume SYS di un fileserver Novell, pertanto può essere eseguire solo da una macchina già collegata. Se l'esito è negativo, controllare che ipxsapd e lwared siano entrambi in esecuzione. Al contrario, se l'esito è positivo, si tenti la connessione al server e il mount di un volume, tramite:

C:> attach linux00/ales
 ...
 ...
C:> map l:=linux00/data:
C:> l:

A questo punto dovrebbe essere possibile lavorare con il nuovo disco proprio come con qualsiasi altro disco. Le abilitazioni ai file corrisponderanno a quelle dell'account a Linux parallelo al proprio login LinWare.


Avanti Indietro Indice