DNS e DHCP in CentOS 7 - Reti SMB

Indice generale della serie: Reti di computer per le PMI: Introduzione

Ciao amici!. Vedremo in questo articolo come implementare l'importante coppia di servizi per reti costituita dal DNS e DHCP su CentOS - Linux, in particolare nella sua versione 7.2.

  • Alcuni articoli sul DNS fanno riferimento al fatto che l'implementazione di questo servizio è un po 'oscura e difficile. Non sono del tutto d'accordo con questa affermazione. Preferisco dire che è un po 'concettuale e che molti dei suoi file di configurazione hanno una sintassi esigente. Fortunatamente, abbiamo strumenti per controllare, passo dopo passo, la sintassi di ogni file di configurazione che modifichiamo. Pertanto, cercheremo di rendere la lettura di questo post il più piacevole e divertente possibile..

Per chi cerca concetti di base su entrambi i servizi, consigliamo vivamente di iniziare la ricerca su Wikipedia, sia nella versione spagnola che in quella inglese. Non è meno vero che gli articoli in inglese sono quasi sempre più completi e coerenti. Tuttavia, Wikipedia è un ottimo punto di partenza.

Per quelli di voi che vogliono davvero conoscere DNS e BIND, consigliamo di leggere il libro «OReilly - DNS e BIND 4ed" scritto da Paul albitz y Grillo Liu, o un'edizione successiva che sicuramente esiste.

Abbiamo già pubblicato un articolo sull'argomento dal titolo «DNS e DHCP in openSUSE 13.2 Harlequin - SME Networks»Per gli amanti dell'ambiente grafico. Tuttavia, d'ora in poi si troveranno di fronte ad articoli su questo argomento - non su altri - scritti con molto uso dell'emulatore di un terminale o di una console. Wow, nel classico stile utilizzato dagli amministratori di sistema UNIX® / Linux.

Se vuoi saperne di più sul cognome del titolo di questo articolo «Reti di PMI»Puoi visitare la pagina in questo blog«Reti di PMI: primo taglio virtuale«. In esso troverai collegamenti a molti altri articoli pubblicati.

  • Dopo che l'installazione del sistema operativo CentOS 7 è terminata con i pacchetti che consigliamo, edirectory l /usr/share/doc/bind-9.9.4/ Contiene una buona quantità di documentazione che ti consigliamo di consultare prima di avventurarti in una ricerca su Internet senza prima sapere che, a portata di mano ea casa tua, puoi trovare quello che stai cercando.

Installazione del sistema di base

Dati generali del dominio e del server DNS

Nome di dominio: desdelinux.fan
Nome del server DNS: dns.desdelinux.fan
indirizzo IP: 192.168.10.5
Maschera di sottorete: 255.255.255.0

Installazione

Partiamo da una nuova o pulita installazione del sistema operativo CentOS 7 come indicato nell'articolo precedente «Hypervisor I di CentOS 7 - Reti SMB«. Dobbiamo solo apportare le seguenti modifiche:

  • Qui alla Imagen 22 «SELEZIONE DEL SOFTWARE«, Consigliamo di scegliere nella colonna di sinistra«Ambiente di base»L'opzione corrispondente a«Server infrastruttura«, Mentre nella colonna di destra«Plugin per l'ambiente selezionato»Seleziona la casella di controllo«Server dei nomi DNS«. In seguito installeremo il server DHCP.
  • Ricordiamo la dichiarazione dei repository aggiuntivi come mostrato nel file Imagen 23, dopo aver impostato il «RETE E NOME DEL TEAM«.
  • Le immagini che si riferiscono alle partizioni che creeremo sul nostro disco rigido sono fornite solo come guida. Sentiti libero di selezionare le partizioni a tua discrezione, pratica e buon senso.
  • Finalmente, nel Immagine 13 «NETWORK & TEAM NAME», dobbiamo modificare i valori in base ai parametri generali del dominio e del server DNS dichiarati, senza dimenticare di specificare il nome dell'host -in questo caso «dns«- dopo che la configurazione di rete è stata completata. È positivo da fare ping -da un altro host- all'indirizzo IP specificato dopo che la rete è attiva:

DNS e DHCP su CentOS

Sono davvero pochi e molto evidenti i cambiamenti che dobbiamo apportare rispetto all'articolo precedente.

Controlli e adeguamenti iniziali

Dopo aver installato il sistema operativo dobbiamo rivedere almeno i seguenti file, e per questo avviamo una sessione tramite SSH dal nostro computer amministratore di sistema.desdelinux.fan:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
password buzz@192.168.10.5: Ultimo accesso: Sab 28 gennaio 09:48:05 2017 da 192.168.10.1
[buzz @ dns ~] $

L'operazione di cui sopra potrebbe richiedere più tempo del normale ed è principalmente dovuta al fatto che non abbiamo ancora un DNS sulla LAN. Controlla più tardi che il DNS funzioni.

[buzz @ dns ~] $ cat / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

[buzz @ dns ~] $ cat / etc / hostname
dns

[buzz @ dns ~] $ cat / etc / sysconfig / network-scripts / ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=946f5ac9-238a-4a94-9acb-9e3458c680fe
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.5
PREFIX=24
GATEWAY=192.168.10.1
DNS1=127.0.0.1
DOMAIN=desdelinux.fan

[buzz @ dns ~] $ cat /etc/resolv.conf 
# Generated by NetworkManager
search desdelinux.fan
nameserver 127.0.0.1

Le principali configurazioni rispondono alle nostre selezioni. Nota che anche su un server Red Hat 7 - CentOS 7, è configurato per impostazione predefinita quando NetworkManager in modo che questo sia colui che gestisce le interfacce di rete, siano esse cablate o wireless (WiFi), connessioni VPN, connessioni PPPoE e qualsiasi altra connessione di rete.

[buzz @ dns ~] $ sudo systemctl status networkmanager
[sudo] password per buzz: ● networkmanager.service Caricato: non trovato (motivo: nessun file o directory di questo tipo) Attivo: inattivo (morto)

[buzz @ dns ~] $ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager caricato: caricato (/usr/lib/systemd/system/NetworkManager.service; abilitato; preimpostazione del fornitore: abilitata) Attivo: attivo (in esecuzione) da sab 2017-01-28 12:23:59 EST; 12min fa PID principale: 705 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─705 / usr / sbin / NetworkManager --no-daemon

Red Hat - CentOS consente anche di connettere e disconnettere le interfacce di rete utilizzando i comandi classici ifup e se giù. Eseguiamo su una console del server:

[root @ dns ~] # ifdown eth0
Il dispositivo "eth0" è stato disconnesso correttamente.

[root @ dns ~] # ifup eth0
Connessione attivata correttamente (percorso D-Bus attivo: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • Consigliamo non modificare le impostazioni predefinite offerte da CentOS 7 rispetto a NetworkManager.

Dichiariamo definitivamente i repository che utilizzeremo e aggiorneremo il sistema operativo se necessario:

[buzz @ dns ~] $ su Password: [root @ dns buzz] # cd /etc/yum.repos.d/
[root @ dns yum.repos.d] # ls -l
totale 28 -rw-r - r--. 1 radice radice 1664 9 dicembre 2015 CentOS-Base.repo -rw-r - r--. 1 radice radice 1309 9 dicembre 2015 CentOS-CR.repo -rw-r - r--. 1 root root 649 9 dicembre 2015 CentOS-Debuginfo.repo -rw-r - r--. 1 radice radice 290 9 dicembre 2015 CentOS-fasttrack.repo -rw-r - r--. 1 radice radice 630 9 dicembre 2015 CentOS-Media.repo -rw-r - r--. 1 radice radice 1331 9 dicembre 2015 CentOS-Sources.repo -rw-r - r--. 1 radice radice 1952 9 dicembre 2015 CentOS-Vault.repo

È salutare leggere il contenuto dei file di dichiarazione originali dai repository consigliati da CentOS. I cambiamenti che facciamo qui sono dovuti al fatto che non abbiamo accesso a Internet e lavoriamo con archivi locali scaricati dal WWW Village, da colleghi che ci semplificano la vita. 😉

[root @ dns yum.repos.d] # mkdir originale
[root @ dns yum.repos.d] # mv CentOS- * originale /

[root @ dns yum.repos.d] # nano centos-repos.repo
[centos-base]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/base/
gpgcheck=0
enabled=1

[centos-updates]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1

[root @ dns yum.repos.d] # yum pulisci tutto
Plugin caricati: più velocemirror, langpacks Pulizia dei repository: centos-base centos-updates Pulizia di tutto

[root @ dns yum.repos.d] # yum update
Plugin caricati: più velocemirror, langpacks centos-base | 3.4 kB 00:00 centos-updates | 3.4 kB 00:00 (1/2): centos-base / primary_db | 5.3 MB 00:00 (2/2): centos-updates / primary_db | 9.1 MB 00:00 Determinazione dei mirror più veloci Nessun pacchetto contrassegnato per l'aggiornamento

Il messaggio «Nessun pacchetto (esistente) contrassegnato per l'aggiornamento» - «Nessun pacchetto contrassegnato per l'aggiornamento»Indica che, dichiarando i repository più aggiornati a nostra disposizione durante l'installazione, sono stati installati proprio i pacchetti più aggiornati.

Informazioni sul contesto SELinux e sul firewall

Concentreremo questo articolo, fondamentalmente, sull'implementazione dei servizi DNS e DHCP, che è il suo obiettivo principale.

Se un lettore ha selezionato una politica di sicurezza durante il processo di installazione, come indicato nel file Imagen 06 dell'articolo di riferimento «Hypervisor I di CentOS 7 - Reti SMB»Utilizzato per l'installazione di questo server DNS - DHCP, e scopri che non sai come configurare correttamente SELinux e il Firewall CentOS, ti suggeriamo di eseguire quanto segue:

Modifica il file / etc / sysconfig / selinux e cambiare SELINUX = enforcing by SELINUX = disabilita

[root @ dns ~] # nano / etc / sysconfig / selinux
# Questo file controlla lo stato di SELinux sul sistema. # SELINUX = può assumere uno di questi tre valori: # enforcing - La politica di sicurezza di SELinux viene applicata. # permissive - SELinux stampa avvisi invece di applicare. # disabled - Non viene caricata alcuna policy SELinux.
SELINUX = disabled
# SELINUXTYPE = può assumere uno di tre due valori: # mirato - I processi mirati sono protetti, # minimo - Modifica della politica mirata. Solo i processi selezionati sono pr $ # mls - Protezione Multi Level Security. SELINUXTYPE = mirato

Quindi esegui i seguenti comandi

[root @ dns ~] # setenforce 0
[root @ dns ~] # servizio firewalld interrotto
Reindirizzamento a / bin / systemctl stop firewalld.service

[root @ dns ~] # systemctl disabilita firewalld
Rimosso collegamento simbolico /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Rimosso collegamento simbolico /etc/systemd/system/basic.target.wants/firewalld.service.

Se stai implementando un server DNS rivolto a Internet, NON dovresti fare quanto sopra, ma configurare correttamente il contesto SELinux e il Firewall. Vedere "Configurazione del server con GNU / Linux, dell'autore Joel Barrios Dueñas" o la stessa documentazione di CentOS - Red Hat

Configuriamo il BIND - denominato

  • Edirectory l /usr/share/doc/bind-9.9.4/ contiene una buona quantità di documentazione che ti consigliamo di consultare prima di avventurarti in una ricerca su Internet senza prima sapere che, a portata di mano ea casa tua, puoi trovare quello che stai cercando

In molte distribuzioni viene chiamato il servizio DNS installato tramite il pacchetto BIND detto (Nome Daemon). In CentOS 7 è installato disabilitato di default, secondo l'output del seguente comando, dove si afferma che il suo stato è «disabile«, E che questo stato è predefinito dal suo« venditore »- preimpostazione del fornitore. Per la cronaca, BIND è un software libero.

Abilitazione del servizio denominato

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) caricato: caricato (/usr/lib/systemd/system/named.service; disabile; preset fornitore: disabilitato) Attivo: inattivo (morto)

[root @ dns ~] # systemctl abilita named
Creato collegamento simbolico da /etc/systemd/system/multi-user.target.wants/named.service a /usr/lib/systemd/system/named.service.

[root @ dns ~] # systemctl inizia con nome

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) caricato: caricato (/usr/lib/systemd/system/named.service; abilitato; preset fornitore: disabilitato)
   Attivo: attivo (in esecuzione) da sab 2017-01-28 13:22:38 EST; 5min fa Processo: 1990 ExecStart = / usr / sbin / named -u named $ OPTIONS (code = exited, status = 0 / SUCCESS) Process: 1988 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "sì"]; quindi / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Il controllo dei file di zona è disabilitato"; fi (code = exited, status = 0 / SUCCESS) Main PID: 1993 (named) CGroup: /system.slice/named.service └─1993 / usr / sbin / named -u named Jan 28 13:22:45 dns named [1993]: errore (rete irraggiungibile) risoluzione di "./NS/IN": 2001: 500: 2f :: f # 53 Jan 28 13:22:47 dns denominato [1993]: errore (rete non raggiungibile) risoluzione di "./ DNSKEY / IN ': 2001: 500: 3 :: 42 # 53 Jan 28 13:22:47 DNS denominato [1993]: errore (rete non raggiungibile) risoluzione di' ./NS/IN ': 2001: 500: 3 :: 42 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di "./DNSKEY/IN": 2001: 500: 2d :: d # 53 Jan 28 13:22:47 dns named [1993 ]: errore (rete non raggiungibile) nella risoluzione di "./NS/IN": 2001: 500: 2d :: d # 53 Jan 28 13:22:47 dns denominato [1993]: errore (rete non raggiungibile) nella risoluzione di "./DNSKEY/ IN ': 2001: dc3 :: 35 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di' ./NS/IN ': 2001: dc3 :: 35 # 53 Jan 28 13: 22:47 dns named [1993]: errore (rete non raggiungibile) risoluzione di "./DNSKEY/IN": 2001: 7fe :: 53 # 53 Jan 28 13:22:47 dns named [1993]: errore (rete non raggiungibile) res olving './NS/IN': 2001: 7fe :: 53 # 53 Jan 28 13:22:48 dns named [1993]: managed-keys-zone: Impossibile recuperare il set DNSKEY '.': timeout

[root @ dns ~] # systemctl riavvio denominato

[root @ dns ~] # stato systemctl denominato
● named.service - Berkeley Internet Name Domain (DNS) Loaded: caricato (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
   Attivo: attivo (in esecuzione) da sab 2017-01-28 13:29:41 EST; 1s fa Processo: 1449 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 2> & 1 || / bin / kill -TERM $ MAINPID (code = exited, status = 0 / SUCCESS) Process: 1460 ExecStart = / usr / sbin / named -u named $ OPTIONS (code = exited, status = 0 / SUCCESS) Process: 1457 ExecStartPre = / bin / bash -c se [! "$ DISABLE_ZONE_CHECKING" == "sì"]; quindi / usr / sbin / named-checkconf -z /etc/named.conf; else echo "Il controllo dei file di zona è disabilitato"; fi (code = exited, status = 0 / SUCCESS) Main PID: 1463 (named) CGroup: /system.slice/named.service └─1463 / usr / sbin / named -u named Jan 28 13:29:41 dns named [1463]: managed-keys-zone: il file journal non è aggiornato: rimozione del file journal 28 gennaio 13:29:41 dns denominato [1463]: managed-keys-zone: caricato seriale 2 gennaio 28 13:29:41 dns named [1463]: zone 0.in-addr.arpa/IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone localhost.localdomain / IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone 1.0.0.127.in-addr.arpa/IN: caricato seriale 0 Jan 28 13:29:41 dns named [1463]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .6.ip0.arpa / IN: caricato seriale 28 gen 13 29:41:1463 dns denominato [0]: zone localhost / IN: caricato seriale 28 gen 13 29 : 41: 1463 dns con nome [28]: tutte le zone caricate il 13 gennaio 29:41:1463 dns con nome [28]: in esecuzione il 13 gennaio 29:41:1 dns systemd [XNUMX]: avviato Berkeley Internet Name Domain (DNS).

Dopo aver abilitato il servizio detto e lo avviamo per la prima volta, l'output del comando stato systemctl denominato mostra errori. Quando riavviamo il servizio di seguito, il detto crea tutti i file di configurazione che, di default, sono necessari per il suo corretto funzionamento. Pertanto, quando eseguiamo nuovamente il comando stato systemctl denominato non vengono più visualizzati errori.

  • Caro, costoso ed esigente lettore: se vuoi scoprire, almeno, da che parte si arriva alla fine della tana del coniglio, leggi con calma le uscite dettagliate di ogni comando. 😉 Sicuramente l'articolo sembrerà un po 'lungo, ma non nego che guadagni in spiegazioni e chiarezza.

Modifichiamo il file /etc/named.conf

Molti commenti dei lettori esprimono:Io non lo dico- La mania che hanno i manutentori di diverse distribuzioni Linux, di individuare i file di configurazione del sistema in cartelle con nomi diversi a seconda della distribuzione. Hanno ragione. Ma cosa possiamo fare noi, i semplici utenti che utilizzano queste distribuzioni? Adattare! 😉

A proposito, in FreeBSD, clone UNIX® «The Origin», il file è in formato /usr/local/etc/namedb/named.conf; mentre in Debian, oltre a dividere in quattro file named.conf, named.conf.options, named.conf.default-zone e named.conf.local, è nella cartella / etc / bind /. Chi vuole sapere dove lo colloca openSUSE, leggi «DNS e DHCP in openSUSE 13.2 Harlequin - SME Networks«. I lettori hanno ragione! 😉

E come facciamo sempre: prima di modificare qualsiasi cosa, salviamo il file di configurazione originale con un altro nome.

[root @ dns ~] # cp /etc/named.conf /etc/named.conf.original

Per rendere la vita più facile, invece di generare la chiave TSIG per gli aggiornamenti DNS dinamici tramite DHCP, copiamo la stessa chiave rndc.key come dhcp.key.

[root @ dns ~] # cp /etc/rndc.key /etc/dhcp.key

[root @ dns ~] # nano /etc/dhcp.key
chiave "dhcp-key" {algoritmo hmac-md5; segreto "OI7Vs + TO83L7ghUm2xNVKg =="; };

Per l' detto può leggere il file appena copiato, modifichiamo il suo gruppo proprietario:

[root @ dns ~] # chown root: chiamato /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -rw-r -----. 1 radice denominata 77 Jan 28 16:36 PM /etc/dhcp.key -rw-r -----. 1 radice denominata 77 Jan 28 13:22 /etc/rndc.key

Piccoli dettagli come il precedente sono ciò che può farci impazzire cercando di capire, ora ... dov'è il problema ...? con qualche aggettivo in più, che non scriviamo per rispetto del Rispettabile.

Ora se - finalmente! - modifichiamo il file /etc/nome.conf. Le modifiche o le aggiunte che abbiamo fatto, rispetto all'originale, sono in grassetto. Dai un'occhiata a quanti pochi.

[root @ dns ~] # nano /etc/named.conf
// // named.conf // // Fornito dal pacchetto bind di Red Hat per configurare il server ISC BIND denominato (8) DNS // come server dei nomi solo per la cache (solo come risolutore DNS localhost). // // Vedere / usr / share / doc / bind * / sample / ad esempio file di configurazione denominati. //

// Elenco di controllo degli accessi che dichiara quali reti potranno consultare
// il mio server denominato
acl impantanato {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

opzioni {
 // Dichiaro che anche il demone denominato ascolta l'interfaccia
 // eth0 che ha l'IP: 192.168.10.5
    porta di ascolto 53 {127.0.0.1; 192.168.10.5; };
    Listen-on-v6 porta 53 {:: 1; }; directory "/ var / named"; dump-file "/var/named/data/cache_dump.db"; file di statistiche "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt";

 // Dichiarazione degli spedizionieri
 // spedizionieri {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // avanti prima;

    // Consento solo le query al mio ACL impantanato
    allow-query     { mired; };

    // Para comprobar con el comando dig desdelinux.fan axfr
    // desde la estación de trabajo del SysAdmin y el localhost solamente
    // No tenemos servidores DNS esclavos. No lo necesitamos... hasta ahora.
 consentire-trasferimento {localhost; 192.168.10.1; };

    / * - Se stai creando un server DNS AUTORITATIVO, NON abilitare la ricorsione. - Se stai creando un server DNS RICURSIVO (caching), devi abilitare la ricorsione. - Se il tuo server DNS ricorsivo ha un indirizzo IP pubblico, DEVI abilitare il controllo degli accessi per limitare le query ai tuoi utenti legittimi. In caso contrario, il tuo server diventerà parte di attacchi di amplificazione DNS su larga scala. L'implementazione di BCP38 all'interno della rete ridurrebbe notevolmente tale superficie di attacco * /
    // Vogliamo un server AUTHORITY per la nostra LAN - PMI
    ricorsione no;

    dnssec-enable sì; convalida dnssec sì; / * Percorso della chiave ISC DLV * / bindkeys-file "/etc/named.iscdlv.key"; directory-chiavi-gestite "/ var / named / dynamic"; pid-file "/run/named/named.pid"; file-chiave di sessione "/run/named/session.key"; }; logging {channel default_debug {file "data / named.run"; gravità dinamica; }; }; zona "." IN {tipo di suggerimento; file "named.ca"; }; includere "/etc/named.rfc1912.zones"; include "/etc/named.root.key";

// Includiamo la chiave TSIG per gli aggiornamenti DNS dinamici // tramite DHCP
includere "/etc/dhcp.key";

// Dichiarazione di nome, tipo, posizione e autorizzazione all'aggiornamento
// delle zone dei record DNS // Entrambe le zone sono MASTER
zone "desdelinux.fan" {
 tipo master;
 file "dynamic/db.desdelinux.fan";
 consentire-aggiornamento {chiave dhcp-chiave; };
};

zona "10.168.192.in-addr.arpa" {
 tipo master;
 file "dynamic / db.10.168.192.in-addr.arpa";
 consentire-aggiornamento {chiave dhcp-chiave; };
};

Controlliamo la sintassi

[root @ dns ~] # named-checkconf 
[root @ dns ~] #

Poiché il comando precedente non restituisce nulla, la sintassi è OK. Tuttavia, se eseguiamo lo stesso comando, ma con l'opzione -z, l'output sarà:

[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loading from master file dynamic/db.desdelinux.fan failed: file not found
zone desdelinux.fan/IN: not loaded due to errors.
_default/desdelinux.fan/IN: file not found
zone 10.168.192.in-addr.arpa/IN: loading from master file dynamic/db.10.168.192.in-addr.arpa failed: file not found
zone 10.168.192.in-addr.arpa/IN: not loaded due to errors.
_default/10.168.192.in-addr.arpa/IN: file not found

Ovviamente sono errori che si verificano perché non abbiamo ancora creato le zone di registrazione DNS per il nostro dominio.

  • Per ulteriori informazioni sul comando denominato-checkconf, correre uomo chiamato-checkconf, prima di cercare qualsiasi altra informazione su Internet. Ti assicuro che farà risparmiare un bel po 'di tempo.

Creamos el archivo de la Zona Directa desdelinux.fan

... non senza un po 'di teoria prima. 😉

Come modello per creare il file di dati della zona, possiamo prendere il /var/nome/nome.vuoto, O /usr/share/doc/bind-9.9.4/sample/var/named/named.empty. Entrambi sono identici.

[root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; seriale 1D; aggiornamento 1H; riprova 1W; scadenza 3H); tempo di memorizzazione nella cache minimo o negativo per vivere NS @ A 127.0.0.1 AAAA :: 1

Tempo di vita - È ora di vivere TTL Record SOA

Facciamo una parentesi per spiegare il TTL - È ora di vivere dal registro SOA - Inizio dell'Autorità di una Master Zone. È interessante conoscere il loro significato quando vogliamo modificare uno qualsiasi dei loro valori.

$ TTL: Tempo di vita - Tempo di vivere per tutti i record nel file che seguono la dichiarazione (ma precedono qualsiasi altra dichiarazione $ TTL) e non hanno una dichiarazione TTL esplicita.

serial: Numero di serie dei dati della zona. Ogni volta che modifichiamo manualmente un record DNS in una zona, dobbiamo aumentare quel numero di 1, soprattutto se abbiamo server slave o secondari. Ogni volta che un server DNS secondario o slave contatta il proprio server master, richiede il numero di serie dei dati del master. Se il numero di serie dello slave è inferiore, i dati per quella zona sul server slave non sono aggiornati e lo slave esegue un trasferimento di zona per aggiornarsi.

rinfrescare: Indica al server slave l'intervallo di tempo entro il quale deve verificare se i suoi dati sono aggiornati rispetto al master.

riprovare: Se il server master non è disponibile - perché si è ammalato, diciamo - per lo slave dopo un intervallo di tempo rinfrescare, riprovare Indica allo schiavo quanto tempo deve aspettare prima di provare di nuovo a contattare il suo padrone.

scadere: Se lo slave non può contattare il proprio master per un intervallo di tempo scadere, quindi se la relazione della zona slave-master è stata rovinata e il server slave non ha altra scelta che far scadere la zona in questione. La scadenza di una zona da parte di un server DNS slave significa che smetterà di rispondere alle query DNS relative a quella zona, perché i dati disponibili sono troppo vecchi per essere utili.

  • Quanto sopra ci insegna indirettamente e carico di grande buon senso - il meno comune dei sensi - che se non abbiamo bisogno di server DNS slave per il funzionamento del nostro SME, non lo implementiamo, a meno che non siano strettamente necessari. Cerchiamo sempre di passare dal semplice al complesso.

minimo: Nelle versioni precedenti alla ASSOCIAZIONE 8.2, l'ultimo record SOA Indica anche la durata predefinita - Tempo di vita predefinito, e durata della cache negativa - Tempo di caching negativo da vivere per la Zona. Questa volta si riferisce a tutte le risposte negative fornite dal server autorevole per la Zona.

Archivo de zona /var/named/dynamic/db.desdelinux.fan

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
$TTL 3H
@   IN SOA  dns.desdelinux.fan. root.dns.desdelinux.fan. (
                                        1   ; serial
                                        1D  ; refresh
                                        1H  ; retry
                                        1W  ; expire
                                        3H )    ; minimum or
                                                ; Negative caching time to live
;
@               IN  NS  dns.desdelinux.fan.
@               IN  MX  10 mail.desdelinux.fan.
@       IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
;
sysadmin        IN  A   192.168.10.1
ad-dc           IN  A   192.168.10.3
fileserver  IN  A   192.168.10.4
dns             IN  A   192.168.10.5
proxyweb        IN  A   192.168.10.6
blog            IN  A   192.168.10.7
ftpserver   IN  A   192.168.10.8
mail            IN  A   192.168.10.9

Comprobamos /var/named/dynamic/db.desdelinux.fan

[root@dns ~]# named-checkzone desdelinux.fan /var/named/dynamic/db.desdelinux.fan
zona desdelinux.fan/IN: loaded serial 1
OK

Creiamo il file Reverse Zone 10.168.192.in-addr.arpa

  • Il record SOA di questa zona è lo stesso di quello della Direct Zone senza considerare il record MX..
[root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H
@   IN SOA  dns.desdelinux.fan. root.dns.desdelinux.fan. (
                                        1   ; serial
                                        1D  ; refresh
                                        1H  ; retry
                                        1W  ; expire
                                        3H )    ; minimum or
                                                ; Negative caching time to live
;
@               IN  NS  dns.desdelinux.fan.
;
1   IN  PTR     sysadmin.desdelinux.fan.
3   IN  PTR     ad-dc.desdelinux.fan.
4   IN  PTR     fileserver.desdelinux.fan.
5   IN  PTR     dns.desdelinux.fan.
6   IN  PTR     proxyweb.desdelinux.fan.
7   IN  PTR     blog.desdelinux.fan.
8   IN  PTR     ftpserver.desdelinux.fan.
9   IN  PTR     mail.desdelinux.fan.

[root @ dns ~] # named-checkzone 10.168.192.in-addr.arpa /var/named/dynamic/db.10.168.192.in-addr.arpa 
zone 10.168.192.in-addr.arpa/IN: seriale 1 caricata OK

Prima di riavviare il named controlliamo la sua configurazione

  • Finché non saremo sicuri che i file di configurazione denominati, named.conf, e i suoi file di zona non siano configurati correttamente, suggeriamo di non riavviare il demone named. Se lo facciamo e successivamente modifichiamo un file di zona, dobbiamo aumentare il numero di serie della zona modificata di 1.
  • Diamo un'occhiata al "." alla fine dei nomi di dominio e host.
[root @ dns ~] # named-checkconf 
[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loaded serial 1
zone 10.168.192.in-addr.arpa/IN: loaded serial 1

Tutta la configurazione con nome corrente

Per maggiore chiarezza, e sebbene l'articolo diventi lungo, forniamo l'output completo del comando denominato-checkconf -zp:

[root @ dns ~] # named-checkconf -zp
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone desdelinux.fan/IN: loaded serial 1
zone 10.168.192.in-addr.arpa/IN: loaded serial 1
options {
    bindkeys-file "/etc/named.iscdlv.key";
    session-keyfile "/run/named/session.key";
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    listen-on port 53 {
        127.0.0.1/32;
        192.168.10.5/32;
    };
    listen-on-v6 port 53 {
        ::1/128;
    };
    managed-keys-directory "/var/named/dynamic";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    pid-file "/run/named/named.pid";
    statistics-file "/var/named/data/named_stats.txt";
    dnssec-enable yes;
    dnssec-validation yes;
    recursion no;
    allow-query {
        "mired";
    };
    allow-transfer {
        192.168.10.1/32;
    };
};
acl "mired" {
    127.0.0.0/8;
    192.168.10.0/24;
};
logging {
    channel "default_debug" {
        file "data/named.run";
        severity dynamic;
    };
};
key "dhcp-key" {
    algorithm "hmac-md5";
    secret "OI7Vs+TO83L7ghUm2xNVKg==";
};
zone "." IN {
    type hint;
    file "named.ca";
};
zone "localhost.localdomain" IN {
    type master;
    file "named.localhost";
    allow-update {
        "none";
    };
};
zone "localhost" IN {
    type master;
    file "named.localhost";
    allow-update {
        "none";
    };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    type master;
    file "named.loopback";
    allow-update {
        "none";
    };
};
zone "1.0.0.127.in-addr.arpa" IN {
    type master;
    file "named.loopback";
    allow-update {
        "none";
    };
};
zone "0.in-addr.arpa" IN {
    type master;
    file "named.empty";
    allow-update {
        "none";
    };
};
zone "desdelinux.fan" {
    type master;
    file "dynamic/db.desdelinux.fan";
    allow-update {
        key "dhcp-key";
    };
};
zone "10.168.192.in-addr.arpa" {
    type master;
    file "dynamic/db.10.168.192.in-addr.arpa";
    allow-update {
        key "dhcp-key";
    };
};
managed-keys {
    "." initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=";
};
  • Seguendo la procedura di modifica del file nome.conf In base alle nostre esigenze e verificando, creando ogni file di zona e verificandolo, dubitiamo che dovremo affrontare grossi problemi di configurazione. Alla fine ci rendiamo conto che è un gioco da ragazzi, con molti concetti e una sintassi pignola,

I controlli hanno restituito risultati soddisfacenti, quindi possiamo riavviare il BIND - detto.

Riavviamo il named e controlliamo il suo stato

[root @ dns ~] # systemctl riavvia named.service
[root @ dns ~] # systemctl status named.service

Se otteniamo qualsiasi tipo di errore nell'output dell'ultimo comando, dobbiamo riavviare il file nome.servizio e ricontrolla il tuo status. Se gli errori sono scomparsi, il servizio è stato avviato correttamente. In caso contrario, dobbiamo eseguire una revisione approfondita di tutti i file modificati e creati e ripetere la procedura.

L'output corretto dello stato dovrebbe essere:

[root @ dns ~] # systemctl status named.service
● named.service - Berkeley Internet Name Domain (DNS) Loaded: caricato (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled) Active: attivo (in esecuzione) since dom 2017-01-29 10:05:32 EST; 2min 57s ago
  Process: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1788 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 1786 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 1791 (named)
   CGroup: /system.slice/named.service
           └─1791 /usr/sbin/named -u named

ene 29 10:05:32 dns named[1791]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone 10.168.192.in-addr.arpa/IN: loaded serial 1
ene 29 10:05:32 dns named[1791]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone desdelinux.fan/IN: loaded serial 1
ene 29 10:05:32 dns named[1791]: zone localhost.localdomain/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: zone localhost/IN: loaded serial 0
ene 29 10:05:32 dns named[1791]: tutte le zone caricate
29 gennaio 10:05:32 dns con nome [1791]: running
29 gennaio 10:05:32 dns systemd [1]: Avviato Berkeley Internet Name Domain (DNS). Jan 29 10:05:32 dns named [1791]: zone 10.168.192.in-addr.arpa/IN: invio notifiche (seriale 1)

Controlli

I controlli possono essere eseguiti sullo stesso server o su una macchina collegata alla LAN. Preferiamo farli dalla squadra amministratore di sistema.desdelinux.fan a cui abbiamo dato espressa autorizzazione affinché possa effettuare Trasferimenti di Zona. Il file /etc/resolv.conf di quella squadra è la seguente:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# Generated by NetworkManager
search desdelinux.fan
nameserver 192.168.10.5

buzz@sysadmin:~$ dig desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.fan axfr
;; global options: +cmd
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 1 86400 3600 604800 10800
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fan.
desdelinux.fan.     10800   IN  MX  10 mail.desdelinux.fan.
desdelinux.fan.     10800   IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
ad-dc.desdelinux.fan.   10800   IN  A   192.168.10.3
blog.desdelinux.fan.    10800   IN  A   192.168.10.7
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
fileserver.desdelinux.fan. 10800 IN A   192.168.10.4
ftpserver.desdelinux.fan. 10800 IN  A   192.168.10.8
mail.desdelinux.fan.    10800   IN  A   192.168.10.9
proxyweb.desdelinux.fan. 10800  IN  A   192.168.10.6
sysadmin.desdelinux.fan. 10800  IN  A   192.168.10.1
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 1 86400 3600 604800 10800
;; Query time: 0 msec
;; SERVER: 192.168.10.5#53(192.168.10.5)
;; WHEN: Sun Jan 29 11:44:18 EST 2017
;; XFR size: 13 records (messages 1, bytes 385)

buzz @ sysadmin: ~ $ dig 10.168.192.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> 10.168.192.in-addr.arpa axfr
;; global options: +cmd
10.168.192.in-addr.arpa. 10800  IN  SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800
10.168.192.in-addr.arpa. 10800  IN  NS  dns.desdelinux.fan.
1.10.168.192.in-addr.arpa. 10800 IN PTR sysadmin.desdelinux.fan.
3.10.168.192.in-addr.arpa. 10800 IN PTR ad-dc.desdelinux.fan.
4.10.168.192.in-addr.arpa. 10800 IN PTR fileserver.desdelinux.fan.
5.10.168.192.in-addr.arpa. 10800 IN PTR dns.desdelinux.fan.
6.10.168.192.in-addr.arpa. 10800 IN PTR proxyweb.desdelinux.fan.
7.10.168.192.in-addr.arpa. 10800 IN PTR blog.desdelinux.fan.
8.10.168.192.in-addr.arpa. 10800 IN PTR ftpserver.desdelinux.fan.
9.10.168.192.in-addr.arpa. 10800 IN PTR mail.desdelinux.fan.
10.168.192.in-addr.arpa. 10800  IN  SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800
;; Query time: 0 msec
;; SERVER: 192.168.10.5#53(192.168.10.5)
;; WHEN: Sun Jan 29 11:44:57 EST 2017
;; XFR size: 11 records (messages 1, bytes 352)

buzz@sysadmin:~$ dig IN SOA desdelinux.fan
buzz@sysadmin:~$ dig IN MX desdelinux.fan
buzz@sysadmin:~$ dig IN TXT desdelinux.fan
buzz @ sysadmin: ~ $ host dns
DNS.desdelinux.fan ha l'indirizzo 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
amministratore di sistema.desdelinux.fan has address 192.168.10.1

... Y cualquier otra comprobación que necesitemos
  • Finora abbiamo le basi per un server DNS nella nostra rete di PMI. Speriamo che l'intera procedura ti sia piaciuta, che è stata abbastanza semplice, giusto? 😉

Installiamo e configuriamo DHCP

[root @ dns ~] # yum installa dhcp
Plugin caricati: più velocemirror, langpacks centos-base | 3.4 kB 00:00:00 centos-updates | 3.4 kB 00:00:00 Caricamento delle velocità del mirror dal file host memorizzato nella cache Risoluzione delle dipendenze -> Esecuzione del test delle transazioni ---> Il pacchetto dhcp.x86_64 12: 4.2.5-42.el7.centos deve essere installato -> Risoluzione delle dipendenze Dipendenze risolte terminate ============================================== ================================================ =================================== Dimensione del repository della versione dell'architettura del pacchetto =========== ================================================ ================================================ ====================== Installazione: dhcp x86_64 12: 4.2.5-42.el7.centos centos-base 511 k Riepilogo transazione ==== ================================================ ================================================ ============================ Installa 1 pacchetto Dimensione totale download: 511k Dimensione installata: 1.4 M Va bene [y / d / N]: y Download dei pacchetti: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 Controllo della transazione in corso Test della transazione in corso Test della transazione riuscito Transazione in corso Installazione: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 Controllo: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 Installato: dhcp.x86_64 12: 4.2.5-42.el7.centos Fatto!

[root @ dns ~] # nano /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
ddns-update-style interim;
ddns-updates on;
ddns-domainname "desdelinux.fan.";
ddns-rev-domainname "in-addr.arpa.";
ignore client-updates;

authoritative;

option ip-forwarding off;
option domain-name "desdelinux.fan";
# option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;

include "/etc/dhcp.key";

zone desdelinux.fan. {
    primary 127.0.0.1;
        key dhcp-key;
}
zone 10.168.192.in-addr.arpa. {
        primary 127.0.0.1;
        key dhcp-key;
}

shared-network redlocal {
        subnet 192.168.10.0 netmask 255.255.255.0 {
                option routers 192.168.10.1;
                option subnet-mask 255.255.255.0;
                option broadcast-address 192.168.10.255;
                option domain-name-servers 192.168.10.5;
                option netbios-name-servers 192.168.10.5;
                range 192.168.10.30 192.168.10.250;
        }
}
# FIN dhcpd.conf

[root @ dns ~] # dhcpd -t
Internet Systems Consortium Server DHCP 4.2.5 Copyright 2004-2013 Internet Systems Consortium. Tutti i diritti riservati. Per informazioni, visitare https://www.isc.org/software/dhcp/ Nessuna ricerca in LDAP poiché ldap-server, ldap-port e ldap-base-dn non erano specificati nel file di configurazione

[root @ dns ~] # systemctl abilita dhcpd
Collegamento simbolico creato da /etc/systemd/system/multi-user.target.wants/dhcpd.service a /usr/lib/systemd/system/dhcpd.service.

[root @ dns ~] # systemctl avvia dhcpd

[root @ dns ~] # systemctl status dhcpd
● dhcpd.service - Daemon server DHCPv4 caricato: caricato (/usr/lib/systemd/system/dhcpd.service; abilitato; preimpostazione fornitore: disabilitato) Attivo: attivo (in esecuzione) da dom 2017-01-29 12:04:59 ITS T; 23s fa Documenti: man: dhcpd (8) man: dhcpd.conf (5) PID principale: 2381 (dhcpd) Stato: "Dispatching packets ..." CGroup: /system.slice/dhcpd.service └─2381 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid 29 gennaio 12:04:59 dns dhcpd [2381]: Internet Systems Consortium DHCP Server 4.2.5 29 gennaio 12 : 04: 59 dns dhcpd [2381]: Copyright 2004-2013 Internet Systems Consortium. 29 gennaio 12:04:59 dns dhcpd [2381]: Tutti i diritti riservati. 29 gennaio 12:04:59 dns dhcpd [2381]: Per informazioni, visitare https://www.isc.org/software/dhcp/ 29 gennaio 12:04:59 dns dhcpd [2381]: Nessuna ricerca LDAP da LDAP -server, ldap-port e ldap-base-dn non sono stati specificati nel file di configurazione Jan 29 12:04:59 dns dhcpd [2381]: ha scritto 0 lease nel file lease. 29 gennaio 12:04:59 dns dhcpd [2381]: Ascolto su LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 gennaio 12:04:59 dns dhcpd [2381]: Invio su LPF / eth0 / 52: 54: 00: 12: 17: 04 / redlocal 29 gennaio 12:04:59 dns dhcpd [2381]: Invio su Socket / fallback / fallback-net 29 gennaio 12:04:59 dns systemd [1]: Avviato Daemon server DHCPv4.

Cosa resta da fare?

Semplice. Avvia un Windows 7 o un altro client con software gratuito e inizia a provare e controllare. Lo abbiamo fatto con due clienti: Sette.desdelinux.fan y suse-desktop.desdelinux.fan. I controlli sono stati i seguenti:

buzz @ sysadmin: ~ $ host seven
Sette.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ host seven.desdelinux.fan
Sette.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ dig IN TXT seven.desdelinux.fan
....
;; QUESTION SECTION:
;seven.desdelinux.fan.      IN  TXT

;; ANSWER SECTION:
seven.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Rinominiamo il team "sette" in "LAGER" e riavviamo. Dopo aver riavviato il nuovo LAGER, controlliamo:

buzz @ sysadmin: ~ $ host seven
Host sette non trovato: 5 (RIFIUTATO)

buzz@sysadmin:~$ host seven.desdelinux.fan
Host seven.desdelinux.fan not found: 3(NXDOMAIN)

brusio@sysadmin: ~ $ host lager
birra chiara.desdelinux.fan ha l'indirizzo 192.168.10.30

brusio@sysadmin:~$ host lager.desdelinux.fan
birra chiara.desdelinux.fan ha l'indirizzo 192.168.10.30

buzz@sysadmin:~$ dig IN TXT lager.desdelinux.fan
....
;; QUESTION SECTION:
;lager.desdelinux.fan.      IN  TXT

;; ANSWER SECTION:
lager.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"....

Per quanto riguarda il client suse-desktop:

buzz @ sysadmin: ~ $ host suse-dektop
Host suse-dektop non trovato: 5 (RIFIUTATO)

buzz @ sysadmin: ~ $ host suse-desktop
suse-desktop.desdelinux.fan ha l'indirizzo 192.168.10.33

buzz@sysadmin:~$ host suse-desktop.desdelinux.fan
suse-desktop.desdelinux.fan ha l'indirizzo 192.168.10.33

buzz @ sysadmin: ~ $ host 192.168.10.33
33.10.168.192.in-addr.arpa domain name pointer suse-desktop.desdelinux.fan.

buzz @ sysadmin: ~ $ host 192.168.10.30
30.10.168.192.in-addr.arpa domain name pointer LAGER.desdelinux.fan.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
....
;; QUESTION SECTION:
;33.10.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
33.10.168.192.in-addr.arpa. 3600 IN PTR suse-desktop.desdelinux.fan.

;; AUTHORITY SECTION:
10.168.192.in-addr.arpa. 10800  IN  NS  dns.desdelinux.fan.

;; ADDITIONAL SECTION:
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
....

buzz@sysadmin:~$ dig IN TXT suse-desktop.desdelinux.fan
....
;suse-desktop.desdelinux.fan.   IN  TXT

;; ANSWER SECTION:
suse-desktop.desdelinux.fan. 3600 IN    TXT "31b78d287769160c93e6dca472e9b46d73"

;; SEZIONE DELL'AUTORITÀ:
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fan.

;; ADDITIONAL SECTION:
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
....

Eseguiamo anche i seguenti comandi

[root@dns ~]# dig desdelinux.fan axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.fan axfr
;; global options: +cmd
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 6 86400 3600 604800 10800
desdelinux.fan.     10800   IN  NS  dns.desdelinux.fan.
desdelinux.fan.     10800   IN  MX  10 mail.desdelinux.fan.
desdelinux.fan.     10800   IN  TXT "DesdeLinux, su Blog dedicado al Software Libre"
ad-dc.desdelinux.fan.   10800   IN  A   192.168.10.3
blog.desdelinux.fan.    10800   IN  A   192.168.10.7
dns.desdelinux.fan. 10800   IN  A   192.168.10.5
fileserver.desdelinux.fan. 10800 IN A   192.168.10.4
ftpserver.desdelinux.fan. 10800 IN  A   192.168.10.8
LAGER.desdelinux.fan.   3600    IN  TXT "31b7228ddd3a3b73be2fda9e09e601f3e9"
LAGER.desdelinux.fan.   3600 IN  A   192.168.10.30
mail.desdelinux.fan.    10800   IN  A   192.168.10.9
proxyweb.desdelinux.fan. 10800  IN  A   192.168.10.6
suse-desktop.desdelinux.fan. 3600 IN    TXT "31b78d287769160c93e6dca472e9b46d73"
suse-desktop.desdelinux.fan. 3600 IN A   192.168.10.33
sysadmin.desdelinux.fan. 10800  IN  A   192.168.10.1
desdelinux.fan.     10800   IN  SOA dns.desdelinux.fan. root.dns.desdelinux.fan. 6 86400 3600 604800 10800

Nell'output sopra, abbiamo evidenziato su grassetto dei TTL -in secondi- per i computer con indirizzi IP concessi dal servizio DHCP, quelli che hanno una dichiarazione esplicita del TTL 3600 data dal DHCP. Gli IP fissi sono guidati dal $ TTL di 3H -3 ore = 10800 secondi- dichiarato nel record SOA di ogni file di zona.

Possono controllare la zona inversa allo stesso modo.

[root @ dns ~] # dig 10.168.192.in-addr.arpa axfr

Altri comandi estremamente interessanti sono:

[root@dns ~]# named-journalprint /var/named/dynamic/db.desdelinux.fan.jnl
[root @ dns ~] # named-journalprint /var/named/dynamic/db.10.168.192.in-addr.arpa.jnl
[root @ dns ~] # journalctl -f

Modifica manuale dei file delle zone

Dopo che DHCP entra in gioco per aggiornare dinamicamente i file di zona di dettoSe in qualsiasi momento abbiamo bisogno di modificare manualmente un file di zona, dobbiamo eseguire la seguente procedura, ma non prima di sapere qualcosa in più sul funzionamento dell'utilità rndc per il controllo del server dei nomi.

[root @ dns ~] # man rndc
....
       congelare [zona [classe [vista]]]
           Sospendi gli aggiornamenti a una zona dinamica. Se non viene specificata alcuna zona, tutte le zone vengono sospese. Ciò consente di apportare modifiche manuali a una zona normalmente aggiornata tramite aggiornamento dinamico. Inoltre, le modifiche al file journal vengono sincronizzate nel file master. Tutti i tentativi di aggiornamento dinamico verranno rifiutati mentre la zona è congelata.

       disgelo [zona [classe [vista]]]
           Abilita gli aggiornamenti a una zona dinamica bloccata. Se non viene specificata alcuna zona, vengono abilitate tutte le zone bloccate. Ciò fa sì che il server ricarichi la zona dal disco e riattivi gli aggiornamenti dinamici al termine del caricamento. Dopo che una zona è stata scongelata, gli aggiornamenti dinamici non verranno più rifiutati. Se la zona è cambiata ed è in uso l'opzione ixfr-da-differenze, il file journal verrà aggiornato per riflettere le modifiche nella zona. Altrimenti, se la zona è cambiata, qualsiasi file journal esistente verrà rimosso. ....

Cosa, pensavi che avrei trascritto l'intero manuale? ... un pezzo e vanno in macchina. Il resto lo lascio a te. 😉

in sostanza:

  • rndc freeze [zona [classe [vista]]], sospende l'aggiornamento dinamico di una zona. Se non ne viene specificato uno, tutto si bloccherà. Il comando consente la modifica manuale della zona congelata o di tutte le zone. Qualsiasi aggiornamento dinamico verrà negato durante il congelamento.
  • rndc disgelo [zona [classe [vista]]], abilita gli aggiornamenti dinamici su una zona precedentemente bloccata. Il server DNS ricarica il file di zona dal disco e gli aggiornamenti dinamici vengono riattivati ​​al termine del ricaricamento.

Precauzioni da prendere quando modifichiamo manualmente un file di zona? Come se lo stessimo creando, senza dimenticare di aumentare il numero di serie di 1 o serial prima di salvare il file con le modifiche finali.

Esempio:

[root @ dns ~] # rndc freeze desdelinux.fan

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.fan
Modifico il file di zona per qualsiasi motivo, necessario o meno. Salvo le modifiche

[root @ dns ~] # rndc disgelo desdelinux.fan
È stato avviato un ricaricamento e un disgelo di zona. Controlla i log per vedere il risultato.

[root @ dns ~] # journalctl -f
ene 29 14:06:46 dns named[2257]: thawing zone 'desdelinux.fan/IN': success
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: zone serial (6) unchanged. zone may fail to transfer to slaves.
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6

L'errore nell'output precedente, che viene mostrato in rosso sulla console, è dovuto al fatto che ho "dimenticato" di aumentare il numero di serie di 1. Se avessi seguito correttamente la procedura, l'output sarebbe stato:

[root @ dns ~] # journalctl -f
-- Logs begin at dom 2017-01-29 08:31:32 EST. --
ene 29 14:06:46 dns named[2257]: zone desdelinux.fan/IN: loaded serial 6
ene 29 14:10:01 dns systemd[1]: Started Session 43 of user root.
ene 29 14:10:01 dns systemd[1]: Starting Session 43 of user root.
ene 29 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1)
ene 29 14:10:45 dns named[2257]: received control channel command 'freeze desdelinux.fan'
ene 29 14:10:45 dns named[2257]: freezing zone 'desdelinux.fan/IN': success
ene 29 14:10:58 dns named[2257]: received control channel command 'thaw desdelinux.fan'
ene 29 14:10:58 dns named[2257]: thawing zone 'desdelinux.fan/IN': success
ene 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: journal file is out of date: removing journal file
ene 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: loaded serial 7
  • Amici lettori, ripeto che dovete leggere attentamente le uscite dei comandi. Per qualcosa i suoi sviluppatori hanno speso così tanto lavoro per programmare ogni comando, non importa quanto sia semplice.

Riassunto

Finora abbiamo affrontato l'implementazione della coppia DNS - DHCP, servizi importanti e cruciali per il buon andamento della nostra Rete di PMI, riferiti alla concessione di indirizzi dinamici tramite DHCP e alla risoluzione di computer e nomi di dominio tramite DNS.

Ci auguriamo seriamente che l'intera procedura ti sia piaciuta come abbiamo fatto noi. Sebbene possa sembrare più difficile usare la console, è molto più semplice ed educativo implementare un servizio in UNIX® / Linux con il suo aiuto.

Mi perdonano per qualsiasi interpretazione errata di concetti pensati, creati, scritti, rivisti, riscritti e pubblicati nella lingua di Shakespeare, non di Cervantes. 😉

Prossima consegna

Penso un po 'di più la stessa cosa - con aggiunte teoriche sui record DNS - ma in Debian. Non possiamo dimenticare quella distribuzione, giusto?


15 commenti, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Cristiano Mercante suddetto

    Grazie mille per il tuo lodevole lavoro nello scrivere articoli così fruttuosi. Mi sarà molto utile

  2.   federico suddetto

    E grazie mille, Cristian, per avermi seguito e per la tua valutazione su questo post. Successi!

  3.   Ismael Alvarez Wong suddetto

    Dopo aver dato un primo sguardo a questo nuovo post di Federico, si nota ancora una volta la grande professionalità vista in tutta la serie «PYMES»; oltre al grande dettaglio che illustra il tuo dominio su due dei servizi più importanti (DNS e DHCP) di qualsiasi rete. In questa occasione ea differenza dei miei commenti precedenti, ho un 2 ° commento in sospeso dopo aver messo in pratica quanto affermato in questo post.

  4.   crespo88 suddetto

    Nessun commento, pa '400 !!! Fico ti ringrazio perché sai benissimo che ho letto i tuoi post e non possiamo chiedere di più. Inizi con un'ottima organizzazione, da come installare e impostare il desktop personale di un utente, la postazione di lavoro è la base, è il senso di essere di quei servizi di rete che spieghi molto bene. Hai scalato e anche se è vero che il livello sta aumentando, è vero che hai scritto e pubblicato per chi è meno di chi inizia, per chi è come me da tempo e per i più avanzati.
    Col tempo sono giunto alla conclusione che so che in tanti sono già arrivati, la teoria, quella che ci costa tanto da acquisire per il semplice fatto di non voler leggere, perché l'esecuzione è già molto più facile quando sappiamo cosa stiamo facendo, perché ???, le domande, dove trovare e come uscire dall'errore che dà così tanto mal di testa quando non sappiamo nemmeno da dove vengono, vale la ridondanza.
    Per questo motivo, non vorrei che lasciassi indietro quegli elementi teorici che includerai sui record DNS nella prossima pubblicazione come hai annunciato, tanto meno quando si tratta del caro e amato DEBIAN.
    GRAZIE MOLTO e vi aspettiamo.

  5.   cacciatore suddetto

    Ottimo come sempre Fico! Aspetto la versione Debian, gioco da anni con quella distro.

  6.   federico suddetto

    Wong: La tua opinione dopo aver letto vale molto. Attendo i tuoi commenti quando proverai il contenuto, perché so che è così che ti piace farlo. 😉

  7.   federico suddetto

    Crespo: Come sempre, i tuoi commenti sono molto ben accolti. Vedo che hai catturato la linea generale che ho innalzato nella composizione di questa serie. Spero che, come te, molti se ne siano già accorti. Grazie per il tuo commento.

  8.   federico suddetto

    Dhunter: Piacere di leggerti di nuovo! Non dovrai aspettare a lungo. Al più tardi lunedì, o prima, sarà terminato per la pubblicazione. Non credo che sia facile per me coprire tre distro diverse, ma il rispettabile lettore, lo chiede. Non solo Debian e Ubuntu, ma i tre orientati alle PMI.

  9.   crespo88 suddetto

    Se hai pubblicato, è perché puoi, ti sosteniamo e sappiamo che seguirai quella linea.
    Come dhunter aspetto con denti aguzzi il rilascio di Debian. Sarebbe bello se coprissi un po 'di NTP. Sl2 e un grande abbraccio. Se i miei insegnanti mi avessero insegnato tutto del genere, HAHAJJA, Laurea Platino, HAHAJJA.

  10.   federico suddetto

    Il livello di dettaglio negli output dei comandi è necessario per mostrare la sua importanza. Dicono molto. È vero che pochi articoli trattano questo livello di dettaglio, perché pensano che sarebbero articoli lunghi e pesanti da leggere. Bene, parte del lavoro di un amministratore di sistema è leggere quegli output pesanti e dettagliati, non solo di fronte a un problema, ma anche di fronte a controlli.

  11.   Ismael Alvarez Wong suddetto

    Ciao Federico, avevo promesso prima, di scrivere qualche commento dopo aver studiato attentamente il post in questione; Bene, eccoli qui:
    - Ottima tecnica invece di generare la chiave TSIG per gli aggiornamenti DNS dinamici da DHCP, copiando la stessa chiave rndc.key di dhcp.key, questo apparentemente "così semplice" mostra che l'obiettivo non è solo il tecnicismo dell'HOWTO-INSTALL-DNS - & - DHCP ma insegnandoci a pensare, 5 STELLE PER L'AUTORE.
    – Muy interesante en el archivo de configuración del DNS, named.conf, la presencia de la linea «allow-transfer { localhost; 192.168.10.1; };» para realizar test el Dominio «desdelinux.fan» solamente desde la estación de trabajo del SysAdmin y el localhost (el propio server DNS), y además de la inserción de la clave TSIG para la actualización del DNS desde el DHCP.
    - Ottima la creazione delle zone dirette e inverse del DNS unitamente alla spiegazione "dettagliata" dei loro tipi di record, nonché l'esecuzione del comando "# named-checkconf -zp" per controllare tutta la sintassi del named prima del suo hard reset, nonché esempi di esecuzione del comando "dig" per verificare diversi tipi di record DNS.
    . Nella configurazione DHCP (utilizzando il file /etc/dhcp/dhcpd.conf):
    - Come aggiungere la nostra rete locale con il suo range di indirizzi IP dinamici da assegnare, la definizione del name-server, ecc; nonché come dire a DHCP di aggiornare i record DNS utilizzando le righe "ddns- ..." nella sua configurazione.
    . Cuando todo ya esta operativo, 5 ESTRELLAS PARA EL AUTOR, en la ejecucion del comando «# dig desdelinux.fan axfr» para comprobar el TTL de los equipos de la LAN que tienen IP static de los que tienen IP dinámicas asignadas.
    . Por ultimo, GENIAL, la modificación manual de archivos de Zonas congelándolas primero con «# rndc freeze desdelinux.fan», realizando a continuación la modificación y descongelándolas finalmente con «# rndc thaw desdelinux.fan"
    . E IL MEGLIO, TUTTO È STATO FATTO DAL TERMINALE.
    Continua così Fico.

    1.    Gioia suddetto

      Hallo,
      Ik kom net kijken, dit omdat ik probeer te achterhalen hoe het kan dat alles gedeeld en verwijderd wordt on mijn computer zelfs mijn foto's. Ik heb totaal geen control meer over mijn eigen computer on mobiel.
      Het zit m dus ook in het dns in dhcp. Ik weet echt niet hoe ik dit moet oplossen en het kan verwijderen. Misschien dat iemand mij wilt helpen? Dit is namelijk buiten mij om geinstalleerd. Walgelijk gedrag vind ik het.

  12.   federico suddetto

    Wong: il tuo commento completa l'articolo. Seriamente, mostra che l'hai studiato a fondo. Altrimenti, non potresti commentare con il livello di dettaglio che fai. Aggiungilo e basta consentire-trasferimento Viene utilizzato principalmente per quando abbiamo un DNS Slave e permettiamo il trasferimento di zone dal master ad esso. Lo uso in questo modo perché è un meccanismo facile da implementare per eseguire controlli non pericolosi da un singolo computer. Grazie mille per la tua valutazione 5. Saluti! e continuerò ad aspettarvi nei miei prossimi articoli.

  13.   Ignacio M suddetto

    Ciao Federico. So di essere un po 'in ritardo, ma vorrei farti una domanda.
    Questa procedura mi aiuterebbe se volessi puntare un dominio al mio server vps?

    Ogni 15 minuti ricevo questi messaggi di sistema:

    DHCPREQUEST su eth0 alla porta 67 (xid = ...)
    DHCPACK da (xid =…)
    vincolato a - rinnovo in 970 secondi.

    E da quello che ho capito dovrei creare un record A con il mio dominio e l'ip del mio server dedicato.

    * Mi congratulo e ti ringrazio per questo articolo, non so se è quello che cercavo ma l'ho trovato molto interessante e ben spiegato. Ho anche ricevuto la raccomandazione da "DNS and BIND" di cui ho già parlato un po 'e mi sembra molto interessante.

    Saluti dall'Argentina!

    1.    antonio valdes toujague suddetto

      per favore contattami tramite valdestoujague@yandex.com