5.3. Sicurezza di un NIS

NIS significa Network Information Service. Esso è un servizio RPC chiamato ypserv, il quale viene usato insieme con portmap e altri servizi relativi, per distribuire delle mappe sui nomi utente, sulle password, e altre informazioni importanti, per qualsiasi computer che afferma di trovarsi all'interno del proprio dominio.

Un server NIS è composto da diverse applicazioni. Esse includono quanto segue:

NIS è insicuro per gli standard odierni. Non possiede alcun meccanismo di autenticazione e dirige tutte le sue informazioni attraverso la rete in chiaro, incluso le password. Per questo motivo, fate molta attenzione se impostate una rete che usa NIS. Per complicare maggiormente la situazione, la configurazione di default di NIS è completamente insicura.

È consigliato per coloro che decidono d'implementare un server NIS, di rendere sicuro il servizio portmap come riportato nella Sezione 5.2, e indirizzare i seguenti problemi.

5.3.1. Pianificare attentamente la rete

A causa del passaggio in chiaro di informazioni importanti da parte di NIS, è fondamentale eseguire il servizio su di una rete segmentata e sicura e utilizzando un firewall. Ogni qualvolta che le informazioni NIS vengono passate sulla rete, si può correre il rischio di farle intercettare. Le reti create attentamente per evitare il suddettoproblema, aiutano a prevenire violazioni serie della sicurezza.

5.3.2. Uso di un'autorizzazione del nome del dominio NIS e dell'hostname

Qualsiasi macchina all'interno di un dominio NIS, è in grado di usare dei comandi per estrarre informazioni dal server senza usare alcuna autenticazione. Questo può essere eseguito solo se l'utente conosce l'hostname DNS del server NIS e il nome del dominio NIS.

Per esempio, se un utente collega un computer portatile all'interno della rete, oppure irrompe nella rete dall'esterno, (e riesce a ottenere un indirizzo IP interno), il seguente comando rivelerà la posizione di /etc/passwd:

ypcat -d <NIS_domain> -h <DNS_hostname> passwd

Se l'aggressore è un utente root (super utente), egli può ottenere il file /etc/shadow, digitando il seguente comando:

ypcat -d <NIS_domain> -h <DNS_hostname> shadow

NotaNota
 

Se viene usato Kerberos, il file /etc/shadow non viene conservato all'interno di una mappa NIS.

Per rendere l'accesso alle mappe NIS più difficoltoso per un aggressore, create randomicamente una riga per l'hostname DNS, come ad esempio o7hfawtgmhwg.domain.com. Analogamente, create un nome del dominio NIS di tipo 'randomized' diverso. Il tutto renderà più difficile il tentativo d'ingresso da parte di un aggressore al server NIS.

5.3.3. Modifica del file /var/yp/securenets

Se il file /var/yp/securenets è vuoto oppure inesistente (nel caso di una installazione di default), NIS sarà in grado di ascoltare tutte le reti. È consigliato inserire delle coppie maschera di rete/rete nel file, in modo tale che ypserv risponderà solo alle richieste della rete corretta.

Di seguito viene riportato un esempio di una entry da un file /var/yp/securenets:

255.255.255.0     192.168.0.0

AttenzioneAvvertanza
 

Non iniziare mai un server NIS per la prima volta, senza aver creato il file /var/yp/securenets

Questa tecnica non fornisce protezione da un attacco del tipo spoofing IP, ma pone dei limiti sul numero di reti sulle quali verrà assistito il server NIS.

5.3.4. Assegnazione di porte statiche e uso delle regole IPTables

A tutti i server collegati a NIS possono essere asssegnati delle porte specifiche, ad eccezione di rpc.yppasswdd — e cioè il demone che permette agli utenti di cambiare le loro password di login. L'assegnazione delle porte ai due demoni del server NIS, rpc.ypxfrd e ypserv, vi permetterà di creare delle regole per il firewall, per proteggere maggiormante quindi, i demoni del server NIS da eventuali aggressioni.

Per fare ciò, aggiungete le seguenti linee a /etc/sysconfig/network:

YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"

Possono essere emesse le seguenti regole IPTables, per indicare al server, quale rete dovrà ascoltare per queste porte:

iptables -A INPUT -p ALL -s! 192.168.0.0/24  --dport 834 -j DROP
iptables -A INPUT -p ALL -s! 192.168.0.0/24  --dport 835 -j DROP

SuggerimentoSuggerimento
 

Per maggiori informazioni sull'implementazione dei firewall con i comandi IPTable, consultate Capitolo 7.

5.3.5. Uso dell'autenticazione Kerberos

Uno dei difetti inerenti l'uso di NIS durante un'autenticazione, è rappresentato dall'emissione, da parte della mappa /etc/shadow, di una password hash ogni qualvolta un utente effettua una registrazione all'interno della macchina. Se un aggressore ottiene l'accesso a un dominio NIS effettuando una ricerca del traffico di rete, i nomi utente e le password, possono essere facilmente rubate. Con tempo sufficiente, un programma d'intromissione nelle password (password cracking program), può rilevare le password deboli, permettendo così ad un cracker di ottenere accesso ad un account valido presente sulla rete.

Da quando Kerberos usa una cifratura con chiave segreta, nessuna password hashes è mai stata inviata attraverso la rete, rendendo il sistema molto più sicuro. Per maggiori informazioni su Kerberos, consultate il capitolo intitolato Kerberos nella Red Hat Enterprise Linux Reference Guide.