Come configurare smartphone e PC. Portale informativo
  • casa
  • Notizia
  • Installazione del server BIND su CentOS. Come configurare un server DNS primario su CentOS

Installazione del server BIND su CentOS. Come configurare un server DNS primario su CentOS

Presentiamo alla vostra attenzione un nuovo corso da parte del team Il Codice- "Test di penetrazione delle applicazioni Web da zero". Teoria generale, preparazione dell'ambiente di lavoro, fuzzing passivo e impronte digitali, fuzzing attivo, vulnerabilità, post-sfruttamento, strumenti, ingegneria sociale e altro.


I domini hanno almeno due server DNS, uno è chiamato server dei nomi primario (ns1) e l'altro è chiamato server dei nomi secondario (ns2). I server secondari vengono solitamente utilizzati in caso di problemi con il server DNS primario: se un server non è disponibile, il secondo diventa attivo. Sono anche possibili schemi più complessi utilizzando bilanciamento del carico, firewall e cluster.

Tutti i record DNS per un particolare dominio vengono aggiunti al server dei nomi primario. Il server secondario sincronizza semplicemente tutte le informazioni, ricevendole dal server primario, in base ai parametri impostati sul server primario.

Questo manuale descriverà come creare un server DNS primario in esecuzione su centos. Si noti che il server DNS fornito in questo manuale sarà un DNS pubblico, il che significa che il server risponderà alle richieste provenienti da qualsiasi indirizzo IP. Come limitare l'accesso al server è descritto in questo manuale.

Prima di iniziare, vorrei ricordare che il DNS può essere installato con o senza un ambiente chroot jail. L'ambiente jail chroot limita il server DNS a una directory specifica sul sistema, in contrapposizione all'accesso completo al sistema sul server. Pertanto, qualsiasi vulnerabilità del server DNS non comprometterà l'intero sistema. Anche limitare il server DNS a una directory specifica (un processo chiamato chrooting) è utile negli ambienti di test.

Obbiettivo

Imposteremo un server DNS in condizioni di test per il dominio example.tst, che è un dominio ipotetico (inesistente). In questo modo non manometteremo a caso alcun dominio reale.

Ci sono tre seguenti server in questo dominio.

server indirizzo IP Servizi ospitati FQDN
Server A 172.16.1.1 Posta mail.example.tst
Server B 172.16.1.2 Web, FTP www.esempio.tst
ftp.example.tst
Server C 172.16.1.3 Server DNS primario ns1.esempio.tst

Imposteremo un server DNS primario e aggiungeremo il dominio e i record DNS richiesti come mostrato nella tabella.

Configurazione di nomi host

Tutti gli host devono essere identificati correttamente in termini di FQDN. Questo può essere fatto usando il metodo seguente.

Chi ama l'interfaccia grafica può sfruttare gli strumenti di NetworkManaget. Per fare ciò, digita il comando nmtui. Si aprirà la seguente interfaccia pseudografica:

Seleziona "Cambia nome host" e inserisci ns1.example.tst

Al termine, fare clic su e OK.

Un altro modo, in un solo comando:

Hostnamectl set-hostname ns1.example.tst

Una volta installato, il nome host può essere verificato con il seguente comando.

# nome host ns1.example.tst

stato hostnamectl

Prima di procedere al passaggio successivo, assicurati che il nome host di tutti i server sia impostato correttamente.

Installazione di pacchetti

Useremo bind per DNS, che può essere facilmente installato con il comando yum.

Installazione DNS senza chroot:

# yum install bind

Installazione DNS con chroot:

# yum install bind bind-chroot

Preparazione dei file di configurazione

Come accennato in precedenza, bind può essere configurato con o senza chroot. I percorsi sono leggermente diversi a seconda che il chroot sia stato installato.

Percorso del file di configurazione Percorso dei file di zona
senza chroot /eccetera/ /var/named/
con chroot /var/named/chroot/etc/ /var/named/chroot/var/named/

È possibile utilizzare il file di configurazione named.conf fornito per impostazione predefinita. Tuttavia, utilizzeremo un file di configurazione di esempio diverso per facilità d'uso.

Fare un backup del file /etc/named.conf

cp /etc/named.conf /etc/named.conf.bak

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /etc/named.conf

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

Ora che abbiamo una copia di backup del file di configurazione e il file originale stesso è stato modificato, andiamo avanti.

# vim /etc/named.conf

# vim /var/named/chroot/etc/named.conf

Le seguenti righe sono state aggiunte/modificate.

Opzioni ( ## percorso dei file di zona ## directory "/var/named"; ## reindirizza le query al server DNS pubblico di Google per domini non locali ## forwarder ( 8.8.8.8; ); ); ## dichiarazione di zona diretta per esempio.tst ## zona "esempio.tst" IN ( tipo master; file "esempio-fz"; ## file di zona diretta che si trova in /var/named ## allow-update ( none; ); ); ## dichiarazione della zona inversa per la rete 172.16.1.0 ## zone "1.16.172.in-addr.arpa" IN ( digita master; file "rz-172-16-1"; ## file per la zona inversa che si trova in /var /named ## allow-update ( nessuno; ); );

Preparazione dei file di zona

I file di zona predefiniti vengono creati automaticamente in /var/named o /var/named/chroot/var/named (per chroot).

Supponendo che non siano presenti file di zona predefiniti, possiamo copiare i file di esempio da /usr.

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/chroot/var/named

Eccellente. Ora che i file di zona predefiniti sono pronti, creiamo i nostri file di zona per esempio.tst e la rete 172.16.1.0. Mentre creiamo i file di zona, ci sono alcune cose da tenere a mente.

  • Il simbolo '@' significa NULL nei file di zona.
  • Ogni voce di nome di dominio completo (FQDN) termina con un punto '.', ad es. mail.example.tst. Senza un punto, ci saranno problemi.

1. Zona diretta

La zona di inoltro contiene una mappatura dai nomi agli indirizzi IP. Per i domini pubblici, il DNS dei domini ospitati è contenuto nel file della zona di inoltro.

# vim /var/named/example-fz

# vim /var/named/chroot/var/named/example-fz $TTL 1D @ IN SOA ns1.example.tst. mial.example.tst. (0 ; seriale 1D ; aggiorna 1H ; riprova 1W ; scade 3H) ; minimo IN NS ns1.example.tst. IN A 172.16.1.3 mail IN A 172.16.1.1 IN MX 10 mail.example.tst. www IN A 172.16.1.2 ns1 IN A 172.16.1.3 ftp IN CNAME www.example.tst.

Spiegazione: All'interno del file di zona, SOA indica l'inizio dell'autorizzazione. Questo è il nome di dominio completo del server dei nomi autorevole. Dopo il nome di dominio completo, viene l'indirizzo e-mail di contatto. Dal momento che non possiamo usare '@' in [email protetta], riscriviamo l'indirizzo email come mial.example.tst.

  • NS: Nome del server
  • UN: una voce o una voce di indirizzo è un indirizzo IP
  • MX: voce Scambiatore di posta. Qui utilizziamo solo un MX con priorità 10. Nel caso di più MX, possiamo utilizzare diverse priorità digitali. Vince il numero più basso. Ad esempio, MX 0 è migliore di MX 1.
  • CNAME: nome in forma canonica. Se un server ospita molti servizi, è molto probabile che molti nomi vengano risolti sullo stesso server. CNAME segnala altri nomi che il server può avere e fa riferimento al nome contenuto nel record A.

2. Zona di ritorno

La zona inversa contiene una mappatura dagli indirizzi IP ai nomi. Qui creiamo una zona inversa per la rete 172.16.1.0. In un dominio reale, il server DNS del proprietario del blocco IP pubblico è contenuto nel file della zona inversa.

# vim /var/named/rz-172-16-1

# vim /var/named/chroot/var/named/rz-172-16-1 $TTL 1D @ IN SOA ns1.example.tst. armed.example.tst. (0 ; seriale 1D ; aggiorna 1H ; riprova 1W ; scade 3H) ; minimo IN NS ns1.example.tst. 1 IN PTR mail.example.tst. 2 IN PTR www.example.tst. 3 IN PTR ns1.example.tst.

Spiegazione: La maggior parte dei parametri utilizzati nella zona di ritorno sono identici alla zona diretta, tranne uno.

  • PTR: record PTR o puntatore, punta a un nome di dominio completo

Completamento

Ora che i file di zona sono pronti, imposteremo la risoluzione dei file di zona.

# chgrp denominato /var/named/*

# chgrp denominato /var/named/chroot/var/named/*

Ora imposteremo l'indirizzo IP del server DNS.

# vim /etc/resolv.conf nameserver 172.16.1.3

Infine, possiamo avviare il servizio DNS e assicurarci che sia aggiunto all'avvio automatico.

# servizio denominato restart # chkconfig denominato on

Test DNS

Possiamo usare dig o nslookup per testare il DNS. Innanzitutto, installeremo i pacchetti richiesti.

# yum installa bind-utils

1. Test di zona diretto utilizzando dig

# dig esempio.tst ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 31184 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 172.16.1.3 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 86400 IN A 172.16.1.3

2. Controllare il PTR con dig

Quando usi dig per testare, dovresti sempre cercare lo stato "NOERROR". Qualsiasi altro stato significa che qualcosa non va.

# dig -x 172.16.1.1 ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 27415 ;; QUESTION SECTION: ;1.1.17.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.16.172.in-addr.arpa. 86400 IN PTR mail.example.tst. ;; AUTHORITY SECTION: 1.16.172.in-addr.arpa. 86400 IN NS ns1.example.tst. ;; ADDITIONAL SECTION: ns1.example.tst. 86400 IN A 172.16.1.3

3. Verifica di MX con dig

# dig esempio.tst mx ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 35405 ;; QUESTION SECTION: ;example.tst. IN MX ;; ANSWER SECTION: example.tst. 14366 IN MX 10 mail.example.tst.

Suggerimenti per la risoluzione dei problemi

  1. Ho SELinux disabilitato.
  2. Assicurati che il tuo firewall non stia bloccando la porta UDP 53
  3. /var/log/messages dovrebbe contenere informazioni utili nel caso qualcosa vada storto
  4. Assicurati che i file di zona siano di proprietà dell'utente 'named'
  5. Assicurati che l'indirizzo IP del server DNS venga prima in /etc/resolv.conf
  6. Se stai usando example.tst in un laboratorio, assicurati di disconnettere il server da Internet perché example.tst è un dominio inesistente.

Per ricapitolare, questo tutorial si concentra sull'hosting del dominio example.tst in un'impostazione di laboratorio a scopo dimostrativo. Ricorda che questa non è un'istruzione per creare un server DNS pubblico, ad esempio un server DNS che risponda alle query da qualsiasi indirizzo IP. Se stai configurando un server DNS di produzione, assicurati di controllare quali criteri si applicano al DNS pubblico. Un'altra lezione riguarda la creazione di un DNS secondario, la limitazione dell'accesso a un server DNS e l'implementazione di DNSSEC.

Il Garante è un intermediario di fiducia tra i Partecipanti alla transazione.


In questo articolo considereremo la distribuzione di server DNS master e slave BIND (Berkeley Internet Name Domain) su sistema operativo minimo CentOS 6.4. Prima di eseguire tutti i passaggi descritti in questo articolo, è necessario che la rete sia configurata, system-config-firewall-tui e Midnight Commander siano installati. È possibile leggere l'intera configurazione iniziale di CentOS.

Su entrambe le macchine:

installa Midnight Commander:

installa system-config-firewall-tui:

yum install system-config-firewall-tui -y

entrare nella riga di comando

iptables -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

installa BIND:

yum install bind-chroot bind-utils -y

Eseguire l'utilità di configurazione del firewall e configurare:

system-config-firewall-tui

Contrassegna con un asterisco DNS

Premiamo "Inoltrare". Contrassegna l'interfaccia eth0 e fai clic "Inoltrare"

Premiamo "Inoltrare". Contrassegna l'interfaccia per la mascherata eth0 e fai clic "Inoltrare"

Premiamo "Inoltrare".

Premiamo "Inoltrare".

Premiamo "Inoltrare".

Premiamo "Inoltrare".

Premiamo "Chiudere".

Premiamo OK.

Premiamo "Sì". Pronto.

Disabilita SELINUX:

in /etc/selinux/config cambia in SELINUX=disabilitato

Ora generiamo la chiave:

dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey

Questo comando creerà due file nella directory corrente. Nel file *.private, la terza riga conterrà una chiave della forma: wGmtcnMtn9od+ndTc20tGg==

Successivamente, apri il file /etc/risolv.conf e all'inizio vi scriviamo:

server dei nomi 192.168.0.191

server dei nomi 192.168.0.192

Server DNS principale (IP: 192.168.0.191 nome host: ns1.localserver12.ru):

crea la directory /etc/named/master

mkdir /etc/named/master

trasferiremo il bindu all'economia

chown -R name:named /etc/named/master

Noi apriamo /etc/named.conf. Verifica le seguenti opzioni. Se non ci sono li aggiungiamo, se differiscono li sistemiamo:

porta di ascolto 53 ( 127.0.0.1; 192.168.0.191; );

consentire il trasferimento ( 192.168.0.192; );

notifica sì;

zona "localserver12.ru" IN (

maestro di dattilografia;

file "/etc/named/master/localserver12.ru";

/* Percorso della chiave ISC DLV */)

dnssec-enable sì;

convalida dnssec sì;

dnssec-lookaside auto;

Creiamo un file server locale12.ru nella directory /etc/named/master

tocca /etc/named/master/localserver12.ru

Trasferiamolo alla fattoria bindu:

chown -R named:named /etc/named/master/localserver12.ru

In esso scriviamo quanto segue (come nell'immagine):

Inizio della legatura

Guidiamo BIND per il caricamento automatico in modo che si avvii al momento dell'avvio del sistema

Il server DNS principale è pronto.

Server DNS slave (IP: 192.168.0.192 hostname: ns2.localserver12.ru):

crea la directory /etc/named/slave

Consegniamolo alla famiglia Bindu.

chown -R name:named /etc/named/slave

Apri /etc/named.conf. Verifica le seguenti opzioni. Se non ci sono li aggiungiamo, se differiscono li sistemiamo:

porta di ascolto 53 ( 127.0.0.1; 192.168.0.192; );

consentire la ricorsione ( 192.168.0.0/24; );

ricorsione sì;

consentire-trasferimento (nessuno; );

notifica no;

zona "localserver12.ru" (

tipo schiavo;

file "/etc/named/slave/localserver12.ru";

maestri ( 192.168.0.191; );

Verifichiamo anche la presenza di tali righe (in caso contrario, aggiungere prima della riga /* Percorso della chiave ISC DLV */)

dnssec-enable sì;

convalida dnssec sì;

dnssec-lookaside auto;

Inizio della legatura

Lo guidiamo nel caricamento automatico in modo che si avvii durante l'avvio del sistema

Il server DNS slave è pronto. Inoltre, dopo il riavvio, la directory /etc/named/slave aprirà automaticamente il file server locale12.ru

Ora controlliamo:

sullo slave immettere il comando

dig @ns1.localserver12.ru localserver12.ru axfr

e sul maestro

dig @ns2.localserver12.ru localserver12.ru axfr

in entrambi i casi, i dati e i record DNS vengono visualizzati dal file localserver12.ru

Tutto quanto. I server DNS sono pronti.


Se l'articolo ti ha aiutato, puoi ringraziare l'autore:
trasferimento al portafoglio WMR (WebMoney): R301575071888
trasferisci su Yandex.Wallet: 410011003938168
o PayPal:

DNS- sistema dei nomi di dominio - un sistema distribuito che è in grado di fornire un nome host con il suo indirizzo IP su richiesta. La struttura DNS è simile al file system Linux, l'intero database ha una struttura ad albero, in cima alla quale c'è la radice ( . ). È dal punto che inizia l'intero sistema dei nomi di dominio. Il punto può essere seguito da ru, com, net, info, ecc. Domini originati dalla radice, ad es. ru., com., rete. chiamato domini di primo livello, domini di tipo sito. chiamato domini di secondo livello, ma della forma file.site. - domini di terzo livello e così via. Notare il punto alla fine degli esempi. I nomi scritti in questo modo sono chiamati assoluti (FQDN). Se non viene specificato un punto, il nome viene considerato relativo. Cioè sito.

Perché usare il DNS?

1) Immagina di dover accedere a una risorsa di rete con il nome ospite(questo è un file del server che memorizza tutti i file dei dipendenti) nome ospite Esso ha IP l'indirizzo è 192.168.200.20 e se non si dispone di un servizio che converte gli indirizzi IP in nomi, è necessario comporre esattamente l'indirizzo IP 192.168.200.20 per accedere al file server. Cosa è più facile ricordare il nome host o una serie di numeri 192.168.200.20?

2) La seconda opzione si riferisce all'accesso a Internet, ad esempio è necessario accedere al server FTP su Internet con il nome sito ftp, e l'indirizzo IP è 89.111.176.87.

Quindi, se nella prima opzione non hai bisogno di installare e configurare affatto un server DNS, ma puoi semplicemente configurare rapidamente, ad esempio, il servizio WINS, allora ti serve semplicemente per accedere a Internet (non lo faremo ricorda costantemente i numeri quando proviamo ad accedere a qualsiasi risorsa in Internet). Un'altra domanda è se è necessario configurarlo se il provider ha fornito i propri server DNS?

Il server DNS può essere utilizzato come: primario e secondario, ricorsivo e reindirizzatore di query.

Primario(master) carica i dati per la zona da un file sulla macchina server e il secondario (slave) riceve i dati dal DNS primario. Un server DNS può essere primario per una zona e secondario per un'altra.

Server ricorsivo creato in grandi organizzazioni con una connessione di rete ad alta velocità. Non è legato ai server del provider, flessibile e sicuro.

Richiedi reindirizzamento invia una richiesta dal client al server del provider. Il server del provider elabora molte richieste dei client, dispone di una grande cache e di una connessione ad alta velocità.

Record DNS primari.

A - corrispondenza tra nome e indirizzo IP
AAAA - corrispondenza tra nome e indirizzo IPv6
CNAME - nome canonico (sinonimo)
MX - punta al server di posta per il dominio specificato
NS - Server DNS per il dominio
PTR - nome canonico
SOA è il record iniziale che indica dove sono archiviate le informazioni sul server.
SRV - server per servizi.

Installazione BIND.
Installeremo BIND su centOs5.
Ha un server chiamato ns1..168.200.1

yum installa bind

Ambientazione LEGAMENTO
Crea e compila il file di configurazione

vi /var/named/chroot/etc/named.conf

opzioni(
directory "/var/named/";
file di dump "/var/run/named_dump.bd";
file di statistiche "/var/run/named.stats";
};
zona "sito" in (
maestro di dattilografia;
file "sito.db";
};
zona "200.168.192.IN-ADDR.ARPA." IN (
maestro di dattilografia;
file "192.168.200.db";
};

zona "0.0.127.IN-ADDR.ARPA." IN (
maestro di dattilografia;
file "127.0.0.db";
};

zona "." (
tipo suggerimento;
file "named.ca";
};

Crea file di zona per site.db, 192.168.0.db, 127.0.0.db, named.ca.

vi /var/named/chroot/var/named/site.db# zona di inoltro per mappare i nomi agli indirizzi.

$TTL 1 ora ; 1 ora
IN SOA sito web ns1.sito. sito.root (22
3H
1 ora
1W
1H)

; Server dei nomi
NS ns1.sito

;Per nomi caconici
ns1.sito. IN 1H A 192.168.200.1
host1.site. IN 1H A 192.168.200.154
;alias
sito gw1. IN 1H CNAME host1.site.
www.sito. IN 1H CNAME host1.site.

vi /var/named/chroot/var/named/192.168.200.db# zona inversa per mappare gli indirizzi sui nomi.

$TTL 3600 ; 1 ora
200.168.192.in-addr.arpa IN SOA ns1.sito. sito.root (21
3H
1 ora
1W
1H)
; Server dei nomi
200.168.192.in-addr.arpa IN NS ns1.site

; nomi canonici
1.200.168.192.in-addr.arpa PTR ns1.site.
154.200.168.192.in-addr.arpa PTR host1.site.

vi /var/named/chroot/var/name/127.0.0.db# indirizzo di loopback per indirizzare i pacchetti a te stesso.

$TTL 3600 ; 1 ora
0.0.127.in-addr.arpa IN SOA ns1.sito. sito.root (21
3H
1 ora
1W
1H)

0.0.127.in-addr.arpa IN NS ns1.site
0.0.127.in-addr.arpa. IN PTR localhost.

vi /var/named/chroot/var/named/named.ca#server root

A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; precedentemente NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; precedentemente C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; già TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; già NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; precedentemente NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; precedentemente NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; precedentemente AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; precedentemente NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; gestito da RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; gestito da ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; gestito da WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; fine del fascicolo

Avvio e arresto del server/etc/init.d/named (avvia e interrompi il riavvio)
Utilità di test DNS: host, nslookup, dig.
Per impostazioni DNS più dettagliate, leggi man bind, prenota DNS e BIND, ecc.

|

Questa guida tratterà l'installazione e la configurazione del server BIND DNS.

Per seguire le istruzioni, si consiglia di configurare almeno due server cloud per eseguire i nameserver; la presenza di più name server consente l'utilizzo di risorse di riserva in caso di errore. Puoi anche considerare l'utilizzo di due diversi punti di presenza (POP). Dovrebbe utilizzare un server dei nomi primario (master) e un server dei nomi secondario (slave).

Vale la pena notare che quando si gestisce un numero elevato di domini, questa potrebbe non essere la soluzione più efficiente, poiché dovrai aggiungere manualmente i domini sia al master che allo slave. Detto questo, eseguire i propri server dei nomi è un ottimo modo per avere il controllo diretto sull'infrastruttura di hosting e sui record DNS.

Come sempre, è importante assicurarsi prima di tutto che il tuo sistema sia aggiornato. Controlla gli aggiornamenti con yum:

Installazione di BIND

Per installare i pacchetti BIND e bind-utils, usa yum:

Quindi apri il file di configurazione BIND e apporta alcune modifiche.

nano -w /etc/named.conf

Nel file, trova la sezione delle opzioni che assomiglia a questa (invece di 2.2.2.2 - l'indirizzo IP del secondo server):

opzioni(


directory "/var/named";



consentire-query ( qualsiasi; );
consentire-trasferimento ( localhost; 2.2.2.2; );
ricorsione no;
dnssec-enable sì;
convalida dnssec sì;
dnssec-lookaside auto;
/* Percorso della chiave ISC DLV */


};

La direttiva listen-on deve essere commentata per ascoltare sulle interfacce disponibili. La direttiva di ricorsione deve essere disattivata per prevenire attacchi DDoS di riflessione. La direttiva allow-transfer inserisce nella whitelist l'indirizzo IP del server secondario. è inoltre necessario modificare il valore della direttiva allow-query su any per consentire agli utenti di accedere alle zone.

Quindi devi aggiungere una nuova zona per il primo dominio. Per fare ciò, inserisci il seguente codice alla fine del file named.conf:

zona "miodominio.com" IN (
maestro di dattilografia;
file "miodominio.com.zona";
consentire l'aggiornamento (nessuno; );
};

Salva le modifiche in named.conf. Successivamente, puoi iniziare a creare un file di descrizione della zona (file di zona).

Impostazione delle zone BIND

Per prima cosa è necessario aprire il file di zona, specificando il nome inserito nel file di configurazione precedente (miodominio.com.zone).

nano -w /var/named/mydomain.com.zone

Inserisci il seguente codice nel file. Sostituisci gli indirizzi IP condizionali con gli indirizzi dei tuoi server (1.1.1.1 è l'indirizzo IP del primo server, 2.2.2.2 è l'indirizzo IP del secondo server, 3.3.3.3 è l'IP a cui vuoi puntare il dominio (ad esempio, un server web)). Apporta altre modifiche al codice secondo necessità.

$TTL 86400
@ IN SOA ns1.mydomain.com. root.miodominio.com. (
2013042201 ;Serie
3600 ;Aggiorna
1800 Riprova
604800 ;Scade
86400 ;TTL minimo
; Specifica i nostri due nameserver
IN NS ns1.miodominio.com.
IN NS ns2.miodominio.com.
; Risolvi i nomi host del server dei nomi in IP, sostituiscili con i tuoi due indirizzi IP droplet.
ns1 IN A 1.1.1.1
ns2 IN A 2.2.2.2
; Definisci nome host -> coppie IP che desideri risolvere
@ IN A 3.3.3.3
www IN A 3.3

Esegui chiamato. L'avvio potrebbe richiedere alcuni minuti perché named crea il file rndc.key la prima volta che viene avviato.

servizio denominato riavvio

Dopo aver avviato correttamente il demone denominato, è necessario assicurarsi che sia abilitato come servizio:

chkconfig denominato su

Ora il server dei nomi primario è completamente pronto. Per verificare che BIND funzioni correttamente, eseguire il comando seguente con l'IP del server anziché 1.1.1.1:

dig @1.1.1.1 miodominio.com

Se il risultato contiene le sezioni risposta e autorità, la configurazione è corretta.

Configurazione del server slave

Quindi, il server principale è pronto per l'uso. Ora è necessario configurare un server dei nomi secondario sul secondo server cloud.

Assicurati che il sistema sia aggiornato.

Installa BIND e le sue utilità sul secondo server cloud:

yum install bind bind-utils -y

Apri named.conf e apporta le stesse modifiche del primo server, omettendo la direttiva allow transfer - questa direttiva non è necessaria, poiché i record verranno trasferiti solo dal server dei nomi primario.

nano -w /etc/named.conf
opzioni(
#ascolta sulla porta 53 ( 127.0.0.1; );
listen-on-v6 porta 53 (::1; );
directory "/var/named";
file di dump "/var/named/data/cache_dump.db";
file di statistiche "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
consentire-query ( qualsiasi; );
ricorsione no;
dnssec-enable sì;
convalida dnssec sì;
dnssec-lookaside auto;
/* Percorso della chiave ISC DLV */
file-binkeys "/etc/named.iscdlv.key";
directory-chiavi-gestite "/var/named/dynamic";
};

Aggiungere le zone configurate sul server precedente sostituendo il valore della direttiva type con slave. Specificare l'IP del primo server invece di 1.1.1.1:

zona "miodominio.com" IN (
tipo schiavo;
maestri( 1.1.1.1; );
file "miodominio.com.zona";
};

Dopo aver impostato la zona slave, avviare il demone denominato. Anche in questo caso, l'operazione può richiedere diversi minuti perché il demone crea il file rndc.key la prima volta che viene eseguito sul server.

servizio denominato start

Come con il primo server cloud, controlla se il demone denominato è in esecuzione:

chkconfig denominato su

Il server dei nomi secondario è ora pronto per l'uso. Per assicurarsi che funzioni come previsto, utilizzare il comando seguente, sostituendo 2.2.2.2 con l'indirizzo IP del secondo server cloud.

dig @2.2.2.2 miodominio.com

Dopo aver apportato modifiche ai file di zona del server primario, è necessario ricaricare BIND. Ricorda che devi anche aumentare la direttiva serial per mantenere sincronizzati il ​​server primario e secondario.

Per riavviare i file di zona, utilizzare il seguente comando prima sul master e poi sullo slave:

BIND in un ambiente chroot

Su un sistema CentOS, questo è molto semplice. L'unica cosa da notare è che i percorsi BIND attivi verranno sostituiti con i loro equivalenti chroot (ad esempio, var/named diventa /var/named/chroot/var/named). Su CentOS 6, non è necessario spostare alcun file poiché il pacchetto creerà da solo collegamenti simbolici a directory non chroot.

Per abilitare questa funzione, utilizzare:

yum install bind-chroot -y
servizio denominato riavvio

Tag: ,

Presentiamo alla vostra attenzione un nuovo corso da parte del team Il Codice- "Test di penetrazione delle applicazioni Web da zero". Teoria generale, preparazione dell'ambiente di lavoro, fuzzing passivo e impronte digitali, fuzzing attivo, vulnerabilità, post-sfruttamento, strumenti, ingegneria sociale e altro.


I domini hanno almeno due server DNS, uno è chiamato server dei nomi primario (ns1) e l'altro è chiamato server dei nomi secondario (ns2). I server secondari vengono solitamente utilizzati in caso di problemi con il server DNS primario: se un server non è disponibile, il secondo diventa attivo. Sono anche possibili schemi più complessi utilizzando bilanciamento del carico, firewall e cluster.

Tutti i record DNS per un particolare dominio vengono aggiunti al server dei nomi primario. Il server secondario sincronizza semplicemente tutte le informazioni, ricevendole dal server primario, in base ai parametri impostati sul server primario.

Questo manuale descriverà come creare un server DNS primario in esecuzione su centos. Si noti che il server DNS fornito in questo manuale sarà un DNS pubblico, il che significa che il server risponderà alle richieste provenienti da qualsiasi indirizzo IP. Come limitare l'accesso al server è descritto in questo manuale.

Prima di iniziare, vorrei ricordare che il DNS può essere installato con o senza un ambiente chroot jail. L'ambiente jail chroot limita il server DNS a una directory specifica sul sistema, in contrapposizione all'accesso completo al sistema sul server. Pertanto, qualsiasi vulnerabilità del server DNS non comprometterà l'intero sistema. Anche limitare il server DNS a una directory specifica (un processo chiamato chrooting) è utile negli ambienti di test.

Obbiettivo

Imposteremo un server DNS in condizioni di test per il dominio example.tst, che è un dominio ipotetico (inesistente). In questo modo non manometteremo a caso alcun dominio reale.

Ci sono tre seguenti server in questo dominio.

server indirizzo IP Servizi ospitati FQDN
Server A 172.16.1.1 Posta mail.example.tst
Server B 172.16.1.2 Web, FTP www.esempio.tst
ftp.example.tst
Server C 172.16.1.3 Server DNS primario ns1.esempio.tst

Imposteremo un server DNS primario e aggiungeremo il dominio e i record DNS richiesti come mostrato nella tabella.

Configurazione di nomi host

Tutti gli host devono essere identificati correttamente in termini di FQDN. Questo può essere fatto usando il metodo seguente.

Chi ama l'interfaccia grafica può sfruttare gli strumenti di NetworkManaget. Per fare ciò, digita il comando nmtui. Si aprirà la seguente interfaccia pseudografica:

Seleziona "Cambia nome host" e inserisci ns1.example.tst

Al termine, fare clic su e OK.

Un altro modo, in un solo comando:

Hostnamectl set-hostname ns1.example.tst

Una volta installato, il nome host può essere verificato con il seguente comando.

# nome host ns1.example.tst

stato hostnamectl

Prima di procedere al passaggio successivo, assicurati che il nome host di tutti i server sia impostato correttamente.

Installazione di pacchetti

Useremo bind per DNS, che può essere facilmente installato con il comando yum.

Installazione DNS senza chroot:

# yum install bind

Installazione DNS con chroot:

# yum install bind bind-chroot

Preparazione dei file di configurazione

Come accennato in precedenza, bind può essere configurato con o senza chroot. I percorsi sono leggermente diversi a seconda che il chroot sia stato installato.

Percorso del file di configurazione Percorso dei file di zona
senza chroot /eccetera/ /var/named/
con chroot /var/named/chroot/etc/ /var/named/chroot/var/named/

È possibile utilizzare il file di configurazione named.conf fornito per impostazione predefinita. Tuttavia, utilizzeremo un file di configurazione di esempio diverso per facilità d'uso.

Fare un backup del file /etc/named.conf

cp /etc/named.conf /etc/named.conf.bak

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /etc/named.conf

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

Ora che abbiamo una copia di backup del file di configurazione e il file originale stesso è stato modificato, andiamo avanti.

# vim /etc/named.conf

# vim /var/named/chroot/etc/named.conf

Le seguenti righe sono state aggiunte/modificate.

Opzioni ( ## percorso dei file di zona ## directory "/var/named"; ## reindirizza le query al server DNS pubblico di Google per domini non locali ## forwarder ( 8.8.8.8; ); ); ## dichiarazione di zona diretta per esempio.tst ## zona "esempio.tst" IN ( tipo master; file "esempio-fz"; ## file di zona diretta che si trova in /var/named ## allow-update ( none; ); ); ## dichiarazione della zona inversa per la rete 172.16.1.0 ## zone "1.16.172.in-addr.arpa" IN ( digita master; file "rz-172-16-1"; ## file per la zona inversa che si trova in /var /named ## allow-update ( nessuno; ); );

Preparazione dei file di zona

I file di zona predefiniti vengono creati automaticamente in /var/named o /var/named/chroot/var/named (per chroot).

Supponendo che non siano presenti file di zona predefiniti, possiamo copiare i file di esempio da /usr.

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/chroot/var/named

Eccellente. Ora che i file di zona predefiniti sono pronti, creiamo i nostri file di zona per esempio.tst e la rete 172.16.1.0. Mentre creiamo i file di zona, ci sono alcune cose da tenere a mente.

  • Il simbolo '@' significa NULL nei file di zona.
  • Ogni voce di nome di dominio completo (FQDN) termina con un punto '.', ad es. mail.example.tst. Senza un punto, ci saranno problemi.

1. Zona diretta

La zona di inoltro contiene una mappatura dai nomi agli indirizzi IP. Per i domini pubblici, il DNS dei domini ospitati è contenuto nel file della zona di inoltro.

# vim /var/named/example-fz

# vim /var/named/chroot/var/named/example-fz $TTL 1D @ IN SOA ns1.example.tst. mial.example.tst. (0 ; seriale 1D ; aggiorna 1H ; riprova 1W ; scade 3H) ; minimo IN NS ns1.example.tst. IN A 172.16.1.3 mail IN A 172.16.1.1 IN MX 10 mail.example.tst. www IN A 172.16.1.2 ns1 IN A 172.16.1.3 ftp IN CNAME www.example.tst.

Spiegazione: All'interno del file di zona, SOA indica l'inizio dell'autorizzazione. Questo è il nome di dominio completo del server dei nomi autorevole. Dopo il nome di dominio completo, viene l'indirizzo e-mail di contatto. Dal momento che non possiamo usare '@' in [email protetta], riscriviamo l'indirizzo email come mial.example.tst.

  • NS: Nome del server
  • UN: una voce o una voce di indirizzo è un indirizzo IP
  • MX: voce Scambiatore di posta. Qui utilizziamo solo un MX con priorità 10. Nel caso di più MX, possiamo utilizzare diverse priorità digitali. Vince il numero più basso. Ad esempio, MX 0 è migliore di MX 1.
  • CNAME: nome in forma canonica. Se un server ospita molti servizi, è molto probabile che molti nomi vengano risolti sullo stesso server. CNAME segnala altri nomi che il server può avere e fa riferimento al nome contenuto nel record A.

2. Zona di ritorno

La zona inversa contiene una mappatura dagli indirizzi IP ai nomi. Qui creiamo una zona inversa per la rete 172.16.1.0. In un dominio reale, il server DNS del proprietario del blocco IP pubblico è contenuto nel file della zona inversa.

# vim /var/named/rz-172-16-1

# vim /var/named/chroot/var/named/rz-172-16-1 $TTL 1D @ IN SOA ns1.example.tst. armed.example.tst. (0 ; seriale 1D ; aggiorna 1H ; riprova 1W ; scade 3H) ; minimo IN NS ns1.example.tst. 1 IN PTR mail.example.tst. 2 IN PTR www.example.tst. 3 IN PTR ns1.example.tst.

Spiegazione: La maggior parte dei parametri utilizzati nella zona di ritorno sono identici alla zona diretta, tranne uno.

  • PTR: record PTR o puntatore, punta a un nome di dominio completo

Completamento

Ora che i file di zona sono pronti, imposteremo la risoluzione dei file di zona.

# chgrp denominato /var/named/*

# chgrp denominato /var/named/chroot/var/named/*

Ora imposteremo l'indirizzo IP del server DNS.

# vim /etc/resolv.conf nameserver 172.16.1.3

Infine, possiamo avviare il servizio DNS e assicurarci che sia aggiunto all'avvio automatico.

# servizio denominato restart # chkconfig denominato on

Test DNS

Possiamo usare dig o nslookup per testare il DNS. Innanzitutto, installeremo i pacchetti richiesti.

# yum installa bind-utils

1. Test di zona diretto utilizzando dig

# dig esempio.tst ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 31184 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 172.16.1.3 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 86400 IN A 172.16.1.3

2. Controllare il PTR con dig

Quando usi dig per testare, dovresti sempre cercare lo stato "NOERROR". Qualsiasi altro stato significa che qualcosa non va.

# dig -x 172.16.1.1 ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 27415 ;; QUESTION SECTION: ;1.1.17.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.16.172.in-addr.arpa. 86400 IN PTR mail.example.tst. ;; AUTHORITY SECTION: 1.16.172.in-addr.arpa. 86400 IN NS ns1.example.tst. ;; ADDITIONAL SECTION: ns1.example.tst. 86400 IN A 172.16.1.3

3. Verifica di MX con dig

# dig esempio.tst mx ;; ->>INTESTAZIONE<<- opcode: QUERY, status: NOERROR, id: 35405 ;; QUESTION SECTION: ;example.tst. IN MX ;; ANSWER SECTION: example.tst. 14366 IN MX 10 mail.example.tst.

Suggerimenti per la risoluzione dei problemi

  1. Ho SELinux disabilitato.
  2. Assicurati che il tuo firewall non stia bloccando la porta UDP 53
  3. /var/log/messages dovrebbe contenere informazioni utili nel caso qualcosa vada storto
  4. Assicurati che i file di zona siano di proprietà dell'utente 'named'
  5. Assicurati che l'indirizzo IP del server DNS venga prima in /etc/resolv.conf
  6. Se stai usando example.tst in un laboratorio, assicurati di disconnettere il server da Internet perché example.tst è un dominio inesistente.

Per ricapitolare, questo tutorial si concentra sull'hosting del dominio example.tst in un'impostazione di laboratorio a scopo dimostrativo. Ricorda che questa non è un'istruzione per creare un server DNS pubblico, ad esempio un server DNS che risponda alle query da qualsiasi indirizzo IP. Se stai configurando un server DNS di produzione, assicurati di controllare quali criteri si applicano al DNS pubblico. Un'altra lezione riguarda la creazione di un DNS secondario, la limitazione dell'accesso a un server DNS e l'implementazione di DNSSEC.

Il Garante è un intermediario di fiducia tra i Partecipanti alla transazione.


Articoli correlati in alto