PREV
Capitolo 4 - Configurazione di Sistema
NEXT
Capitolo 6 - Il Sistema X Window

Torna all'indice

Capitolo 5. Configurazione della rete

Hardware di 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.

netmods

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.

Periferiche di rete PCMCIA

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
Torna all'indice

Utilita' di rete

ifconfig

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.

route

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

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.

pppsetup

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
Torna all'indice

I file /etc

/etc/inetd.conf

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.

/etc/resolv.conf

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 '.'.

/etc/hosts

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
Torna all'indice

rc.inet1

/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
Torna all'indice

rc.inet2

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
Torna all'indice

NFS (File system di Rete)

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
Torna all'indice

tcp_wrappers

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:

ALL:pyramid.tdn

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
Torna all'indice

Sommario

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
Torna all'indice

PREV
Capitolo 4 - Configurazione di Sistema
NEXT
Capitolo 6 - Il Sistema X Window