Introduzione
Installazione
Kernel
Rete
Links
|
LINUX
Creare
una rete
Dalla
piccola rete casalinga alle grandi reti aziendali, dal piccolo ufficio ai
cluster di computer per il calcolo parallelo Linux ha dimostrato in questi anni
tutta la sua potenza e versatilità quando si tratta di reti. Linux possiede
tutte le caratteristiche per svolgere al meglio il compito di server di rete in
qualunque ambiente, a patto che venga utilizzato l'hardware opportuno (che può
andare da un 486 di recupero a un server multiprocessore a seconda delle
esigenze). Ovviamente la configurazione e la gestione di un server sono compiti
che necessitano di una certa pratica e della conoscenza dei concetti base
relativi alle reti, ma non per questo si deve pensare che gestire una rete
basata su Linux sia molto più complicato rispetto all'analogo compito di Nt.
Anzi, è proprio nel gestire problematiche complesse come le reti che la forza
dei sistemi Unix viene fuori, grazie per esempio alla poderosa mole di strumenti
di debugging che questi forniscono rispetto a Nt. In questo spazio si
cercherà di fornire i primi strumenti per costruire da zero una rete il cui
server principale, basato su Linux, permetta di gestire l'assegnazione dinamica
degli Ip ai suoi client, di condividere l'accesso a Internet proteggendo nello
stesso tempo con tecniche di firewalling i client all'interno, di utilizzare
risorse condivise come dischi e stampanti e di accedere remotamente al server
stesso tramite Internet o tramite telefono. Il primo passo perdi segnare una
rete efficiente non si compie al computer ma alla scrivania, con carta e penna.
È qui che si decide quello che dovrà essere il layout della rete, quali
dovranno essere gli indirizzi Ip utilizzati, quali servizi dovranno essere
offerti e quali dovranno essere le politiche di accesso agli stessi. La fase
della pianificazione non va assolutamente presa sottogamba, in quanto una volta
che la rete sarà operativa e utilizzata a pieno ritmo diventerà sempre più
difficile rimediare agli eventuali errori. Per quanto riguarda gli indirizzi Ip
non c'è che l'imbarazzo della scelta. Esiste un documento ufficiale (kfc 1597)
che precisa gli intervalli di indirizzi che sono utilizzabili all'interno di
reti non collegate a Internet. Questi intervalli sono stati appositamente
riservati per l'utilizzo all'interno di reti sconnesse e garantiscono di non
interferire in alcun modo con la funzionalità di Internet, e sono:
da
10.0.0.0 a 10.255.255.255
da
172.16.0.0 a 172.31.255.255
da
192.168.0.0 a 192.168.255.255
|
^
On
Top
La
scelta di una o dell'altra serie di indirizzamenti è lasciata totalmente agli
amministratori di rete. Per convenzione, se si ritiene che non occorreranno più
di 254 Ip, conviene utilizzare indirizzi della serie 192.168.x.x, e il nostro
suggerimento è quello di non scegliere l'abusata "classe C"
192.168.0.x, in modo da non crearsi inutili problemi nel caso occorra
interconnettersi con altre reti che verosimilmente avranno scelto questo spazio
di indirizzamento. Una buona scelta potrebbe essere quella della classe
192.168.168.x, con x che va da 0 a 255. Occorre tenere presente, poi, che
il primo e l'ultimo numero della spazio prescelto non possono essere usati in
quanto rappresentano il primo l'intera rete e il secondo l'indirizzo di
broadcast. Per convenzione, in fine, si sceglie il primo o l'ultimo numero utile
(in questo caso l'1 o il 254) come gateway. In questo caso il server Linux
servirà per condividere l'accesso a Internet, per cui sarà a tutti gli effetti
un gateway. I dati di rete del server saranno quindi:
Indirizzo
Ip: 192.168.168.1
Netmask:
255.255.255.0
Network:
192.168.168.0
Broadcast:
192.168.168.255
Nessun
default gateway installato
|
^
On
Top
Per
quanto riguarda il resto della rete può essere il caso di dividerla in più
zone logiche, per esempio riservando una fascia di Ip per esistenti e futuri
server, un'ulteriore fascia per client con Ip fisso (tipicamente client di
amministrazione, in modo da poter restringere l'accesso al server solo per
quegli Ip), una fascia per client con indirizzo Ip dinamico e infine una fascia
per client remoti che si collegano via modem. In questo caso, quindi, si
potrebbe avere una suddivisione di questo tipo:
da
192.168.168.1 a 192.168.168.15: SERVER
da
192.168.168.16 a 192.168.168.30: CLIENT CON IP FISSO
da
192.168.168.31 a 192.168.168.230: CLIENT CON IP DINAMICO
da
192.168.168.231 a 192.168.168.254: CLIENT REMOTI
|
^
On
Top
Il
server Linux con Ip 192.168.168.1 sarà il cuore della rete e provvederà a
fornire gli indirizzi Ip ai client con Ip dinamico, condividerà dischi e
stampanti e permetterà l'accesso a Internet, oltre ad accettare chiamate su
modem collegato alla sua porta seriale. Ovviamente una pianificazione così
dettagliata è ampiamente al di sopra delle necessità di chi deve costruire una
semplice rete casalinga di due o tre pc, ma sapere esattamente cosa si sta
facendo è utile in qualunque ambiente, per cui può comunque essere un buon
esercizio per chi ha ambizioni di amministrazione di sistema prepararsi un picco
lo schema di lavoro anche per le esigenze più semplici. Una volta terminata la
fase di pianificazione occorre procurarsi il software necessario. Si deve
installare e configurare:
dhcpd:
un daemon dell'Internet Software
Consortium (www.isc.org) che
permette di configurare automaticamente e centralmente sui client il protocollo
Tcp/Ip. L'Rpm di questo pacchetto si trova su rufus.w3.org/linux/RPM/contrib/libc6/i386/dhcpd-2.0b1p10-1.i386.html;
ipchains: software che permette di manipolare le funzionalità di
firewall di Linux. E' fornito con tutte le distribuzioni, ma in caso di bisogno
si può trovare l'Rpm su rufus.w3.org/linux/RPM/redhat/6.1/i386/ipchains-1.3.9-3.i386.html
Una
volta terminata l'installazione del software necessario si può iniziare con la
configurazione del sistema. Il primo passo è quello di configurare la scheda di
rete: questo potrà comportare dopo l'installazione dell'hardware un'opportuna
ricompilazione del kernel e in modo da includere il supporto per la propria
scheda di rete, oltre che per il Network firewall e l'Ip firewalling, che
serviranno in seguito per abilitare la condivisione del l'accesso a Internet
(nel caso si utilizzi ancora un kernel della serie 2.0.x occorre abilitare anche
il supporto per i driver sperimentali, l'Ip forwarding e il supporto per Ip
chains. Qualora non si sia ancora in possesso di una scheda di rete è più che
consigliabile consultare l'Hardware-HowTo (per esempio su www.linuxdoc.org)
per verificare quale modello scegliere tra quelli compatibili con linux. Una
volta effettuato il boot della macchina con il nuovo kernel e verificato che la
scheda di rete viene correttamente visualizzata (per esempio con il comando
dmesg|grep eth) si può configurare alla combinazione della stessa. Il metodo
per configurare la rete varia a seconda della distribuzione prescelta: per
esempio si può utilizzare Linuxconf su sistemi RedHat o derivati ovvero
inserire i parametri di rete nello script /etc/init.d/network su sistemi Debian.
Sarà sufficiente lanciare questo script o chiedere a Linuxconf di attivare le
modifiche per avere la scheda di rete configurata correttamente, mentre per
verificare la funzionalità del tutto basta digitare i comandi ifconfig -a e
netstat -rn. Per verificare che la rete funzioni correttamente si potrà provare
a configurare uno dei client con dati coerenti alla rete, utilizzando per
esempio il range precedentemente attribuito alle stazioni con Ip fisso (per
esempio Ip 192.168.168.16 e netmask 255.255.255.0). A questo punto sarà
possibile controllare per esempio con un ping (dalla finestra del Dos se si usa
Windows 95/98/Nt) verso il 192.168.168.1 la regolare operatività del server e
della rete appena configurata. E' ora il momento di installare il server
Dhcp, che permetterà di configurare automaticamente e centralmente le
assegnazioni di indirizzi ai singoli client. Il meccanismo alla base del Dhcp è
semplice: ogni stazione collegata a una rete Ethernet viene riconosciuta grazie
all'indirizzo hardware della scheda, chiamato Mac Address. Questo indirizzo
viene settato in fabbrica. ed è costituito da una parte che identifica il
fabbricante e da un numero progressivo. Il fabbricante è responsabile
dell'unicità del Mac Address di ciascuna scheda. in modo che, di fatto, ogni
stazione sulla rete abbia una sua impronta digitale che la renda unica e
riconoscibile. Per verificare quale sia il Mac Address della scheda sotto Linux
è possibile utilizzare il comando ifconfig -a. mentre sotto Windows si può
usare Winipcfg.Exe. Durante la fase di boot il sistema operativo invia sulla
rete (tramite un broadcast) una richiesta di configurazione fornendo il proprio
Mac Address. A tale richiesta risponde il server Dhcp, che fornisce alla
stazione richiedente i parametri essenziali per configurarsi, quali indirizzo Ip,
netmask, broadcast, Dns, gateway, eventuale server Wins. Per fornire tali dati,
il server Dhcp può basarsi o su un pool di indirizzi dai quali prelevare il
primo libero o sul Mac Address fornito dalla scheda. In questo modo è possibile
grazie a questo indi rizzo prevedere configurazioni personalizzate in base alla
singola macchina (con l'accortezza di aggiornare tali configurazioni in caso di
cambio della scheda di rete). Il file di configurazione (normalmente /etc/dhcpd.conf)
è un normale file di testo. Nella sua versione di base, applicato agli
indirizzi che abbiano riportato sopra, è sufficiente specificare:
subnet
192.168.168.0 netmask 255.255.255.0 {
range
192.168.168.31 192.168.168.230;
default-lease-time
86400;
max-lease-time
259200;
option
subnet-mask 255.255.255.0;
option
broadcast-address 192.168.1168.255;
option
routers 192.166.168.1;
option
domain-name-servers 192.168.168.1;
option
domain-name "provajnetweb.com"; }
|
^
On
Top
In
questo modo si dice al server Dhcp che per la rete da 192.168.168.0 a
192.168.168.255 esiste un range di lp che va dal 192.168.168.3l al
192.168.168.230 da assegnare a chi ne facesse richiesta. Tali assegnazioni hanno
una scadenza. ossia vanno rinnovate dal client ogni 86.400 secondi (default
lease-time), e in ogni caso una macchina non può avere lo stesso indirizzo lp
per più di 259.200 secondi consecutivi (max-lease-time). Insieme all' indirizzo
lp vengono fornite alla stazione richiedente anche alcune informazioni
opzionali: la net mask (option subnet-mask), il broadcast (option
broadcast-address), il default gateway (option routers), il Dns (option
domain-name-servers) e il nome a dominio delle macchine (option domain name). In
una configurazione più avanzata si potrebbero aggiungere le linee:
host
notebook {
hardware
ethernet 00:00:B4:58:B5:D2;
fixed-address
192.168.168.16;
option
host-name "notebook";
}
|
^
On
Top
Questo
permetterà a una stazione ben precisa. individuata dalla sua scheda di rete, di
assumere sempre e comunque lo stesso indirizzo lp, ossia 192.168.168.16. Una
volta terminata la configurazione occorrerà far partire il processo dhcpd dal
prompt (come root, ovviamente) e selezionare "Ottieni automaticamente un
indirizzo Ip" da una stazione Windows in rete. Se tutto funziona
regolarmente al riavvio di quest'ultima si potrà verificare con Winipcfg.exe
che il client abbia ottenuto un indirizzo di rete valido dal server Dhcp. Una
prima applicazione pratica può essere quella della condivisione dell'accesso a
Internet. Il meccanismo che viene utilizzato è quello del cosiddetto
masquerading: ogni client interno utilizza il server Linux come gateway verso
Internet. La configurazione del masquerading con ipchains è molto semplice: una
volta che si è compilato il kernel con i necessari supporti, sarà sufficiente
lanciare i seguenti comandi come root per vedere le proprie stazioni sulla rete
in grado di navigare su Internet senza problemi, una volta che il server è
connesso:
#
ipchains -P forward DENY
#
ipchains -A forward -i ppp+ -j MASQ
#
echo 1 > /proc/sys/net/ipv4/ip_forward
|
^
On
Top
Per
poter utilizzare applicativi particolari dalle singole stazioni, può essere il
caso di caricare dei moduli aggiuntivi in questo modo:
#
modprobe ip_masq_autofw.o
#
modprobe ip_masq_portfw.o
#
modprobe ip_masq_mfw.o
#
modprobe ip_masq_user.o
#
modprobe ip_masq_ftp.o
#
modprobe ip_masq_irc.o
#
modprobe ip_masq_raudio.o
#
modprobe ip_masq_quake.o
#
modprobe ip_masq_vdolive.o
#
modprobe ip_masq_cuseeme.o
|
^
On
Top
Attenzione: questa semplice impostazione permette di fare utilizzare Internet
alle proprie postazioni interne e nel frattempo le protegge in qualche modo da
attacchi provenienti dall' esterno, ma lascia totalmente sguarnito il server
stesso. Per ottenere un buon livello di protezione occorre inserire altri
comandi che rifiutino qualunque connessione proveniente dall'esterno e diretta
verso il server stesso. Un buon punto di partenza si può trovare su www.abc.se/~m10813/fi1es/firewall.txt.
Si tratta di uno script di shell che è possibile lanciare direttamente al
boot e che, opportunamente personalizzato, si prende cura della stragrande
maggioranza delle esigenze di sicurezza e rnasquerading necessarie per un
accesso sicuro a Internet. Ovviamente le possibilità di Linux in rete non
finiscono qui...
^
On
Top
|