Home Mappa Indice Ricerca News Archivi Link A proposito di LF
[Barra superiore]
[Barra inferiore]
Questo documento è disponibile in: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

[Foto dell'autore]
di Eric SEIGNE

Notizie sull'autore:

Eric lavora per il mondo del software libero. Il suo lavoro di ogni giorno è costituito dalla programmazione di applicazioni dedicate all'accesso a basi di dati da web, con strumenti come PostGreSQL, MySQL e PHP3.



Contenuto:

Configurare DHCP automaticamente

[Illustrazione]

Sommario:

Questo articolo spiega come configurare con facilità il DHCP per una rete.




 

Introduzione

Il fine di questo articolo è di ottenere:

Il server usato per questo articolo è il Paul Vixie/ISC DHCPd.  

Creiamo un DHCP vuoto

Il nostro primo passo è creare un file di configurazione vuoto che sia in grado di accettare tutti i client sulla rete.
Sto usando qui la configurazione di rete dello Slash Party #2, per il quale ho provato a configurare propriamente un server Linux.

<file dhcpd.conf>
default-lease-time 86400;
max-lease-time 604800;
get-lease-hostnames true;
option subnet-mask 255.255.255.0;
option domain-name "slach2-100.party";
option domain-name-servers 192.168.12.1;
option interface-mtu 1500;

subnet 192.168.12.0 netmask 255.255.255.0 
        # default gateway
        option routers 192.168.12.1;
        option broadcast-address 192.168.12.255;
        range 192.168.12.50 192.168.12.200;

</file>

Dopo che il server DHCP è stato attivato (usando "dhcp start" o un comado analogo, in accordo alla vostra distribuzione di Linux), potete far partire le postazioni client sulla rete. Queste dovrebbero essere state configurate in modo da ottenere automaticamente un indirizzo IP.
Non appena un client richiede un indirizzo al server DHCP, viene aggiunto un blocco simile al seguente nel file dhcpd.leases:

<bloc attributed to a dhcp client>
lease 192.168.12.58 
        starts 2 1999/08/24 06:28:48;
        ends 3 1999/08/25 06:28:48;
        hardware ethernet 00:10:5a:2e:56:a7;
        uid 01:00:10:5a:2e:56:a7;
        client-hostname "KLUSTER";

</bloc>

Quindi, non appena tutti i client hanno ottenuto un indirizzo IP dal server, il file dhcpd.leases avrà un aspetto simile a questo:

<file dhcpd.leases>
lease 192.168.12.58 
        starts 2 1999/08/24 06:28:48;
        ends 3 1999/08/25 06:28:48;
        hardware ethernet 00:10:5a:2e:56:a7;
        uid 01:00:10:5a:2e:56:a7;
        client-hostname "KLUSTER";

lease 192.168.12.53 
        starts 2 1999/08/24 05:42:22;
        ends 3 1999/08/25 05:42:22;
        hardware ethernet 00:80:ad:97:e1:76;
        uid 01:00:80:ad:97:e1:76;
        client-hostname "ceddz";

lease 192.168.12.54 
        starts 2 1999/08/24 03:07:26;
        ends 3 1999/08/25 03:07:26;
        hardware ethernet 00:80:ad:97:e1:7d;
        uid 01:00:80:ad:97:e1:7d;
        client-hostname "SDS";

lease 192.168.12.67 
        starts 2 1999/08/24 02:52:19;
        ends 3 1999/08/25 02:52:19;
        hardware ethernet 00:50:04:45:e1:65;
        uid 01:00:50:04:45:e1:65;
        client-hostname "HOMER";

lease 192.168.12.64 
        starts 2 1999/08/24 01:26:05;
        ends 3 1999/08/25 01:26:05;
        hardware ethernet 00:80:ad:97:e2:1c;
        uid 01:00:80:ad:97:e2:1c;
        client-hostname "chAwArmA";

lease 192.168.12.59 
        starts 2 1999/08/24 01:14:06;
        ends 3 1999/08/25 01:14:06;
        hardware ethernet 00:00:21:2c:30:e7;
        uid 01:00:00:21:2c:30:e7;
        client-hostname "WOOKIE";

</file>
 

Chiudiamo la configurazione DHCP

A questo punto è necessario convertire il nostro DHCP "aperto" in uno statico e più sicuro. Questo viene fatto usando il dhcp.lease che abbiamo appena creato, convertendolo in quello che io chiamo un dhcp statico.

Quali sono le differenze tra un DHCP statico e uno aperto? Per quanto mi riguarda, un DHCP aperto permette ad ogni computer connesso alla rete di ottenere un indirizzo IP e dei parametri di rete usabili. Questo rappresenta un grosso buco di sicurezza, in quanto qualsiasi pirata non autorizzato potrebbe connettersi fisicamente alla rete e ottenere parametri di rete validi :( Per ostacolare un attaco simile, io uso il DHCP statico. Ogni indirizzo IP viene dato solo ai client con il Mac corrispondente a quello della scheda Ethernet associata. Pertanto è facile individuare un'intrusione.

<file dhcpd.conf>
default-lease-time 86400;
max-lease-time 604800;
get-lease-hostnames true;
option subnet-mask 255.255.255.0;
option domain-name "slach2-100.party";
option domain-name-servers 192.168.12.1;
option lpr-servers 192.168.12.1;
option interface-mtu 1500;

subnet 192.168.12.0 netmask 255.255.255.0 
        # default gateway
        option routers 192.168.12.1;
        option broadcast-address 192.168.12.255;
	# Those not in the dhcp
	# will get ip between .10 et .50
        range 192.168.12.10 192.168.12.50;


host 
        hardware ethernet 00:10:5a:2e:56:a7;
        fixed-address "kluster.slach2-100.party";

host 
        hardware ethernet 00:80:ad:97:e1:76;
        fixed-address "ceddz.slach2-100.party";
host 
        hardware ethernet 00:80:ad:97:e1:7d;
        fixed-address "sds.slach2-100.party";

host 
        hardware ethernet 00:40:95:49:0b:a5;
        fixed-address "saigneur.slach2-100.party";

host 
        hardware ethernet 00:50:04:45:e1:65;
        fixed-address "homer.slach2-100.party";

</file>

ATTENZIONE: Se non avete un server DNS attivo, il file dhcp.conf deve usare indirizzi IP numerici e non nomi di macchine.

<extracted from dhcpd.conf whithout dns>
host 
        hardware ethernet 00:40:95:49:0b:a5;
        fixed-address "192.168.12.57";

host 
        hardware ethernet 00:50:04:45:e1:65;
        fixed-address "192.168.12.67";

</extract>

Ho scritto un piccolo script Perl che converte il file dhcpd.leases in un file di configurazione per dhcp statico.  

Costruzione automatica del DNS

Perché fermarci a questo punto quando allo stesso tempo potremmo configurare il server DNS?

Lo stesso script Perl, con l'opzione -dns, creerà i file named.$domaine.ajouter e named.$domaine.rev.ajouter che dovreste controllare prima di aggiungerli ai file di risoluzione e di risoluzione inversa del vostro DNS.

E' inoltre necessario aggiungere al file named.conf i parametri del vostro dominio. Per esempio:

<add to file named.conf>
zone "slach2-100.party" 
        type master;
        file "named.slach2-100";
;

zone "12.168.192.in-addr.arpa" 
        type master;
        file "named.slach2-100.rev";
;
</add>

Congratulazioni, adesso avete una configurazione funzionante del dhcp e del dns.  

Risorse di Rete

Allo stesso prezzo (ancora più bello quando è gratis :), la configurazione delle "Risorse di Rete" per le macchine windows. Ecco qui la storia con un piccolo disegno e le spiegazioni:

Allo Slach 2 (un demo party), installai due reti, una a 10 Mbit e l'altra a 100 Mbit (a quel tempo per utenti privilegiati...). Il problema principale era: entrambi i network non riuscivano a "vedersi" tramite le "Risorse di Rete" di windows.

La soluzione è WINS. WINS consente di dichiarare, sulla rete, un server che tiene una lista di collegamenti tra IP e "nomi di domini diversi". E' una sorta di controllore per le reti R1 e R2.

E' quindi necessario configurare un server WINS e i client in maniera che lo usino, e creare un gateway IP tra queste due reti.

WINS è ben supportato da Samba :)

Schema:

-------------------
I                 I
I   Network R1    I
I                 I
I  192.168.0.0    I
I  255.255.255.0  I
-------+-----------
       |
  -----|-----
 eth0: 192.168.0.1

     Linux
     Server

 eth1: 192.168.100.1
  -----|-----
       |
-------+-----------
I                 I
I   Network R2    I
I                 I
I  192.168.100.0  I
I  255.255.255.0  I
-------------------

dhcpd.conf va modificato per auto-configurare i client in modo da usare il nostro server wins :). Senza dhcp, sarebbe stato necessario configurare singolarmente tutti i client per attivare il loro accesso al server wins!

ATTENZIONE: NON DIMENTICATE DI AGGIUNGERE LE LINEE SEGUENTI AL VOSTRO DHCPD.CONF PER FAR USARE IL WINS SERVER AI CLIENT

<file dhcpd.conf>
[...]
option routers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
option netbios-dd-server 192.168.0.1;
option netbios-node-type 8;
[...]
</file>

Per avere un WINS server funzionante, ho un server Samba attivo, configurato come segue:

<file smb.conf>
; validated with samba 2.0.5
[global]
   workgroup = rycks.com
   server string = Linux Box
   comment = Linux Box
   netbios name = pantoufle
   volume = pantoufle
   guest only = yes

   guest account = nobody
   log file = /var/log/samba-log.%m
   max log size = 50

   share modes = yes
   security = share
   socket options = TCP_NODELAY 
   os level = 33

   ; Configured as network master
   domain master = yes
   local master = yes
   preferred master = yes

   ; Activate wins support
   wins support = yes
   wins proxy = yes

 ; FTP sharing
 [ftp]
   path = /home/ftp/pub
   public = yes
   printable = no
   guest ok = yes

</file>

Se sono state fatte delle modifiche, è necessario riavviare i server dhc, samba e dns. Riavviate anche i client dhcp così che acquisiscano la nuova configurazione. Controllate i gruppi nelle "altre" reti nelle "Risorse di rete".
Dato il solito tempo necessario a windows per vedere le nuove macchine nelle "risorse di rete", suggerisco di ricercare un computer per nome. Provate a cercare un computer sulla rete su cui siete, e poi uno sull'altra rete.

Se potete "vedere" le macchine da fuori ma non potete accedervi, vi occorre configurare il gateway in modo che agisca da vero gateway tra le due reti.
Per maggiori informazioni su queto argomento date un'occhiata a ipchains.

Di solito è necessario usare qualcosa di simile a:

#Reset chains
ipchains -F
#Activate masquerading
#to check according to default etc.
ipchains -A forward -i eth0 -j MASQ
 

Bug e limitazioni

Attenzione che, se il server dhcp è usato in due aree allo stesso tempo, ci sarà solo un file dns in uscita dal programma... Sarà quindi necessario riordinare il file a mano.

Spero che questo documento vi sia utile. Contattatemi pure per commenti o domande.  

Riferimenti

Per un approfondimento delle varie parti, consultare:

 

Dove trovare l'ultima versione di questo documento?

Gli aggiornamenti sono frequenti, controllate l'indirizzo seguente per l'ultima versione in francese sul sito: http://www.rycks.com/erics/linux/  

Commenti per questo articolo

Ogni articolo ha la sua pagina dei commenti. Su questa pagina possibile inviare un commento o leggere i commenti degli altri lettori:
 Pagina dei commenti 

Pagine web mantenute dal Team degli Editori di LinuxFocus
© Eric SEIGNE
LinuxFocus.org 2000

Clicca qui per segnalare un errore o per inviare un commento a Linuxfocus
Informazioni sulla traduzione:
fr -> -- Eric SEIGNE
fr -> en John Perr
en -> it Antonio Schifano

2000-05-10, generated by lfparser version 1.5