P11. Servidor DNS amb CentOS
Contingut
Enunciat
Crea un servidor DNS a la maquina virtual CentOS amb la zona boeck.cat.
Les proves en local NO SERVEIXEN. El client que farà servir el servidor serà l'amfitrió.
Preliminar
Partirem d'una màquina virtual CentOS 7 minimal amb la IP 192.168.56.50. L'administració es farà a través d'SSH des de l'amfitrió de la MV.
Primer de tot instal·laré l'editor de text que estic acostumat en comptes del que ve instal·lat amb la minimal de CentOS
yum install nano -y
També instal·larem wget per a poder descarregar arxius des de la xarxa, necessari per instal·lar Webmin.
yum install wget -y
També deshabilitarem SELinux per evitar problemes amb directives de seguretat
setenforce 0
Per a fer-ho permanent, entre reboots, podem editar /etc/selinux/config
i editar la línia corresponent amb el valor disabled
Procediment
Instal·lació de paquets
Servidor DNS
Haurem d'instal·lar els paquets necessaris per al servidor DNS. En el meu cas, instal·laré el servidor BIND:
yum install bind bind-utils -y
Veurem que se'ns instal·len altres dependències necessàries. Una vegada instal·lat el podem engegar i habilitar l'inici on boot amb
systemctl start named systemctl enable named
Després haurem d'obrir el port corresponent al Firewall de manera que màquines de la xarxa puguin enviar peticions DNS en aquest servidor
firewall-cmd --permanent --add-service=dns firewall-cmd --reload
Webmin
Des de la pàgina oficial de Webmin anirem a la secció de descàrregues i copiarem el link de l'arxiu RPM i el descarregarem al CentOS utilitzant wget
wget https://prdownloads.sourceforge.net/webadmin/webmin-1.890-1.noarch.rpm
Una vegada descarregat, podríem instal·lar-lo amb rpm -i
però ho farem amb yum install
per tal de resoldre dependències (si n'hi ha)
yum install ./webmin-1.890-1.noarch.rpm
En efecte, s'instal·len moltes dependències (sobretot de perl). Esperem que acabi la instal·lació. Quan acabi, podrem accedir a la interfície de webmin a través del port 10000 del CentOS (per HTTPS auto-signat); per tant, haurem d'afegir-lo a la configuració del Firewall
firewall-cmd --add-port=10000/tcp --permanent firewal-cmd --reload
Podem llistar els ports oberts al firewall per comprovar que almenys el corresponent al servei DNS i el 10000 per a webmin estiguin oberts
[root@m08uf1dns ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp0s3 enp0s8 sources: services: ssh dhcpv6-client dns ports: 10000/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Si és correcte, podem navegar a https://192.168.56.50:10000 i veurem la pantalla de login del webmin acabat d'instal·lar
Una vegada dins, veurem la pàgina principal/dashboard del Webmin
El mòdul necessari és perl-digest-md5
i el podem instal·lar amb yum
yum install perl-digest-md5
Actualitzem la pàgina de Webmin i veurem, ara sí, el dashboard amb informació sobre el servidor
Configuració de BIND mitjançant Webmin
Des del panell de l'esquerra de Webmin podem desplegar Servers i obrir BIND DNS Server
Veiem diverses opcions per a configurar el servidor DNS i també les zones existents: localhost, 127.0.0.1, etc. Per a crear la nova zona amb el nostre cognom (boeck.cat) farem clic a Create master zone
Omplirem el domain name amb el nostre cognom+.cat com es demana i posarem també un correu electrònic (obligatori)
Cliquem Create zone i automàticament ens portarà a la pantalla de control de la nova zona creada
Clicarem el primer botó de la primera fila Adresses (0) per a afegir registres A (nom →adreça IP) i afegirem quatre registres de prova:
- a01.boeck.cat serà un CentOS minimal que servirà de client i tindrà IP 192.168.56.51
- a02.boeck.cat serà un CentOS minimal que servirà de client i tindrà IP 192.168.56.52
- dns.boeck.cat serà el registre que apuntarà aquest domini al servidor mateix que estic treballant (IP 192.168.56.50)
- fedora.boeck.cat correspon a la IP de la màquina anfitriona de les màquines virtuals, que comparteixen xarxa virtual i té IP 192.168.56.1
Una vegada afegits els registres, haurem de modificar la configuració del servidor DNS de manera que escolti i s'anuncïi com a tal a través de la xarxa ja que, per defecte, només escolta a ell mateix.
Webmin ens mostra un editor de l'arxiu via web on haurem de modificar la línia 13 i la 19 de manera que en comptes de 127.0.0.1 i localhost i figuri any.
Reiniciarem el servei de DNS
systemctl reload named
Prova de funcionament
Primer de tot, provaré de resoldre noms des del mateix servidor DNS fent servir dig
i ping
. Per a utilitzar el DNS que s'està executant al CentOS, hauré de modificar la configuració de la interfície de xarxa virtual corresponent a la 192.168.56.0/24
de manera que el servidor DNS sigui 192.168.56.50
(ell mateix). Puc fer-ho amb la comanda nmtui
.
Provaré de fer un ping a fedora.boeck.cat:
[root@m08uf1dns ~]# ping fedora.boeck.cat PING fedora.boeck.cat (192.168.56.1) 56(84) bytes of data. 64 bytes from 192.168.56.1 (192.168.56.1): icmp_seq=1 ttl=64 time=0.316 ms 64 bytes from 192.168.56.1 (192.168.56.1): icmp_seq=2 ttl=64 time=0.442 ms
Efectivament, el nom de host es resol cap a la IP que he definit anteriorment. El següent pas és comprovar que aquesta resolució l'hagi fet el mateix CentOS on s'executa el BIND: 192.168.56.50
[root@m08uf1dns ~]# dig fedora.boeck.cat ; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> fedora.boeck.cat ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16603 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;fedora.boeck.cat. IN A ;; ANSWER SECTION: fedora.boeck.cat. 38400 IN A 192.168.56.1 ;; AUTHORITY SECTION: boeck.cat. 38400 IN NS m08uf1dns. ;; Query time: 0 msec ;; SERVER: 192.168.56.50#53(192.168.56.50) ;; WHEN: dg nov 04 13:25:37 CET 2018 ;; MSG SIZE rcvd: 84
De la mateixa manera, podem llegir en aquest output que el servidor 192.168.56.50 té un A Record per al nom fedora.boeck.cat que apunta a l'adreça 192.168.56.1. Per tant, és correcte.
Seria d'esperar, aleshores, que si poso en marxa 2 màquines més a la mateixa xarxa (corresponents a a01.boeck.cat i a02.boeck.cat) i les configuro per usar 192.168.56.50 com a DNS, també haurien de poder resoldre noms i connectar entre elles usant aquests noms de host. Les captures següents són simplement captures de pantalla de dues noves màquines CentOS minimal a les que he configurat la IP d'acord als registres A que corresponen als servidor DNS i la prova que cada una pot resoldre els noms de host existents al BIND Configuració de xarxa hosts extres
Prova de resolució de noms