GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare il risolutore DNS locale utilizzando Dnsmasq su Ubuntu 20.04

Dnsmasq sta per "abbreviazione di DNS masquerade" è un inoltro DNS semplice, leggero e facile da usare utilizzato per una piccola rete. Può essere configurato come cache DNS e server DHCP e supporta sia il protocollo IPv4 che IPv6. Quando riceve qualsiasi query DNS, risponderà dalla sua cache o inoltrerà al server DNS diverso.

Dnsmasq è composto da tre sottosistemi:

  • Sottosistema DNS: Viene utilizzato per memorizzare nella cache diversi tipi di record inclusi A, AAAA, CNAME e PTR.
  • Sottosistema DHCP: Supporta DHCPv4, DHCPv6, BOOTP e PXE
  • Sottosistema pubblicità router : Fornisce l'autoconfigurazione di base per gli host IPv6. Può essere utilizzato da solo o in combinazione con DHCPv6.

In questo tutorial, ti mostreremo come configurare un server DNS locale con Dnsmasq sul server Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Una password di root è configurata sul server.

Per iniziare

Innanzitutto, si consiglia di aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornare tutti i pacchetti eseguendo il comando seguente:

apt-get update -y

Dopo aver aggiornato tutti i pacchetti, dovrai disabilitare il servizio risolto da Systemd nel tuo sistema. Il servizio con risoluzione di sistema viene utilizzato per la risoluzione dei nomi di rete nelle applicazioni locali.

Puoi disabilitarlo eseguendo il seguente comando:

systemctl disable --now systemd-resolved

Una volta disabilitato il servizio, dovrai rimuovere il file resolv.conf predefinito e crearne uno nuovo con i dettagli del tuo server DNS personalizzato.

Puoi rimuovere il file resolv.conf predefinito con il seguente comando:

rm -rf /etc/resolv.conf

Successivamente, aggiungi il server DNS di Google al file resolv.conf con il seguente comando:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Una volta terminato, puoi procedere al passaggio successivo.

Installa Dnsmasq

Per impostazione predefinita, Dnsmasq è disponibile nel repository predefinito di Ubuntu 20.04. Puoi installarlo semplicemente eseguendo il seguente comando:

apt-get install dnsmasq dnsutils ldnsutils -y

Al termine dell'installazione, i servizi Dnsmasq verranno avviati automaticamente. Puoi controllare lo stato di Dnsmasq con il seguente comando:

systemctl status dnsmasq

Dovresti ottenere il seguente output:

dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
   Main PID: 17726 (dnsmasq)
      Tasks: 1 (limit: 2282)
     Memory: 868.0K
     CGroup: /system.slice/dnsmasq.service
             ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>

Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: started, version 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS service limited to local subnets
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: reading /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: using nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: read /etc/hosts - 7 addresses
Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Una volta terminato, puoi procedere al passaggio successivo.

Configura Dnsmasq

Successivamente, dovrai configurare DNSmasq come server DNS locale. Puoi farlo modificando il file di configurazione principale di Dnsmasq:

nano /etc/dnsmasq.conf

Modifica le seguenti righe:

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000

Salva e chiudi il file quando hai finito.

Successivamente, dovrai aggiungere l'indirizzo IP del tuo server come server dei nomi principale nel tuo file resolv.conf. Puoi aggiungerlo con il seguente comando:

nano /etc/resolv.conf

Aggiungi la seguente riga sopra la riga "nameserver 8.8.8.8":

nameserver your-server-ip

Salva e chiudi il file quando hai finito. Quindi, verifica il server per eventuali errori di configurazione con il seguente comando:

dnsmasq --test

Se tutto va bene, dovresti ottenere il seguente output:

dnsmasq: syntax check OK.

Infine, riavvia il servizio DNSmasq per applicare le modifiche:

systemctl restart dnsmasq

A questo punto Dnsmasq viene avviato e resta in ascolto sulla porta 53. Puoi verificarlo con il seguente comando:

ss -alnp | grep -i :53

Dovresti ottenere il seguente output:

udp     UNCONN   0        0                                             0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=4))                                             
udp     UNCONN   0        0                                                [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=6))                                             
tcp     LISTEN   0        32                                            0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=5))                                             
tcp     LISTEN   0        32                                               [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=7))                                             

Aggiungi record DNS al server Dnsmasq

Successivamente, dovrai modificare il tuo file /etc/hosts e aggiungere la voce del server DNS locale.

nano /etc/hosts

Aggiungi la seguente riga:

your-server-ip host1.dns-example.com

Salva e chiudi il file quando hai finito.

Verifica la risoluzione del server DNS

A questo punto, Dnsmasq è installato e configurato. No, è ora di verificare la risoluzione DNS.

Puoi utilizzare il comando dig per controllare la risoluzione DNS come mostrato di seguito:

dig host1.dns-example.com +short

Se tutto va bene, dovresti vedere l'ip del tuo server nel seguente output:

your-server-ip

Puoi anche verificare la risoluzione DNS esterna con il seguente comando:

dig howtoforge.com +short

Dovresti ottenere il seguente output:

172.67.68.93
104.26.3.165
104.26.2.165

Configura client remoto per utilizzare il server DNS DNS

Successivamente, dovrai configurare un client remoto per utilizzare il tuo server DNS DNSmasq come server DNS predefinito.

Innanzitutto, installa gli strumenti DNS con il seguente comando:

apt-get install dnsutils ldnsutils -y

Una volta installato, dovrai modificare il file /etc/resolv.conf e la voce del tuo server DNS DNSmasq.

nano /etc/resolv.conf

Aggiungi la seguente riga all'inizio del file:

nameserver your-server-ip

Salva e chiudi il file quando hai finito.

Successivamente, verifica la risoluzione DNS locale con il seguente comando:

dig host1.dns-example.com

Dovresti vedere il seguente output:

; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.dns-example.com.		IN	A

;; ANSWER SECTION:
host1.dns-example.com.	0	IN	A	45.58.32.165

;; Query time: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WHEN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE  rcvd: 66

Successivamente, dovrai verificare il tuo server DNS per la memorizzazione nella cache. Puoi verificarlo utilizzando l'utilità di perforazione.

Innanzitutto, esegui il seguente comando:

drill google.com | grep "Query time"

Dovresti vedere il seguente output:

;; Query time: 290 msec

Quindi, esegui di nuovo il comando per verificare se la memorizzazione nella cache funziona o meno:

drill google.com | grep "Query time"

Dovresti vedere che il tempo di query ora sta diminuendo a 4 msec:

;; Query time: 4 msec

Conclusione

Congratulazioni! hai installato e configurato correttamente Dnsmasq come server DNS locale e Ubuntu 20.04. Spero che ora tu possa implementarlo facilmente nella tua rete locale per la risoluzione dei nomi.


Ubuntu
  1. 4 passaggi per configurare il repository locale in Ubuntu utilizzando APT-mirror

  2. Come configurare HAProxy in Ubuntu 16.04

  3. Come configurare UFW Firewall su Ubuntu 18.04

  4. Come installare il resolver DNS Unbound su Ubuntu 22.04

  5. Come configurare un risolutore DNS non legato su Ubuntu 20.04

Come configurare il server di registrazione centrale utilizzando Rsyslog su Ubuntu 20.04

Come configurare il server DNS su Ubuntu 18.04 / Ubuntu 16.04

Come configurare OpenVPN su Ubuntu Server

Come configurare una VPN su Ubuntu

Configura un risolutore DNS locale su Ubuntu 18.04, 16.04 con BIND9

Configura il risolutore DNS locale su Ubuntu 20.04 con BIND9