Algunas notas al actualizar Debian stretch hacia Buster 10.4 roundcube, bind9 y apache2
Aquí coloco algunas notas de la actualizacion de Debian Stretch hacia Buster. Los problemas con roundcube, apache2 y bind9
La actualizacion la realice con un disco del la version 10.0 para luego actualizar a la 10.4 siempre a traves de un DVD de dicha verison.
Pasando de la 9 a la 10.0
En primer lugar actualice todos los paquetes de la version 9 Stretch desde Internet.
luego agregue el DVD para actualizar hacia la version 10.0 Buster
# apt-cdrom add
elimine todos los repositorios de la version stretch y solo deje el dvd
# cat /etc/apt/sources.list
deb [ trusted=yes ] cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 DVD Binary-1 20190706-10:24]/ buster contrib main
luego actualizo
# apt update
# apt upgrade
# apt dist-upgrade
El principal problema que tuve fue con el DNS, apache, dovecot y roundcube, dejaron de funcionar
apache funciono desinstalando y volviendo a instalar,
NOTA IMPORTANTE: hay que tener copia de los archivos de configuracion de los paquetes que vas a volver a instalar.
# apt remove apache2 --purge
# apt install apache2
volvi a instalar dovecot
# apt install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-ldap dovecot-managesieved dovecot-sieve
con roundcube tuve que instalarlo desde cero y no me funcionaba creo que tiene que ver con las versiones de php que estaban instaladas, las desinstale todas e instale la 7.3
el paquete que hizo funcionar el php
# apt-get install apt-transport-https lsb-release ca-certificates
Con esto ya funciono el roundcube.
Para el DNS cree un nuevo dispositivo y ya funciono.
# mknod /var/bind9/chroot/dev/urandom c 1 9
# chmod 660 /var/bind9/chroot/dev/urandom
# chgrp bind /var/bind9/chroot/dev/urandom
#apt install bind9
Pasando de la 10.0 a la 10.4
El mismo procedimiento agregue el DVD luego actualice
# apt-cdrom add
# cat /etc/apt/sources.list
deb [ trusted=yes ] cdrom:[Debian GNU/Linux 10.4.0 _Buster_ - Official amd64 DVD Binary-1 20200509-10:26]/ buster contrib main
luego actualizo
# apt update
# apt upgrade
# apt dist-upgrade
lo primero es remover el bind por completo, pues si solo se actualiza no funciona.
# apt remove bind9 --purge
# apt install bind9
colocamos todos nuestros archivos de configuracion, yo lo tengo configurado con chroot por lo que me toco realizar las siguientes acciones.
# apt install apparmor
Al revisarlo no funcionaba, pero en otro servidor que actualice antes si quedo activo, pero bueno lo coloco por si les pasa.
# aa-status
apparmor module is loaded.
apparmor filesystem is not mounted.
# mkdir -p /etc/default/grub.d
# echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \ apparmor=1 security=apparmor"' | tee /etc/default/grub.d/apparmor.cfg
# update-grub
# reboot
Verificamos y debe aparecer algo como esto
# aa-status
apparmor module is loaded.
9 profiles are loaded.
9 profiles are in enforce mode.
/usr/bin/man
/usr/sbin/haveged
/usr/sbin/mysqld
/usr/sbin/named
/usr/sbin/ntpd
man_filter
man_groff
nvidia_modprobe
nvidia_modprobe//kmod
0 profiles are in complain mode.
3 processes have profiles defined.
3 processes are in enforce mode.
/usr/sbin/haveged (2673)
/usr/sbin/mysqld (730)
/usr/sbin/ntpd (647)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
apparmor module is loaded.
9 profiles are loaded.
9 profiles are in enforce mode.
/usr/bin/man
/usr/sbin/haveged
/usr/sbin/mysqld
/usr/sbin/named
/usr/sbin/ntpd
man_filter
man_groff
nvidia_modprobe
nvidia_modprobe//kmod
0 profiles are in complain mode.
3 processes have profiles defined.
3 processes are in enforce mode.
/usr/sbin/haveged (2673)
/usr/sbin/mysqld (730)
/usr/sbin/ntpd (647)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
Instale los sigientes paquetes
# apt install bind9
# apt install haveged
# apt install haveged
modifique la siguiente linea en el archivo /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named"
OPTIONS="-u bind -t /var/lib/named"
cree el siguiente archivo /etc/systemd/system/bind9.service
[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
[Service]
ExecStart=/usr/sbin/named -f -u bind -t /var/bind9/chroot
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop
[Install]
WantedBy=multi-user.target
[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
[Service]
ExecStart=/usr/sbin/named -f -u bind -t /var/bind9/chroot
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop
[Install]
WantedBy=multi-user.target
agregue las siguientes lineas al archivo /etc/apparmor.d/local/usr.sbin.named
/var/bind9/chroot/etc/bind/** r,
/var/bind9/chroot/var/** rw,
/var/bind9/chroot/dev/** rw,
/var/bind9/chroot/run/** rw,
/var/bind9/chroot/usr/** rw,
/var/bind9/chroot/etc/bind/** r,
/var/bind9/chroot/var/** rw,
/var/bind9/chroot/dev/** rw,
/var/bind9/chroot/run/** rw,
/var/bind9/chroot/usr/** rw,
Cree un directorio para colocar el contenido de /usr/share/dns en el chroot
mkdir /var/bind9/chroot/usr/share/dns -p
cp /usr/share/dns/* /var/bind9/chroot/usr/share/dns/
chmod 660 /var/bind9/chroot/usr -Rf
chgrp bind /var/bind9/chroot/usr -Rf
cp /usr/share/dns/* /var/bind9/chroot/usr/share/dns/
chmod 660 /var/bind9/chroot/usr -Rf
chgrp bind /var/bind9/chroot/usr -Rf
Nota: en el archivo /etc/bind/named.conf.default-zones bind9
utiliza una nueva ubicacion para la zona root, esto me funciono en uno
de los servidores, en el otro no lo pude hacer funcionar y lo deje como
lo tenia en la version anterior, de la siguiente forma.
file "/etc/bind/db.root";
Reinicie los servicios apparmor y bind9
# systemctl restart apparmor
# systemctl status bind9
● bind9.service - BIND Domain Name Server
Loaded: loaded (/etc/systemd/system/bind9.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/bind9.service.d
└─chroot.conf
Active: active (running) since Wed 2020-06-03 15:27:36 CST; 1min 51s ago
Docs: man:named(8)
Main PID: 1912 (named)
CGroup: /system.slice/bind9.service
└─1912 /usr/sbin/named -f -u bind -t /var/bind9/chroot
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: D.F.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: 8.E.F.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: 9.E.F.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: A.E.F.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: B.E.F.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: EMPTY.AS112.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: automatic empty zone: HOME.ARPA
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: none:106: 'max-cache-size 90%' - setting to 29020MB (out of 32245MB)
jun 03 15:27:36 srvcorreo.ine.com.sv named[1912]: command channel listening on 127.0.0.1#953
hago las pruebas respectivas y me funciona correctamente
# dig dominio.com @ip_de_este_servidor
Espero que les sirva estas notas, saludos y bendiciones.
Fuente:
https://wiki.debian.org/Bind9
https://wiki.debian.org/AppArmor/HowToUse
Comentarios