Error bind9 no inicia, después de reiniciar la VPS
Hoy sábado 22/06/24 he aprovechado para reiniciar uno de los servidores que tengo, en concreto es una VPS en Debian.
En concreto en esta VPS se encuentran las webs, al reiniciar todo aparentaba bien, hasta que me doy cuenta de que el servicio bind9 no iba.
Revisando los errores con systemctl status bind9.service me aparecen los siguiente errores:
root@host:~# systemctl status bind9.service
● named.service – BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2024-06-22 13:02:17 BST; 1min 4s ago
Docs: man:named(8)
Process: 11775 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=1/FAILURE)
Main PID: 11775 (code=exited, status=1/FAILURE)
CPU: 29msJun 22 13:02:17 host.xxxx.xx systemd[1]: named.service: Scheduled restart job, restart counter is at 5.
Jun 22 13:02:17 host.xxxx.xx systemd[1]: Stopped BIND Domain Name Server.
Jun 22 13:02:17 host.xxxx.xx systemd[1]: named.service: Start request repeated too quickly.
Jun 22 13:02:17 host.xxxx.xx systemd[1]: named.service: Failed with result ‘exit-code’.
Jun 22 13:02:17 host.xxxx.xx systemd[1]: Failed to start BIND Domain Name Server.
Jun 22 13:02:20 host.xxxx.xx systemd[1]: named.service: Start request repeated too quickly.
Jun 22 13:02:20 host.xxxx.xx systemd[1]: named.service: Failed with result ‘exit-code’.
Jun 22 13:02:20 host.xxxx.xx systemd[1]: Failed to start BIND Domain Name Server.
Compruebo los archivos de configuración de otra VPS que tengo y todo se ve correcto, ¿Entonces que puede ser?
Utilizo el comando named-checkconf para que me compruebe la configuración y obtengo el siguiente resultado:
root@host:~# named-checkconf
/etc/bind/named.conf.options:2: change directory to ‘/var/cache/bind’ failed: file not found
/etc/bind/named.conf.options:2: parsing failed: file not found
Según resultado la causa es la falta de una carpeta, así que el siguiente paso es crear esa carpeta y dale sus correspondientes permisos.
root@host:~# sudo mkdir -p /var/cache/bind
root@host:~# sudo chown bind:bind /var/cache/bind/
root@host:~# sudo chmod 755 /var/cache/bind/
Por recomendación del administrador de HiveAgile.com me recomienda que cree un archivo en el directorio tmpfiles.d llamado bind9.conf
Este archivo debe contener la siguiente línea:
d /var/cache/bind 0755 bind bind –
Luego deberemos ejecutar:
systemd-tmpfiles –create
systemctl restart bind9
En resumen, systemd-tmpfiles --create
es un comando utilizado para crear y configurar archivos y directorios temporales en un sistema Linux, asegurando que existan con los permisos y propietarios adecuados según las configuraciones definidas en los archivos tmpfiles.d
.
Con lo cual la próxima vez que se reinicie el servidor, si la carpeta /var/cache/bind no existiera se crearía automáticamente gracias a tmpfiles.