Un server DNS e DHCP su Debian: differenze tra le versioni

m
Riga 326: Riga 326:


==== Allow e Deny known/unknown clients ====
==== Allow e Deny known/unknown clients ====
È importante prestare molta attenzione al parametro '''deny''' ''known/unknown clients'', infatti quando viene dichiarato in un certo ambito seguirà necessariamente che tutti gli ambiti più specifici ne saranno influenzati. Supponiamo per esempio di avere diversi intervalli di indirizzi IP e che la maggior parte di essi non debbano essere accessibili ai dispositivi sconosciuti; si potrebbe allora essere tentati di piazzare un bel ''deny unknown-clients'' a livello di ''shared-network'' o ''subnet'' e poi di dichiare ''allow unknown-clients'' nei singoli intervalli. Grave errore.<br>Quando un client contatta il server dhcp questi cerca un indirizzo IP e inizializza i vari parametri da passare al client; il server cerca una dichiarazione 'host'' per il client e non trovandola lo classifica come sconosciuto; successivamente valuta le dichiarazioni ''class'' (che supponiamo assenti) e poi quelle di tipo ''pool'', dove risulta che per tutte è possibile l'accesso da parte di client sconosciuti, poiché se non viene dichiarato ne ''allow' ne ''deny'' chiunque ha accesso al range di indirizzi in oggetto.<br>Il passo successivo è valutare le dichiarazioni ''subnet'' e ''shared-network'', dove per ipotesi il server troverà sicuramente la dichiarazione ''deny unknown-hosts''; poiché tale parametro non è mai stato definito in precedenza segue immediatamente che ''subnet'' o ''shared-network'' sono gli ambiti di definizione più specifici per il parametro, quindi quelli dove viene determinato il valore di ''deny'' per quanto riguarda l'accesso ai range di indirizzi (''allow'' e ''deny'' possono essere contemporaneamente usati anche per valutare altri aspetti).<br>Ricapitolando si ha che per la maggiranza delle dichiarazioni ''pool'' risulta definito il solo parametro ''deny unknown-clients'' come effettivamente desiderato, mentre per le rimanenti risultano definiti contemporaneamente ''deny unknown-clients'' e ''allow unknown-clients''. Come esplicitamente scritto nel manuale, qualora per un range di IP risultino definiti sia i parametri ''allow'' che ''deny'' il client può averne accesso solo se appartiene alla lista dei client permessi e contemporaneamente NON appartiene a quella dei client impediti. Risulta quindi evidente che avendo scelto di discriminare l'accesso sulla base di conosciuto/sconosciuto tutti i client sconosciuti si vedranno impedito l'accesso ad ogni ''pool'', poiché al più soddisfano la condizione ''allow'', ma non quella ''deny''.<br>L'unica soluzione, a meno di non optare per una valutazione basata sull'utilizzo delle classi invece della parola chiave conosciuto/sconosciuto, è quella di definire il solo parametro ''deny unknown-clients'' nelle ''pool'' dove si vuole negare l'accesso ai client sconosciuti.
È importante prestare molta attenzione al parametro '''deny''' ''known/unknown clients'', infatti quando viene dichiarato in un certo ambito seguirà necessariamente che tutti gli ambiti più specifici ne saranno influenzati. Supponiamo per esempio di avere diversi intervalli di indirizzi IP e che la maggior parte di essi non debbano essere accessibili ai dispositivi sconosciuti; si potrebbe allora essere tentati di piazzare un bel ''deny unknown-clients'' a livello di ''shared-network'' o ''subnet'' e poi di dichiare ''allow unknown-clients'' nei singoli intervalli. Grave errore.<br>Quando un client contatta il server dhcp questi cerca un indirizzo IP e inizializza i vari parametri da passare al client; il server cerca una dichiarazione ''host'' per il client e non trovandola lo classifica come sconosciuto; successivamente valuta le dichiarazioni ''class'' (che supponiamo assenti) e poi quelle di tipo ''pool'', dove risulta che per tutte è possibile l'accesso da parte di client sconosciuti, poiché se non viene dichiarato ne ''allow'' ne ''deny'' chiunque ha accesso al range di indirizzi in oggetto.<br>
Il passo successivo è valutare le dichiarazioni ''subnet'' e ''shared-network'', dove per ipotesi il server troverà sicuramente la dichiarazione ''deny unknown-hosts''; poiché tale parametro non è mai stato definito in precedenza segue immediatamente che ''subnet'' o ''shared-network'' sono gli ambiti di definizione più specifici per il parametro, quindi quelli dove viene determinato il valore di ''deny'' per quanto riguarda l'accesso ai range di indirizzi (''allow'' e ''deny'' possono essere contemporaneamente usati anche per valutare altri aspetti).<br>Ricapitolando si ha che per la maggiranza delle dichiarazioni ''pool'' risulta definito il solo parametro ''deny unknown-clients'' come effettivamente desiderato, mentre per le rimanenti risultano definiti contemporaneamente ''deny unknown-clients'' e ''allow unknown-clients''. Come esplicitamente scritto nel manuale, qualora per un range di IP risultino definiti sia i parametri ''allow'' che ''deny'' il client può averne accesso solo se appartiene alla lista dei client permessi e contemporaneamente NON appartiene a quella dei client impediti. Risulta quindi evidente che avendo scelto di discriminare l'accesso sulla base di conosciuto/sconosciuto tutti i client sconosciuti si vedranno impedito l'accesso ad ogni ''pool'', poiché al più soddisfano la condizione ''allow'', ma non quella ''deny''.<br>L'unica soluzione, a meno di non optare per una valutazione basata sull'utilizzo delle classi invece della parola chiave conosciuto/sconosciuto, è quella di definire il solo parametro ''deny unknown-clients'' nelle ''pool'' dove si vuole negare l'accesso ai client sconosciuti.


==== Conoscere i dettagli del ''lease'' concesso da client ====
==== Conoscere i dettagli del ''lease'' concesso da client ====
3 155

contributi