PR0101 — Servidor DNS Autoritatiu, Recursiu i Segur amb BIND9
Informació de la pràctica
| Camp | Valor |
|---|---|
| Codi | PR0101 |
| Mòdul | M0375 — Serveis de Xarxa i Internet |
| RA | RA1 — Serveis de Resolució de Noms (DNS) |
| Durada estimada | 4-5 hores |
| Modalitat | Individual |
| Lliurament | Fitxers de configuració + PDF (documentació) a Moodle |
| Qualificació | 10 punts (rúbrica adjunta) |
Objectius
- Instal·lar i configurar BIND9 en dues màquines virtuals Ubuntu Server 24.04 (master i slave).
- Configurar el servei en els tres modes principals: cache/recursiu, forwarder i autoritatiu.
- Crear una zona directa i una zona inversa per a un domini personalitzat.
- Configurar una transferència de zona (AXFR) entre el master i el slave, protegida amb TSIG.
- Aplicar mesures bàsiques de hardenització (restricció de recursió, consultes i transferències).
- Documentar tot el procés amb captures de pantalla i respondre qüestions de comprensió.
Requisits previs
- 2 màquines virtuals Ubuntu Server 24.04 LTS en la mateixa xarxa privada (p. ex.
VirtualBox/VMwareamb adaptador en mode NAT Network o Host-only):dns-masteridns-slave. - Accés per SSH a ambdues màquines.
- Haver llegit BIND9 a Linux (modes recursiu, forwarder, autoritatiu, transferència de zona).
Assignació del Rang IP (obligatori)
Cada alumne ha de treballar amb un rang IP propi i diferent de la resta de la classe, per evitar col·lisions al laboratori i per fer detectables les còpies.
- El professor/a us assignarà un número de llista N (1-30).
- Calculeu el vostre tercer octet: XX = 50 + N.
- Exemple: si sou l'alumne número 3, XX = 53, i la vostra xarxa és
192.168.53.0/24. - Exemple: si sou l'alumne número 27, XX = 77, i la vostra xarxa és
192.168.77.0/24. - La vostra xarxa de treball serà
192.168.XX.0/24, amb: dns-master→192.168.XX.10dns-slave→192.168.XX.11www→192.168.XX.20mail→192.168.XX.21- La vostra zona inversa serà
XX.168.192.in-addr.arpa.
Personalització obligatòria
Substituïu XX pel valor numèric que us correspongui (50 + N) i NOMCOGNOM pel vostre nom i cognom (en minúscules, sense espais ni accents, p. ex. jgarcia) a totes les adreces IP, dominis, comentaris de configuració i noms d'amfitrió d'aquesta pràctica. Les captures amb el rang d'exemple (192.168.XX.0/24 literal, o el rang d'un altre company) no es consideraran vàlides.
Part 1: Instal·lació de BIND9 (30 minuts)
A totes dues màquines (dns-master i dns-slave):
sudo apt update
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
# Verifiqueu que el servei s'ha iniciat
sudo systemctl status bind9
sudo netstat -putan | grep :53
Configureu el nom d'amfitrió de cada màquina:
# A dns-master
sudo hostnamectl set-hostname dns-master-NOMCOGNOM
# A dns-slave
sudo hostnamectl set-hostname dns-slave-NOMCOGNOM
Documenteu: captura de systemctl status bind9 amb el servei active (running) a les dues màquines.
Part 2: Mode Cache/Recursiu i Forwarder (45 minuts)
Al master, editeu /etc/bind/named.conf.options:
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { 192.168.XX.0/24; };
allow-query { 192.168.XX.0/24; };
forwarders {
8.8.8.8;
1.1.1.1;
};
forward first;
dnssec-validation auto;
listen-on { any; };
listen-on-v6 { none; };
};
Reinicieu el servei:
Des d'una tercera màquina client (o des del mateix slave), verifiqueu la resolució recursiva:
Documenteu: captura de dig amb resposta ANSWER SECTION i secció Query time, comparant la primera consulta (sense cache) amb una segona consulta (amb cache).
Part 3: Zona Autoritativa Directa i Inversa (1 hora)
Al master, afegiu la zona a /etc/bind/named.conf.local:
zone "NOMCOGNOM.local" {
type master;
file "/etc/bind/zones/db.NOMCOGNOM.local";
allow-transfer { 192.168.XX.11; };
also-notify { 192.168.XX.11; };
};
zone "XX.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.XX";
allow-transfer { 192.168.XX.11; };
};
Creeu el directori de zones i el fitxer /etc/bind/zones/db.NOMCOGNOM.local:
$TTL 604800
@ IN SOA ns1.NOMCOGNOM.local. admin.NOMCOGNOM.local. (
2026070601 ; Serial (any-mes-dia-seq)
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
;
@ IN NS ns1.NOMCOGNOM.local.
@ IN NS ns2.NOMCOGNOM.local.
@ IN MX 10 mail.NOMCOGNOM.local.
ns1 IN A 192.168.XX.10
ns2 IN A 192.168.XX.11
www IN A 192.168.XX.20
mail IN A 192.168.XX.21
ftp IN CNAME www
Creeu la zona inversa /etc/bind/zones/db.192.168.XX:
$TTL 604800
@ IN SOA ns1.NOMCOGNOM.local. admin.NOMCOGNOM.local. (
2026070601 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
;
@ IN NS ns1.NOMCOGNOM.local.
10 IN PTR ns1.NOMCOGNOM.local.
11 IN PTR ns2.NOMCOGNOM.local.
20 IN PTR www.NOMCOGNOM.local.
Comproveu la sintaxi i reinicieu:
sudo named-checkzone NOMCOGNOM.local /etc/bind/zones/db.NOMCOGNOM.local
sudo named-checkzone XX.168.192.in-addr.arpa /etc/bind/zones/db.192.168.XX
sudo systemctl restart bind9
dig @192.168.XX.10 www.NOMCOGNOM.local
dig @192.168.XX.10 -x 192.168.XX.20
Documenteu: captura de dig mostrant resolució directa (A) i inversa (PTR) correctes, amb el flag aa (Authoritative Answer) present.
Part 4: Transferència de Zona Segura amb TSIG (1 hora)
Al master, genereu una clau TSIG per protegir l'AXFR:
Incloeu la clau a /etc/bind/named.conf.options d'ambdues màquines (include o enganxada directament):
Copieu /etc/bind/tsig.key del master al slave (per exemple amb scp) i actualitzeu la zona del master perquè només accepti transferències autenticades:
zone "NOMCOGNOM.local" {
type master;
file "/etc/bind/zones/db.NOMCOGNOM.local";
allow-transfer { key transfer-key; };
also-notify { 192.168.XX.11 key transfer-key; };
};
Al slave, configureu /etc/bind/named.conf.local perquè actuï com a secundari:
zone "NOMCOGNOM.local" {
type slave;
masters { 192.168.XX.10 key transfer-key; };
file "/var/cache/bind/db.NOMCOGNOM.local";
};
Reinicieu ambdós serveis i forceu la transferència:
# Al master
sudo systemctl restart bind9
# Al slave
sudo systemctl restart bind9
sudo rndc retransfer NOMCOGNOM.local
dig @192.168.XX.11 www.NOMCOGNOM.local
Comproveu que sense la clau TSIG la transferència és rebutjada (proveu-ho des d'una tercera màquina sense la clau):
Documenteu: captura de la transferència reeixida al slave (amb clau) i de l'intent rebutjat sense clau (; Transfer failed o similar).
Part 5: Hardenització Bàsica (45 minuts)
Al master, apliqueu mesures addicionals a /etc/bind/named.conf.options:
version "No disponible";
allow-query-cache { 192.168.XX.0/24; };
logging {
channel query_log {
file "/var/log/bind/query.log" versions 3 size 10m;
severity info;
print-time yes;
};
category queries { query_log; };
};
rate-limit {
responses-per-second 15;
window 5;
};
Creeu el directori de logs amb els permisos correctes:
Verifiqueu que la versió ja no es filtra:
Documenteu: captura abans/després d'ocultar la versió i del fitxer de log amb consultes reals registrades.
Qüestions
Responeu al document de lliurament:
- Quina diferència hi ha entre un servidor DNS recursiu, un forwarder i un autoritatiu? Poden coexistir al mateix procés
named? - Per què cal restringir
allow-recursioniallow-queryen un servidor autoritatiu públic (risc de DNS amplification)? - Quin problema de seguretat resol TSIG en una transferència de zona i com funciona a nivell criptogràfic (resum)?
- Quina informació sensible es podria filtrar si no s'oculta la
versiondel servidor?
Lliurament
- Fitxers de configuració de les dues màquines:
named.conf.options,named.conf.locali les zones (db.NOMCOGNOM.local,db.192.168.XX) de master i slave. - Documentació PDF amb:
- El vostre número de llista N i el rang
192.168.XX.0/24calculat - Captures de cada part (1 a 5)
- Respostes a les 4 qüestions
- Taula resum de la configuració aplicada
- README.md amb un resum dels passos d'instal·lació i configuració seguits.
Criteris d'Avaluació
Consulteu la rúbrica detallada per a la puntuació completa (10 punts, 5 blocs + penalitzacions).
Recursos Addicionals
- BIND9 a Linux — configuració de referència d'aquesta pràctica.
- BIND 9 Administrator Reference Manual: https://bind9.readthedocs.io/
- RFC 1035 — Domain Names: https://www.rfc-editor.org/rfc/rfc1035
- RFC 2845 — Secret Key Transaction Authentication (TSIG): https://www.rfc-editor.org/rfc/rfc2845
Data de creació: Juliol 2026 Autor: Curs M0375 - Serveis de Xarxa i Internet