PREV
Capitolo 4 - Configurazione di Sistema
|
NEXT
Capitolo 6 - Il Sistema X Window
|
- Capitolo 5. Configurazione della rete
- Sommario
Capitolo 5. Configurazione della rete
Come la maggior parte delle cose interessanti che potete fare con un calcolatore,
potete collegarlo in una rete mediante dell'harware specifico.
Avrete bisogno di una NIC (Scheda di interfaccia di rete) per collegarvi alla rete lan,
forse di un modem per connettervi ad un provider internet, o forse di entrabi
(o piu' di uno o nessuno).
Per lo scopo della configurazione, possiamo dividere l'harware in PCMCIA (per i portatili)
e nelle categorie non-PCMCIA. La ragione di questa in qualche modo strana e' che attualmente
la configurazione PCMCIA non viene sostenuta tramite il supporto del kernel,
ma da un pacchetto separato che include i driver necessari (come moduli del kernel) e alcuni
software per la configurazione e la gestione delle periferiche PCMCIA.
Il resto, naturalmente, e' gestito tramite la distribuzione standard del kernel.
I driver per i dispositivi di rete che il kernel supporta sono inclusi nel pacchetto dei
netmods (
slakware/n3/netmods.tgz ). Se non avete installato i netmods ancora,
dovrete fare cosi'. (vedi il
capitolo 16 per aiuto
con l'installazione dei pacchetti.)
I moduli del kernel che sono stati caricati all'avvio vengono caricati dal file
rc.modules
contenuto in
/etc/rc.d. Il file di default di
rc.modules include una sezione
"
Supporto delle periferiche di rete". Se apri
rc.modules e cerchi quella
sezione, noterai che come prima cosa controlla se esiste un file
rc.netdevice
eseguibile in
/etc/rc.d/;
rc.netdevice viene creato se il setup ha automaticamente
trovato con successo la tua periferica di rete durante l'installazione.
Se non l'ha fatto, allora probabilmente non stai leggendo questo (oooh, paradosso);
se non l'ha fatto, continua a leggere.
Sotto quell blocco "
if" c'e' una lista delle periferiche di rete e le line modprobe,
ciascuna commentata. Trova la tua periferica e decommenta la linea corrispondente al
modeprobe, allora salva il file. Esegui
rc.modules come root e dovrebbe adesso
caricare i driver per la periferica di rete (cosi come qualsiasi altro modulo che e'
elencato e decommentato). Si noti che alcuni moduli (quale il driver ne2000) richiedono
dei parametri; assicurati di aver selezionato la linea corretta.
Le periferiche di rete PCMCIA dovrebbero essere piu' facili delle altre. Assicuratevi di avere
il pacchetto pcmcia (
slakware/a11/pcmcia.tgz) installato.
(vedi il
capitolo 16 per dettagli sul'installazione del
pacchetto). Al momento dell'installazione, il pacchetto pcmcia creera' un file
rc.pcmcia
in
/etc/rc.d e una directory
/etc/pcmcia, e installera' i driver in
/lib/modules/<kernel version>/pcmcia.
La cosa bella del pacchetto pcmcia e' che cerchera' di autotilevare l'inserimento e la
rimozione delle periferiche pcmcia supportate; dovreste poter semplicemente inserire il
vostro adattarore pcmcia di rete e ascoltare il beep che emette quando carica i moduli
necessari. Se rimuovete la scheda, i driver dei moduli dovrebbero essere automaticamente
rimossi.
Sfortunatamente, se ricompilate una nuova versione del kernel dovrete ricompilare pcmcia-cs
ottenendo i driver aggiornati. Naturalmente, il sorgente e' incluso; contralla la direcotry
/source/a/pcmcia per sorgente, script, e la documentazione per aiutarvi con questo.
top
Ora che il vostro kernel puo' dialogare con l'hardware di rete,
cio' di cui avete bisogno e' il modo in cui il software passa al kernel
le informazioni e viceversa. Dobbiamo configurare un interfaccia
Abbiamo bisogno di
ifconfig.
ifconfig e' probabilmente piu' facile da imparare per esempi; potreste
dare un'occhiata al vostro
rc.inet1 (di cui parlimo nella sezione chiamata
rc.net1) per vedere come si fa. La maniera piu' facile e piu' usata e'
qualcosa del genere:
# ifconfig eth0 192.168.1.10 broadcast 192.168.1.255 netmask 255.255.255.0
|
Questa riga attiva eth0(la prima interfaccia ethernet, per token ring usa tr0,
per ppp usa ppp0, etc.) con IP 192.168.1.10, un indirizzo broadcast
192.168.1.255 (l'intera subnet 192.168.1) e una netmask 255.255.255.0(che
indica che le intere prime tre parti del "dotted quad" dell'indirizzo IP si riferiscono
alla rete, mentre l'ultima parte, .10, si riferisce all'host).A meno che non stiate
facendo qualcosa di strano, potete sempre usare un indirizzo di broadcast che e'
composto dalle prime tre parti del vostro indirizzo IP, seguite da 255. potete anche
usare una netmask di 255.255.255.0. Se state facendo qualcosa di strano, sapete
probabilmente abbastanza da saltare questa parte del manuale.
ifconfigpuo' anche essere usato per vedere cosa c'e' dentro. Eseguitelo senza
alcuna opzione ne' parametri per avere una lista di tutte le attuali interfacce
di rete e le loro configurazioni.
Per sapere dove mandare determinati dati, il kernel mantiene una tabella dei route.
Non ho intenzione di addentrarmi molto nell'argomento, ma potete vedere la tabella dei
route eseguendo /sbin/route(8). route -n vi dara' la tabella con gli
indirizzi IP al posto dei nomi, questo e' utile se avete problemi a dialogare con
il vostro name server o se semplicemnte non siete interessati nel mondo illusorio dei
nomi di dominio. Fortunatamente, se avete una semplice configurazione di rete
(e la maggior parte della gente ce l'ha), il kernel 2.2 creera' automaticamente le
necessarie voci nella tabella dei route al posto vostro.
netconfig e' una parte del programma di installazione Slackware, ma come molti
componenti dell'
installazione puo' essere eseguito da solo.
netconfig e'
molto avanzato e vi guidera' attraverso l'installazione di una semplice connessione di
rete. E' un buon programma soprattutto per chi non e' abituato o a proprio agio con i
file rc di network. Quando lanciate
netconfig, sarete deliziati da questa
schermata:
Dopo vi sara' richiesto di inserire il nome dell'host e del dominio acui appartiene il
vostro computer. Potete inventare qualcosa per entrambi, a meno che non stiate configurando
un server o una macchina che verra' usata da molte persone. Quindi vi verra' domandato se
userete un IP statico, DHCP, o solo loopback.
Se non avete intenzione di connettervi a una rete, scegliete loopback.
Se state configurando un computer che verra' collegato all'universita' o ad un'ampia rete
di uffici, meglio scegliere DHCP. Diversamente, scegliete IP statico. Se avete
scelto IP statico, dovrete adesso indicare l'indirizzo Ip del vostro computer,
la netmask, indirizzo di broadcast, e l'indirizzo del name server.
netconfig vi suggerira' come ottenere tutti questi numeri.
Slackware include la utility
pppsetup per configuare una connessione dialup ad un ISP.
E' contenuto nel pacchetto
ppp.tgz nella serie N del software.
pppsetup
usa la stessa interfccia del programma di
installazione.
Se non ricordate come utilizzare questa interfaccia, tornate alla sezione chiamata
Il programma di installazione per qualche indicazione.
pppsetup pone una
serie di domande e installa automaticamente molti file di configurazione in
/etc/ppp. Da root, installate
pppsetup, analizzeremo le domande qui.
Numero di telefono:
la prima domanda vi richiede il numero di telefono del vostro ISP, prefissato dal tipo di
chiamata. La maggior parte di voi vorranno selezionare la chiamata a toni. Se il numero di
telefono del vostro ISP fosse 555-1013 e usate la chiamata a toni, dovrete digitare
atdt5551013 nella finestra di dialogo.
Se avete l'avviso di chiamata attiva sul vostro telefono e volete che sia disabilitata quando
siete connessi (probabilmente un buona idea), siate certi di inserire qualcosa di simile a
questo nella finestra di dialogo: atdt*70,5551013
La virgola e' richiesta. Crea una pausa di 1.5 secondi tra lo *70 per disattivare l'avviso
di chiamata e il numero di telefono dell'ISP. Non funziona senza virgola.
Device del modem
Ora individuate il vostro modem. Se sapete cosa sia un device COm sotto Windows, potete selezionare
l'equivalente qui indicato. Diversamente, dovete fare qualche esperimento. Il modo migliore e' iniziare
con ttySO e scendere giu' lungo la lista.
Baud rate del modem.
Poi, scegliete la baud rate piu' vicina a quella del vostro modem. Se non sapete il baud rate, potete
controllare nella scatola del modem o qualsiasi libretto delle istruzioni fornito con esso. Ogni selzione
ha diversi esempi, quindi non sara' difficile riuscirci.
call back
Ora, dovete iniziare a fare riferimento alle indicazioni fornitevi dal vostro ISP. Pochi ISP usano il
callback, cosi' potete abbastanza tranquillamente selezionare "NO". callback e' quando chiamate l'ISP e
successivamente vi richiamano per accedere.
Se dovete usare il callback, selezionate YES. poi vi sara' richiesto il vostro numero di telefono, un nome
per il login ed una password. Potreste anche non dover inserire nome e password. Infine, vi sara' richiesto
che tipo di schema di autenticazione usa il vostro ISP. Se usano CHAP o PAP, selezionate "YES". Successivamente
avrete bisogno di installarlo. Andate a vedere la sessione sottostante. Se non usano nessuno dei due,
selezionate "NO" e andate alla sezione sottostante "Chat script".
La stringa di inizializzazione del modem
A meno che non abbiate uno strano modem, dovrete solo calcare Invio per selezionare l
stringa di inizializzazione di default ("
AT&FH0"). Diversamente, controllate le
documentazioni fornitevi col modem per sapere cosa inserire nella stringa di
inizializzazione del modem.
Nome del dominio
Ora dovete inserire il nome del dominio del vostro ISP. sara' qualcosa come "esempio.net",
"slackware.com", o qualcosa di simile. (ok, sicuramente non sara' slackware.com :)
indirizzo IP DNS
Il vostro ISP dovrebbe avervi fornito l'indirizzo IP del nameserver. Se avete questo
indirizzo IP, inseritelo nel campo DNS, altrimanti, chidetelo al vostro ISP per sapere
che numero usare.
Metodi di autenticazione
Questa domanda potrebbe indurre a qualche errore. Dovete capire se il vostro ISP usa CHAP,
PAP o nessun tipo di autenticazione. La maniera piu' sicura per saperlo e' chimare il
vostro ISP. Ad ogni modo, se vi viene richiesta login e password alla connessione,
dovreste scegliere "SCRIPT". Diversamente chiedete al vostro ISP quale usare.
PAP o CHAP
se avete selezionato "PAP" o "CHAP" alla schermata del metodo di autenticazione, vi sara' rihiesta la username.
Il vostro ISP dovrebbe avervi assegnato una username. Se non l'ha fatto, c'e' qualcosa di terribilmente sbagliato.
Dovrete contattarlo e ricevere la username.
Ora , potete inserire la password che vi ha fornito il vostro ISP nel successivo campo.
Chat script
Se avete selezionato "SCRIPT" nella schermata del metodo di utenticazione, vi verra' presentata
una simpatica lunga discussione su cosa sia chat script. Leggetela perche' descrive tutto
molto bene. Di base vi verra' richiesto che tipo di informazioni vi verranno inviate dal
vostro ISP e che cosa dovra' rispondere il vostro computer per accedere.
Ora entrerete in un loop di inserimenti di testo per cio' che il vostro computer ricevera'
dall'ISP, seguito dalle informazioni che dovranno essere spedite in risposta. potete
spezzare il loop premendo Invio in un campo vuoto.
Fatto
In fine, vi saranno mostrati i vostri file di configurazione ppp. Potete farci veramente
poco, giusto controllarli. Premete Invio per salvare tutto e abbandonate pppsetup.
Questa schermata contiene nche un sacco di informazioni su come attivare la vostra
connessione dialup e su come terminarla quando avete finito. L'idea di base e' questa:
da root, lanciate ppp-go per avviare la connessione.
Quando avete finito lanciate ppp-off da root e chiudera' la connessione.
top
In un sistema operativo incentrato sul network non e' strano che molti servizi siano in esecuzione.
In genere per ogni servizio accessbile ci deve essere un programma in ascolto per le connessioni,
il quale puo' risultare un po' gravoso su un sistema che esegue un sacco di questi server. Per ridurre
il lavoro, e' stato creato
inetd. inetd e' l'
"internet super-server"-- sta in ascolto
delle connessioni su molti socket, e quando uno riceve inetd lancia il server appropriato per gestirlo.
Nonostante ci siano molti server in attesa sono ridotti a uno.
/etc/inetd.conf e' il file di configurazione di inetd. Specifica quali server si attivano per le
diverse connessioni. La pagina man di
inetd(8) contiene altre informazioni piu' dettagliate,
ovviamente, ma diamo un'occhiata veloce alle righe dei servizi di base:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -i -a
|
questa e' la riga per il server ftp. Notare il nome del protocollo ("ftp") prima, e poi il comando da
eseguire per la risposta. In questo caso, il programma che viene lanciato in risposta ad un tentativo
di connessione e'
/usr/sbin/tcpd; e' un programma "
wrapper" che fornisce alcune opzioni
di sicurezza di base per il servizio che copre.
wu.ftpd e' il nostro attuale ftp server, ma
tcpd lo esegue per noi. Altre informazioni su tcpd sono fornite nella sezione
tcp wrappers.
come molti file di sistema, le righe in
inetd.conf sono commentate dal carattere #, potete
aggiungere e rimuovere servizi da inetd semplicemente commentando o decommentando le rispettive righe e
rilanciando inetd.
Questo file dice al resto del sistema dove trovare le informazioni sul suo DNS. ogni nome di server che
usate e' inserito in una lista in questo file. Ecco un esempio di
resolv.conf (dal portatile da cui sto
scrivendo,
ninja.tdn):
domain tdn
nameserver 192.168.1.1
search tdn. slackware.com
|
la prima riga descrive il nome del dominio ninja; e' tutto quello che c'e' dopo l'hostname nel mio indirizzo.
La seconda riga e' il server DNS per la nostra rete domestica. Potete averne diverse, quante ne volete, saranno
controllate in ordine dalla prima all'ultima ogni volta che un programma necessita di controllare l'indirizzo IP
corrispondente a un dominio.
L'ultima riga e' un po' piu' interessante. Descrive tutti i domini che devono essere assunti dal mio sistema.
per esempio, supponiamo che avessi una macchina
zuul.tdn e
hejaz.slackware.com. posso semplicemente pingare
zuul e pingare
hejaz per pingarli, rispettivamente. Questo perche' il ping prima cerca di aggiungere ".tdn" al nome di zuul,
e trova una corrispondenza e la raggiunge. Nel caso di "
hejaz", prima prova "
hejaz.tdn". Non trova corrispondenza, quindi prova con
"
hejaz.slackware.com"---bingo!. Notate che tutti i domini compresi nelle righe di search devono finire con un '.'
eccetto l'ultimo, se e' solo uno, questo e' l'ultimo e non ha bisogno del '.'.
i file
hosts permettono la piu' semplice maniera di controllare un dominio. E' una lista di hostnames e i loro
corrispondenti IP. Questo e' utile in una piccola rete dove il DNS non e' necessario, nei casi in cui il DNS non e'
affidabile, etc. ed e' utilizzato dalla macchina durante l'avvio quando nessun nome di server e' accessibile.
Il mio assomiglia a questo:
127.0.0.1 localhost
192.168.1.32 ninja.tdn ninja
|
la prima riga dovrebbe spiegarsi da se'. la seconda no. Potete inserire nella lista tanti nomi e alias quanti
ne desiderate, separati da uno spazio. Cosi' ho "192.168.1.32" tradotto in
ninja.tdn (e viceversa), ma l'alias "
ninja"
puo' anche essere usato quando non ho voglia di digitare anche "
.tdn" (il che avviene il piu' delle volte).
top
/etc/rc.d/rc.inet1 e' il file usato per configurare
l'"
infrastruttura" della rete-- inizializza i device e imposta
indirizzi e routes. L'
rc.inet1 che guida Slackware e' ampiamente
commentata, dovremmo quindi ripeterci se ne dovessimo ridiscutere qui.
top
Il file
/etc/rc.d/r.inet2 serve per le altre parti del networking:
configurare servizi e demoni e manipolare tutte le opzioni di nostro
interesse del networking. Diamo un'occhiata al blocco di esempio:
# Start the NAMED/BIND name server:
if [ -f ${NET}/named ]; then
echo -n " named"
${NET}/named -u daemon -g daemon
fi
|
La riga importante e' la quarta, che infatti esegue
named(8). Il
resto e' facile: il costrutto "if" controlla se c'e' gia' un programma
named
dove ci si aspetta ci sia, e la riga
echo riporta che
named e' stato
lanciato quando il sistema e' stato avviato. Scoprirete che la maggior parte dei
server lanciati da
rc.inet2 vengono lanciati all'interno di blocchi
come questi; semplici test per vedere se c'e' qualche ragione per cui non
dovrebbero essere eseguiti, un avviso che sono stati lanciati, e i comandi per avviare
i servizi stessi. Ancora,
rc.inet2 e' ampiamente commentato; girateci
dentro per un po'.
top
Il
File System di Rete (
Network File System) e' usato, generalmente, per condividere file
tra le macchine di una stessa rete. La parte bella dell'NFS e' che e' stato
progettato in modo tale che una macchina puo' montare la directory condivisa in modo trasparente,
e navigarla come se fosse in locale.
Un paio di cose devono accadere perche' questo abbia luogo, comunque. La prima e' che vengano
lanciati i servizi appropriati sulla macchina server: questi sono
portmap(8),
nfsd(8), e
mountd(8). Laseconda e' che il server deve esplicitamente "esportare"
un albero del filesystem sul client, questo puo' essere effettuato tramite il file
export(5) che si trova in
/etc.
La prima parte delle operazioni e' effettuata installando il pacchetto
tcpip1.tgz
( della serie "N") e editando in modo appropriato
rc.inet2.
/etc/exports e' un po' piu' divertente.
Supponiamo che io abbia una directory di immagini sul pc
battlecat.tdn che io voglio
montare su
ninja.tdn. Su
battlecat.tdn, ho bisogno di inserire questa riga in
/etc/exports:
/var/media/images ninja.tdn(ro)
|
Poi su
ninja.tdn devo fare
# mount -t nfs battlecat.tdn:/var/media/images /mnt
|
per montare la directory di immagini in locale su
/mnt. Sfortunatamente ho dimenticato di dare
i permessi di schittura per la directory condivisa-- infatti il bit "
ro" che ho messo nel file
/etc/exports di
battlecat e' un'opzione che significa "
read-only" (sola lettura). Ogni altra
opzione deve essere inserita dopo il nome del client, in una lista separata da virgole,
Vediamo L'esempio:
/var/media/images ninja.tdn(rw,no_root_squash)
|
L'opzione "
rw" e' sinonimo di "
read-write" (lettura e scrittura)--
che influisce sui permessi di lettura e scrittura del gruppo e degli utenti
(vedi la pagina di
man di
exports(5) per maggiori chiarimenti)
gli utenti su
ninja possono scrivere sulla dyrectory condivisa.
L'opzione
squash a me non piace, quindi lascio alle pagine di man spiegarvi a cosa serve.
Se vuoi sapere di piu' sull'NFS,
man 5 exports e' tuo amico ;) . Quindi prendici
confidenza, ok?
top
tcp_wrappers e' un sistema di base per prevenire (e permettere esplicitamente) gli
accessi ai servizi da parte di specifici host. In una finestra della shell funziona cosi'
inetd(l'internet super-server) esegue molti server, alcuni dei quali
sono "wrapped" da
tcpd. In altre parole,
tcpd logga i tentativi di
connessione e controlla il file
/etc/hosts.allow e
/etc/hosts.deny per
verificare che la connessione sia consentita.
Le regole contenute in questi file possono essere in qualche modo complesse, ma supponiamo
che
pyramid.tdn sia veraente odioso e non lasci in pace il povero
mojo.tdn.
mojo.tdn deve inserire una linea nel file
/etc/hosts.deny che risulta come questa:
Questa riga dovrebbe esservi piuttosto chiara: impedisce che pyramid usi i servizi
su mojo che sono protetti da tcpd. Se fossi infastidito da un intero dominio oltre che
da pyramid, potrei inserire questa riga:
ALL:pyramid.tdn, .noioso.dominio |
Ma aspettate! Il mio amico Hobbes e' collegato con una macchina su quel.noioso.dominio,
e vorrei che potesse accedere alla mia macchina(ma non il resto dei suoi noiosi amici).
E' semplice. lasciando hosts.deny com'e', le seguenti righe su hosts.allow lasceranno passare
Hobbes:
ALL:hobbes.noioso.dominio |
Per ulteriori dettagli, vedete
tcpd(8),
hosts_access(5), e
hostsoptions(5).
Il sistema
tcp_wrappers e' molto piu' flessibile di questo, e vale veramente la pena
di dargli un occhiata piu' a fondo.
top
In questo capitolo, avete imparato come configurare il vostro sistema per
connetterlo ad un network, come modificare i file di configurazione, e qualche principio
di base sulla sicurezza. In piu', avete imparato che cosa e' il Network File System
e come farlo funzionare sul vostro sistema. Rendendo il vostro sistema parte di un network
vi permette di accedere ad ogni tipo di risorsa, come mail, news e siti web. Vedete il
Capitolo 13 per
informazioni su come usare alcuni programmi di network di base.
top
PREV
Capitolo 4 - Configurazione di Sistema
|
NEXT
Capitolo 6 - Il Sistema X Window
|