Utilitzar els servidors #DNS del nostre proveïdor d’internet pot no ser optim i encara menys si per alguna raó té interés en saber quines pàgines visitem.
Veurem com configurar Debian GNU/Linux 11 (bullseye) per a que resolgui localment els dominis de les pàgines que naveguem amb #Unbound. No només evitarem el problema comentat abans sinó que també tindrem una resolució de noms pràcticament instantània.
Aquest tutorial està basat amb el de linuxbabe.
Per a començar instal·larem Unbound després d’actualitzar el sistema:
sudo apt update
sudo apt install unbound
Unbound s’hauria d’iniciar per defecte però si no ho ha fet ho fem nosaltres amb ‘systemctl start unbound'
. Comprovem que funciona:Unbound
sudo systemctl status unbound
Si no hi ha cap problema veurem que està “active”:
Per si som dels que paren l’ordinador o el portàtil quan acaben les tasques informàtiques, necessitarem demanar a systemd que torni a iniciar Unbound cada vegada que l’engeguem:
sudo systemctl enable unbound
Configuració
Editem el fitxer /etc/unbound/unbound.conf i li afegim la configuració mínima però funcional sota l’única línia que diu ‘include_toplevel: "/etc/unbound/unbound.conf.d/*.conf"'. La configuració quedaria així:
include_toplevel: "/etc/unbound/unbound.conf.d/*.conf"
server:
# the working directory.
directory: "/etc/unbound"
# run as the unbound user
username: unbound
verbosity: 2 # uncomment and increase to get more logging.
# listen on all interfaces, answer queries from the local subnet.
interface: 0.0.0.0
# comment out the following line if your system doesn't have IPv6.
interface: ::0
# perform prefetching of almost expired DNS cache entries.
prefetch: yes
access-control: 10.0.0.0/8 allow
access-control: 127.0.0.1/24 allow
access-control: 2001:DB8::/64 allow
# hide server info from clients
hide-identity: yes
hide-version: yes
remote-control:
# Enable remote control with unbound-control(8) here.
control-enable: no
# what interfaces are listened to for remote control.
# give 0.0.0.0 and ::0 to listen to all interfaces.
# set to an absolute path to use a unix local name pipe, certificates
# are not used for that, so key and cert files need not be present.
control-interface: 127.0.0.1
# control-interface: ::1
# port number for remote control operations.
control-port: 8953
Aquestes configuracions s’expliquen soles. Desem els canvis i reiniciem Unbound:
sudo systemctl restart unbound
Per defecte, Debian 11 fa servir systemd-resolved per a resoldre noms de dominis a IPs, servei que escolta peticions en la IP local 127.0.0.53:53. Ho podem veure si fem:
ss -lnptu | grep 53 |grep systemd-resolve
Abans d’aturar systemd-resolved ens cal instal·lar un altre paquet, openresolv, perquè quan parem systemd-resolved ens quedem sense resolució de noms fins que no tinguem Unbound operatiu:
sudo apt install openresolv
Ara sí que podem parar systemd-resolved perquè volem enllaçar Unbound a 0.0.0.0:53
sudo systemctl disable systemd-resolved --now
Reiniciem Unbound
sudo systemctl restart unbound
Ens falta configurar Unbound com el encarregat per defecte de la resolució de noms. Quan hem instal·lat Unbound també ho ha fet el servei systemd ‘unbound-resolvconf.service’ però encara no funciona. Ens cal crear-li una configuració personalitzada. Creem-la i editem-la:
nano /etc/systemd/system/unbound-resolvconf.service
[Unit]
Description=local unbound via resolvconf
After=unbound.service
ConditionFileIsExecutable=/sbin/resolvconf
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c 'echo nameserver 127.0.0.1 | /sbin/resolvconf -a lo.unbound'
ExecStop=/sbin/resolvconf -d lo.unbound
[Install]
WantedBy=unbound.service
Desem els canvis i avisem a systemd del nou servei:
sudo systemctl daemon-reload
I reiniciem el servei ‘unbound-resolvconf.service’:
sudo systemctl restart unbound-resolvconf.service
Si tot ha anat bé veurem que el tradicional fitxer de configuració ‘/etc/resolv.conf’ ha estat creat i configurat correctament per a que Unbound ja sigui plenament operatiu:
Comprovem-ho amb ‘dig mastodont.cat’:
En la línia ‘SERVER’ veiem ‘127.0.0.1#53(127.0.0.1)’. Genial! Unbound funciona! i molt ràpid!
Només falta configurar la connexió de xarxa, en la pestanya IPv4 i en el camp DNS esborrem el que hi hagi escrit i hi posem 127.0.0.1 que és la IP local de la nostre màquina:
Ja està tot, a gaudir!