Il pacchetto BIND dalla versione 9.x.x contiene l'utility rndc per la gestione e controllo del servizio. Rndc comunica con il named attraverso una connessione TCP inviando comandi autenticati tramite una signature digitale.
In caso si stesse utilizzando BIND 8.x.x il suo corrispettivo tool si chiama ndc e ha poche differenze con l'attuale rndc.
Se si desidera utilizzare rndc per gestire il named bisogna innanzi tutto lavorare sul file di configurazione /etc/named.conf
e su /etc/rndc.conf
.
Esiste un comodo tool per creare un rndc.conf e si chiama rndc-confgen
, questa utility ha diverse opzioni per le quali rimando alla sua pagina del manuale in linea Unix.
Lanciando come root il comando senza opzioni si ottiene sullo standard output (quindi facilmente ridirezionabile ad un file) una serie di direttive da aggiungere poi a mano nei rispettivi file di configurazione:
bash-2.05a# rndc-confgen
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "m7Umc6qeKl1Q0eeMjVSq0g==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "m7Umc6qeKl1Q0eeMjVSq0g==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
Una volta editato i due file rndc.conf
e named.conf
mantenendo queste direttive così come sono avremo la possibilità di utilizzare rndc solo da locale, dall'host cioè che fornisce il servizio named.
Per utilizzare rndc da remoto sarà importante cambiare la direttiva controls
in modo che rispecchi la nostra configurazione di rete e sarà necessario avere sulla macchina amministrativa un rndc.conf con la giusta chiave. Lo scambio di questo secret può avvenire in diversi modi, via email o via telefono, è importante ricordare che chiunque conosca la shared-key sarà ammesso al canale di controllo di named con ovvie ripercussioni sulla sua sicurezza, la chiave quindi va custodita con cura e non bisogna scordare che i file di configurazione devono essere leggibili da un ristretto gruppo di utenti "trusted".
La sua sintassi è la seguente:
rndc [opzioni] [comandi]
Vediamo ora le principali opzioni di rndc:
-c config_file
: permette di specificare un diverso file di configurazione dallo standard /etc/rndc.conf
.
-k key_file
: permette di specificare un diverso key_file dallo standard /etc/rndc.key
che verrà utilizzato per autenticare i comandi inviati al server in caso un rndc.conf
non sia presente (per approfondimenti leggere il manuale in linea unix di rndc-confgen
).
-s server
: permette di specificare un server a cui inviare i comandi. Se usata questa opzione sovrascrive la direttiva default-server
di rndc.conf
.
-y key_id
: rndc generalmente va a cercare nel file di configurazione del named l'istanza che identifica la chiave da usare per il sign delle comunicazioni. Questa opzione permette di specificare la chiave che si desidera utilizzare.
Per la gestione del server DNS rndc accetta vari comandi:
halt
: Ferma immediatamente il servizio DNS.
querylog
: Abilita il logging delle query che il named riceve dai suoi clienti.
refresh
: Fa effettuare al named un refresh dei suoi file di zona.
reload
: Simile al refresh permette di far rileggere al named i file di zona senza però fargli "pulire" la cache. In più accetta come parametro il nome del singolo file di zona evitando così di oberare il server nella lettura di file che non hanno subito cambiamenti. La sintassi così è: rndc reload file_di_zona
stats
: Esegue un dump delle statistiche attuali del server nel file /var/named/named.stats
.
stop
: Ferma il server in maniera "pulita" perchè permette al server di salvare ogni dynamic-update o qualunque dato IXFR prima di uscire.
restart
: Fa ripartire il server facendogli salvare tutti i dynamic-update e i dati IXFR e facendogli rileggere tutti i suoi file compreso il named.conf
Installazione di BIND tramite RPM e sorgenti, file installati e posizioni. Gestione del servizio.
Domanda o affermazione?
Non sono sicuro su caosa intendi. Comunque:
Se vuoi fare in modo che tramite DNS si cambi la porta associata ad un servizio (es: dirottare una connessione ftp a ftp.tizio.it verso la porta 665 di caio.it), questo non è possibile.
Se vuoi fare in modo che ftp.tizio.it venga risolto con indirizzi diversi a secodna dell'IP del client, questo puoi farlo con le views.
ridirezionare su altre porte
è possibile fare in modo che il dns (uso il famoso bind -9.2.2-) automaticamente
dirotti le richieste dns ftp.tizio.it verso porte diverse.