Upgrade da Debian Stretch a Buster: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
 
(19 intermediate revisions by the same user not shown)
Line 16: Line 16:
  mv 70-persistent-net.rules 70-persistent-net.rules.old
  mv 70-persistent-net.rules 70-persistent-net.rules.old


* Identificare i nuovi nomi:
* Identificare i nuovi nomi (scegliere con precedenza ID_NET_NAME_SLOT o ID_NET_NAME_PATH):


  udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
  udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
Line 22: Line 22:
  ID_NET_NAME_MAC=enx6c626d50fe77
  ID_NET_NAME_MAC=enx6c626d50fe77
  ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD
  ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD
  ID_NET_NAME_PATH=enp2s0
  ID_NET_NAME_SLOT=enp2s0


  udevadm test-builtin net_id /sys/class/net/eth1 2>/dev/null
  udevadm test-builtin net_id /sys/class/net/eth1 2>/dev/null
Line 28: Line 28:
  ID_NET_NAME_MAC=enx0008a1c7e44f
  ID_NET_NAME_MAC=enx0008a1c7e44f
  ID_OUI_FROM_DATABASE=CNet Technology Inc.
  ID_OUI_FROM_DATABASE=CNet Technology Inc.
  ID_NET_NAME_PATH=enp3s0
  ID_NET_NAME_SLOT=enp3s0


* Trovare i riferimenti al primo nome e verificare:
* Trovare i riferimenti al primo nome e verificare:
Line 74: Line 74:
* Rimuovere eventuali forzature, soprattutto per VM VirtIO:
* Rimuovere eventuali forzature, soprattutto per VM VirtIO:


  rm /etc/systemd/network/99-default.link
  /bin/rm -f /etc/systemd/network/99-default.link
  rm /etc/systemd/network/50-virtio-kernel-names.link
  /bin/rm -f /etc/systemd/network/50-virtio-kernel-names.link


* Aggiornare initrd e fare reboot:
* Aggiornare initrd e fare reboot:


  sudo update-initramfs -u
  sudo update-initramfs -u -k all
  reboot
  reboot


Line 90: Line 90:
All the iptables binaries have been moved away from /sbin to /usr/sbin.
All the iptables binaries have been moved away from /sbin to /usr/sbin.
Some compatibility symlinks have been added for the Buster release cycle
Some compatibility symlinks have been added for the Buster release cycle
Ora si usa nftables, iptables è solo un layer di compatibilità.
Per usare l'FTP connection Tracking, bisogna usare i nuovi moduli:
Invece di:
modprobe    ip_conntrack_ftp
modprobe    ip_nat_ftp
Usare:
modprobe    nf_conntrack_ftp
echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
===Riferimenti===
*[https://serverfault.com/questions/880551/nftables-issue-with-ftp-firewall-and-conntrack connection - Nftables issue with ftp firewall and conntrack - Server Fault]


==Samba==
==Samba==
Line 100: Line 115:


==Software non più presenti==
==Software non più presenti==
* phpmyadmin
* phpmyadmin: '''prendere dai backports'''
* ipsec-tools and racoon
* ipsec-tools and racoon
* ssmtp
* ssmtp
Line 201: Line 216:
deb http://ftp.it.debian.org/debian/ buster-updates main contrib non-free
deb http://ftp.it.debian.org/debian/ buster-updates main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
#deb http://archive.debian.org/debian buster-backports main contrib
#deb http://ftp.it.debian.org/debian/ buster-backports main contrib non-free
</pre>
</pre>


Line 207: Line 222:


<pre>
<pre>
deb     http://mirrors.kernel.org/debian stretch-backports main contrib
deb http://ftp.it.debian.org/debian/ buster-backports main contrib non-free
deb-src http://mirrors.kernel.org/debian stretch-backports main contrib
</pre>
</pre>




* Se sono presenti fonti agguntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)
* Se sono presenti fonti aggiuntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)


  sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*
  sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*
Line 255: Line 269:
  sudo apt-get upgrade
  sudo apt-get upgrade


* Se zabbix è presente, aggiornare prima il release file:ù
* Se zabbix è presente, aggiornalo reinstallando i pacchetti:
  if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get install zabbix-release; fi
 
  if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get remove zabbix-release; apt-get install zabbix-release; apt-get update; PKGS=$(dpkg -l | tr -s ' ' | cut -f 2 --delimiter=' '| grep '^zabbix' | grep -v '^zabbix-release$\|zabbix-agent'); echo REINSTALLING $PKGS; apt-get remove --purge $PKGS; apt-get remove zabbix-agent; apt-get install zabbix-agent; apt-get install $PKGS; fi


==Aggiornamento restanti pacchetti==
==Aggiornamento restanti pacchetti==
Line 280: Line 295:


=Preparazione al riavvio=
=Preparazione al riavvio=
==Mediawiki==
* Alcune Skin non esistono più , quindi rimuoverle:
/etc/mediawiki/LocalSettings.php
#wfLoadSkin( 'CologneBlue' );
#wfLoadSkin( 'Modern' );
* Eseguire l'upgrade del DB:
cd /usr/share/mediawiki/maintenance
sudo -u www-data ./update.php
* Se si vuole un template responsive, il bundled è Timeless:
vi /etc/mediawiki/LocalSettings.php
$wgDefaultSkin = 'timeless';
wfLoadSkin( 'Timeless' );
===Riferimenti===
* [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=909589 #909589 - mediawiki: /usr/share/mediawiki/skins/CologneBlue/skin.json, does not exist! (upgrading to 1:1.31.1-2) - Debian Bug report logs]
* [https://www.mediawiki.org/wiki/MediaWiki_1.31 MediaWiki 1.31 - MediaWiki]
==Owncloud==
* Se a riavvio, non si riesce a loggarsi in Owncloud con l'errore
Setting locale to en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8 failed
* Modificare il file
vi  /etc/apache2/envvars
export LANG=en_US.UTF-8
* [https://github.com/nextcloud/server/issues/12318#issuecomment-437013889 locale error after updating debian-testing · Issue #12318 · nextcloud/server]


==OpenVPN==
==OpenVPN==


* Attenzione, anche tutti ic ertificati VPN devono avere digest sha1 e non md5, key size 2048 e non 1024e dhparam 2048 e non 1024.  
* Attenzione, anche tutti i certificati VPN devono avere digest sha1 e non md5, key size 2048 e non 1024e dhparam 2048 e non 1024.  
* Rigenerarli tutti ...
* Rigenerarli tutti ...


Line 317: Line 365:
systemctl restart apache2
systemctl restart apache2
</pre>
</pre>
==PhpMyadmin==
apt-get install -t buster-backports  phpmyadmin
==Postfixadmin==
*Occorrono delle modfiche ai file di configurazione e la creazioen di alcune directory: vedere [[Gestione domini virtual con postfixadmin#Fix per Debian Buster]]
*Lanciare poi l'upgrade del DB senza bisogno di inserire nessun dato o password nel form: http://servername/postfixadmin/setup.php


==Pulizia==
==Pulizia==

Latest revision as of 09:30, 19 July 2021

Preparazione

Cambiamento nomi interfacce ethernet

  • Da questa release, viene interrotto il supporto alias ai nomi delle interfacce. Occorre migrare al nuovo schema di denominazione.
  • Identificare tutte le interfacce:
echo /sys/class/net/[ew]*
/sys/class/net/eth0 /sys/class/net/eth1
  • Disabilitare lo script udev:
cd /etc/udev/rules.d/
mv 70-persistent-net.rules 70-persistent-net.rules.old
  • Identificare i nuovi nomi (scegliere con precedenza ID_NET_NAME_SLOT o ID_NET_NAME_PATH):
udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
ID_NET_NAME_MAC=enx6c626d50fe77
ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD
ID_NET_NAME_SLOT=enp2s0
udevadm test-builtin net_id /sys/class/net/eth1 2>/dev/null
ID_NET_NAME_MAC=enx0008a1c7e44f
ID_OUI_FROM_DATABASE=CNet Technology Inc.
ID_NET_NAME_SLOT=enp3s0
  • Trovare i riferimenti al primo nome e verificare:
sudo rgrep -w eth0 /etc
/etc/samba/smb.conf:;   interfaces = 127.0.0.0/8 eth0
/etc/initramfs-tools/initramfs.conf:# Specify a specific network interface, like eth0
/etc/network/if-up.d/upstart:	# Ignoring unknown interface eth0=eth0.
/etc/network/interfaces:auto eth0
/etc/network/interfaces:iface eth0 inet manual
/etc/network/interfaces:#iface eth0 inet static
/etc/network/interfaces:	bridge_ports eth0
/etc/dhcp/dhclient.conf:#  interface "eth0";
/etc/dhcp/dhclient.conf:#  interface "eth0";
/etc/dhcp/dhclient.conf.dpkg-old:#  interface "eth0";
/etc/dhcp/dhclient.conf.dpkg-old:#  interface "eth0";
/etc/xen/scripts/network-bridge-wrapper:#/etc/xen/scripts/network-bridge netdev=eth0 bridge=xenbr0 start
/etc/xen/scripts/network-bridge-wrapper:/etc/xen/scripts/network-bridge netdev=eth0 start
/etc/xen/scripts/network-bridge-wrapper:# 1.) list all dom0 interfaces you want to be able to use (except your eth0!) in "more_bridges" below
/etc/udev/rules.d/70-persistent-net.rules.old:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="6c:62:6d:50:fe:77", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
  • Trovare i riferimenti al secondo nome e verificare:
sudo rgrep -w eth1 /etc
/etc/network/interfaces:auto eth1
/etc/network/interfaces:iface eth1 inet manual
/etc/network/interfaces:	bridge_ports eth1
/etc/xen/scripts/network-bridge-wrapper:#/etc/xen/scripts/network-bridge netdev=eth1 bridge=xenbr1 start
/etc/xen/scripts/network-bridge-wrapper:more_bridges="eth1"
/etc/udev/rules.d/70-persistent-net.rules.old:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:70:c6:e9", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
/etc/udev/rules.d/70-persistent-net.rules.old:SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:08:a1:c7:e4:4f", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
  • Se la sostituzione ha senso, eseguirla:
for FILE in $(sudo rgrep -l -w eth0 /etc); do sed -i -e 's/eth0/enp2s0/g' $FILE; done
for FILE in $(sudo rgrep -l -w eth1 /etc); do sed -i -e 's/eth1/enp3s0/g' $FILE; done
  • Rimuovere eventuali forzature, soprattutto per VM VirtIO:
/bin/rm -f /etc/systemd/network/99-default.link
/bin/rm -f /etc/systemd/network/50-virtio-kernel-names.link
  • Aggiornare initrd e fare reboot:
sudo update-initramfs -u -k all
reboot
  • Verificare la presenza di bond e dummy interface (Vedi Riferiemnti)

Certificati SSL

  • Attenzione se si usano certificati SSL Self signed vecchi: oora devono avere key di almeno 2048 bits e digest SHA256

Iptables

All the iptables binaries have been moved away from /sbin to /usr/sbin. Some compatibility symlinks have been added for the Buster release cycle

Ora si usa nftables, iptables è solo un layer di compatibilità.

Per usare l'FTP connection Tracking, bisogna usare i nuovi moduli:

Invece di:

modprobe    ip_conntrack_ftp
modprobe    ip_nat_ftp

Usare:

modprobe    nf_conntrack_ftp
echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper

Riferimenti

Samba

The samba service has been removed. Use the individual services instead:

  • nmbd
  • smbd
  • samba-ad-dc

util-linux

The cfdisk, fdisk and sfdisk utilities has been split out into a separate fdisk package

Software non più presenti

  • phpmyadmin: prendere dai backports
  • ipsec-tools and racoon
  • ssmtp

Riferimenti

Chapter 5. Issues to be aware of for buster

Backup del Sistema

Come sempre ...

  • Fare una copia di comodo locale della etc:
sudo mkdir -p /files; sudo tar --exclude=.svn  --exclude=.git -cvf /files/etc-stretch.tar /etc
  • Fermare cfengine o puppet, se attivi
sudo systemctl stop cfengine2
sudo systemctl stop puppet
sudo puppet agent --disable

Aggiornamento Buster

  • Aggiornare ad ultimi rilasci
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get clean

Pulizia Pacchetti

  • Rimuovere manualmente i pacchetti non più necessari
  • Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
  then \
      echo "Nothing to Remove"; \
  else \
     sudo apt-get remove --purge $(deborphan)
fi
sudo apt-get --purge  autoremove
  • Nel caso l'autoremove voglia rimuovere pacchetti che in realtà si vogliono tenere, marcarli come installati manualemente
sudo apt-mark unmarkauto packagename
  • Ripetere
sudo apt-get --purge  autoremove
  • Rimuovere le configurazione dei pacchetti disinstallati:
 if [ -z "$(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' ')" ]; \
  then \
      echo "Nothing to Purge"; \
  else \
      sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' '); \
fi
  • Rimuovere eventuali vecchie configurazioni:
cd /etc
sudo etckeeper commit -m "Pre remove dpkg old"
sudo git rm $(sudo find . -name \*.dpkg-dist)
sudo git rm $(sudo find . -name \*.dpkg-old)
sudo git rm $(sudo find . -name \*.dpkg-new)
sudo git rm $(sudo find . -name \*.ucf-old)
sudo git rm $(sudo find . -name \*.ucf-new)
sudo rm $(sudo find . -name \*.dpkg-dist)
sudo rm $(sudo find . -name \*.dpkg-old)
sudo rm $(sudo find . -name \*.dpkg-new)
sudo rm $(sudo find . -name \*.ucf-old)
sudo rm $(sudo find . -name \*.ucf-new)
sudo etckeeper commit -m "Removed dpkg old"
  • Verificare se ci sono pacchetti in hold o marcati per la rimozione. Se ci sono holds, disabilitarli:
sudo dpkg --audit
sudo aptitude search "~ahold" 
sudo dpkg --get-selections | grep 'hold$'
  • To unset the “hold” state:
echo package_name install | sudo dpkg --set-selections

Upgrade

Sistemazione fonti apt

  • Sostituire "stretch" con "buster" in /etc/apt/sources.list
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
  • La lista delle sorgenti dovrebbe essere simile a:
sudoedit /etc/apt/sources.list
deb http://ftp.it.debian.org/debian/	buster				main contrib non-free
deb http://ftp.it.debian.org/debian/	buster-updates		main contrib non-free
deb http://security.debian.org/		buster/updates		main contrib non-free
#deb http://ftp.it.debian.org/debian/	buster-backports	main contrib non-free
  • Sostituire, se presenti, le sorgenti backports con
deb http://ftp.it.debian.org/debian/	buster-backports	main contrib non-free


  • Se sono presenti fonti aggiuntive, verificare se è necessario aggiornarle (virtualbox, per webmin, rimane ancora valido sarge)
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*
  • Controllare:
tail -n+1 /etc/apt/sources.list.d/*

Scaricamento pacchetti

  • Aggiornare le nuove fonti APT:
sudo apt-get update
  • Scaricare i pacchetti necessari:
sudo apt-get dist-upgrade -d

Aggiornamento APT

sudo apt-get install apt

Aggiornamento Kernel

  • Installare i firmware non free per ogni hardware che li necessita :
sudo apt-get install firmware-linux firmware-linux-nonfree firmware-realtek
  • Identificare i kernel installati
dpkg -l "linux-image*" | grep ^ii
  • Identificare il kernel in uso
uname -r
  • Installare la versione più recente nel caso di kernel standard, oppure quello adeguato:
sudo apt-get install linux-image-amd64
oppure:
sudo apt-get install linux-image-686-pae
  • Assicurarsi che grub si installi correttamente. In particolare se la root è su un volume RAID, installarlo su ogni DISCO fisico:
sudo grub-install --recheck /dev/sda;  sudo grub-install --recheck /dev/sdb;

Aggiornamento base

  • Durante gli aggiornamenti, prendere nota dei files di configurazione, e sostituirli con la nuova versione premendo Y
  • Aggiornare i pacchetti che non richiedono rimozioni, oppure proseguire con i singoli:
sudo apt-get upgrade
  • Se zabbix è presente, aggiornalo reinstallando i pacchetti:
if (dpkg -l zabbix-release > /dev/null 2>&1) ; then apt-get remove zabbix-release; apt-get install zabbix-release; apt-get update; PKGS=$(dpkg -l | tr -s ' ' | cut -f 2 --delimiter=' '| grep '^zabbix' | grep -v '^zabbix-release$\|zabbix-agent'); echo REINSTALLING $PKGS; apt-get remove --purge $PKGS; apt-get remove zabbix-agent; apt-get install zabbix-agent; apt-get install $PKGS; fi

Aggiornamento restanti pacchetti

  • Aggiornare gli altri pacchetti:
sudo apt-get dist-upgrade
  • Se rimangono dei pacchetti held back, aggiornarli usando ancora
sudo apt-get dist-upgrade

oppure

sudo apt-get -f install package

oppure, VERIFICANDO le eventuali rimozioni proposte

sudo apt-get dist-upgrade


Sistemazione files di configurazione

  • Fare il merge dei vecchi settaggi nei nuovi files di configurazione
sudo vimdiff /etc/cfgfile.dpkg.old /etc/cfgfile
  • Rilanciare dist-upgrade per terminare configurazione
 sudo apt-get dist-upgrade

Preparazione al riavvio

Mediawiki

  • Alcune Skin non esistono più , quindi rimuoverle:
/etc/mediawiki/LocalSettings.php
#wfLoadSkin( 'CologneBlue' );
#wfLoadSkin( 'Modern' );
  • Eseguire l'upgrade del DB:
cd /usr/share/mediawiki/maintenance
sudo -u www-data ./update.php
  • Se si vuole un template responsive, il bundled è Timeless:
vi /etc/mediawiki/LocalSettings.php
$wgDefaultSkin = 'timeless';
wfLoadSkin( 'Timeless' );

Riferimenti

Owncloud

  • Se a riavvio, non si riesce a loggarsi in Owncloud con l'errore
Setting locale to en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8 failed
  • Modificare il file
vi  /etc/apache2/envvars
export LANG=en_US.UTF-8

OpenVPN

  • Attenzione, anche tutti i certificati VPN devono avere digest sha1 e non md5, key size 2048 e non 1024e dhparam 2048 e non 1024.
  • Rigenerarli tutti ...

Php

  • Occorre migrare tutto a php7
  • Utilizzare questo script che installa i corrispondenti pacchetti php7.3 e rimuove i php7.0:
#!/bin/bash
PHP5=$(dpkg -l | grep php7.0 | grep '^ii' | tr -s ' ' | cut -f 2 --delimiter=' ')

for PKG in $PHP5
do
        echo Checking $PKG
        PHP7=$(echo $PKG | sed -e 's/php7.0/php7.3/g')
        echo Checking $PHP7

        if (dpkg -l $PHP7 > /dev/null 2>&1)
        then
                echo $PHP7 is installed, removing $PKG
                apt-get remove --purge $PKG
        else
                echo $PHP7 is not installed. Installing it.
                if (apt-get install $PHP7)
                then
                        echo $PHP7 installed, removing $PKG
                        apt-get remove --purge $PKG
                fi
        fi
        echo "---------------------------------------------------------------------------"
done
a2enmod php7.3
systemctl restart apache2

PhpMyadmin

apt-get install -t buster-backports  phpmyadmin


Postfixadmin


Pulizia

  • Rimuovere i pacchetti non necessari
sudo apt-get autoremove --purge
  • Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
  then \
      echo "Nothing to Remove"; \
  else \
     sudo apt-get remove --purge $(deborphan)
fi
  • Rimuovere i vecchi pacchetti:
sudo apt-get remove --purge $(dpkg -l | grep deb9 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb8 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb7 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep deb6 | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep stretch | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep jessie | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep wheezy | tr -s ' '| cut -f 2 --delimiter=' ')
sudo apt-get remove --purge $(dpkg -l | grep squeeze | tr -s ' '| cut -f 2 --delimiter=' ')
  • Rimuovere le configurazione dei pacchetti disinstallati:
if [ -z "$(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' ')" ]; \
 then \
     echo "Nothing to Purge"; \
 else \
     sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f 2 --delim=' '); \
fi
  • Rimuovere i pacchetti non necessari
sudo apt-get autoremove --purge
  • Rimuovere i pacchetti che non hanno dipendenze necessarie:
if [ ! -e /usr/bin/deborphan ]; then sudo apt-get install deborphan; fi
if [ -z "$(deborphan)" ]; \
  then \
      echo "Nothing to Remove"; \
  else \
     sudo apt-get remove --purge $(deborphan)
fi


  • Fare purge vecchi initd:
apt purge initscripts sysv-rc insserv startpar
  • Installare la versione corretta di znapzned, ricompilata.
  • Ora è installato systemd, quindi il riavvio va fatto con
sudo systemctl reboot
  • Testare il tutto dopo il riavvio