Visualizzazione post con etichetta dhcp. Mostra tutti i post
Visualizzazione post con etichetta dhcp. Mostra tutti i post

giovedì 27 giugno 2013

BIND+DHCP: gli aggiornamenti dinamici del DNS non funzionano

Se gli aggiornamenti dinamici del DNS non funzionano, controllate se nel file /var/log/daemon.log trovate qualcosa di simile a quanto segue:
Jun 27 22:27:26 milhouse named[3278]: /etc/bind/zones/db.simpson.jnl: open: permission denied
Jun 27 22:27:26 milhouse named[3278]: client 192.168.2.130#40535: updating zone 'corimtec.mylan/IN': error: journal open failed: unexpected error
Jun 27 22:27:26 milhouse dhcpd: Forward map from bart.simpson.local. to 192.168.2.162 FAILED: SERVFAIL
Per risolvere questo problema occorre verificare i permessi del file .jnl (nell'esempio /etc/bind/zones/db.simpson.jnl).
Nel nostro caso l'utente bind non aveva accesso in scrittura sul file .jnl

-rw-r--r-- 1 root bind 5951774 Jun 27 22:42 /etc/bind/zones/db.simpson.jnl

Basta assegnare l'apposito permesso con il comando

chmod 664 /etc/bind/zones/db.simpson.jnl

Ottenendo quindi:

-rw-rw-r-- 1 root bind 5951774 Jun 27 22:42 /etc/bind/zones/db.simpson.jnl



domenica 8 febbraio 2009

dns bind9: modifica zona con dynamic update

Se state aggiornando dinamicamente il vostro DNS tramite dynamic update (ad esempio, ogni volta che una macchina ottiene un indirizzo IP dal server DHCP della vostra rete), dovete fare attenzione nel caso vogliate modificare manualmente il file di definizione di una zona (ad esempio per inserire i riferimenti a un nuovo server).

I dynamic update infatti utilizzano un file .jnl (journal) in cui tengono traccia delle loro modifiche alla zona. Prima di modificare la zona manualmente dovete disabilitare il file di journal con il comando:
rndc freeze NOME_ZONA

Dopo aver completato le modifiche dovete riattivare il file di journal con il comando:
rndc unfreeze NOME_ZONA

giovedì 24 aprile 2008

dhcp_probe: scopriamo i server DHCP sulla nostra rete

E a che vi serve? Voi sapete benissimo quali sono i DHCP sulla vostra rete....

Beh non e' detto....qualche "simpaticone" potrebbe essersi intrufolato e avervi installato il suo DHCP server che darebbe informazioni errate ai vostri client indirizzandoli verso angoli oscuri della rete. Il tutto ovviamente per carpirvi informazioni.

Bene, c'e' un bel software per SUN che rileva eventuali server DHCP illegali (rogue DHCP servers), si chiama dhcp_probe, e' stato sviluppato all'universita' di Princeton e lo trovate QUI.

Dicevo che e' un software per SUN pero' (e la trovate nella home page del progetto) e' stata scritta una patch che ne consente la compilazione sotto Linux.

Vediamo come fare per compilare il pacchetto su sistemi Ubuntu Linux, posizioniamoci nella directory dove teniamo i sorgenti da compilare:
cd /usr/local/src

Scarichiamo il programma:

Scarichiamo la patch per compilarlo in Linux:

Scompattiamo il pacchetto contenente i sorgenti:
tar xzvf dhcp_probe-1.2.1.tar.gz

Applichiamo la patch:
patch -p0 < dhcp_probe-1.2.1-weppelman-1.diff.txt

Ora se vivessimo in un mondo perfetto, basterebbe digitare:

./configure;make;make install

per compilare e installare il programma.

Purtroppo, almeno oggi su Ubuntu Gutsy alla vigilia del rilascio di Ubuntu Heron, sono necessarie due librerie. La prima, libpcap, la installiamo agevolmente con il seguente comando:
sudo apt-get install libpcap-dev
La seconda, libnet, dobbiamo ricompilarla in quanto le manca una funzione fondamentale per il funzionamento del nostro programma. Vediamo come fare:

cd /usr/local/src
apt-get source libnet1-dev
cd libnet-1.1.2.1

sudo gedit src/libnet_cq.c

Aggiungere queste linee a fine file:

u_int32_t
libnet_cq_end_loop()
{

if (! clear_cq_lock(CQ_LOCK_WRITE))
{
return (0);
}
l_cqd.current = l_cq;
return (1);
}


sudo gedit include/libnet/libnet_functions.h

Aggiungere queste linee a fine file:

u_int32_t
libnet_cq_end_loop();


A questo punto bisogna ricompilare il pacchetto libnet:
dpkg-buildpackage

Questo comando generera' in /usr/local/src (o piu' in generale nella directory dove tenete i sorgenti) due pacchetti deb:

libnet1_1.1.2.1-2build1_i386.deb
libnet1-dev_1.1.2.1-2build1_i386.deb

Che andiamo a installare con il comando:
sudo dpkg -i libnet1_1.1.2.1-2build1_i386.deb libnet1-dev_1.1.2.1-2build1_i386.deb

A questo punto possiamo riprovare a compilare il pacchetto dhcp_probe come a inizio post, quindi:

cd /usr/local/src/dhcp_probe-1.2.1
./configure
make
make install
cp extras/dhcp_probe.cf.sample /etc/dhcp_probe.cf


Possiamo poi lanciare il programma con questa linea di comando:
dhcp_probe -f -d 11 eth0