Migration effectuée le 2017-07-28 (et jours suivants) par quidame, nicoo et lunar.
Le passage de Jessie à Stretch est aussi marqué, dans notre cas, par des changements de version majeure de certains programmes dont la mise à jour a demandé une attention particulière et fait l'objet d'une fiche séparée :
APT
Comme encore cette fois certains paquets ne sont pas disponibles dans les
dépôts de Debian stable, on reconfigure APT pour pouvoir installer (et
mettre à jour) ces programmes sur bulbe. Pour cela il a fallu simplement
changer jessie
pour stretch
dans les fichiers sources.list
et
preferences
, et ajuster le contenu des répertoires sources.list.d
et
preferences.d
. Puis :
sudo etckeeper commit "Reconfiguration d'APT avant dist-upgrade"
sudo apt-get update
sudo apt-get dist-upgrade
À ce moment-là, la mise à jour de fail2ban provoquant une erreur et empêchant la mise à niveau d'autres paquets, suppression (temporaire) de fail2ban.
Durant la mise à jour proprement dite, tous les fichiers de configuration pour
lesquels dpkg
a demandé si on préférait installer la nouvelle version telle
que fournie par le paquet, ou bien conserver la nôtre, tous ces fichiers on été
listés (indépendamment de la réponse fournie à dpkg) pour pouvoir ensuite
revenir dessus posément. Si possible, on repart du fichier fourni par le paquet,
auquel on intègre nos particularités locales.
Post dist-upgrade
Plusieurs problèmes ayant souvent été traités simultanément, le récit suivant ne prétend pas respecter la chronologie des évènements.
SSH
On repart de la version du paquet pour sshd_config
, auquel on ajoute nos
préférences d'algorїthmes et le bloc Match
à la fin pour les accès sftp-only.
On se rend compte que la paire de clefs ed25519
du serveur n'a jamais été
créée :
sudo ssh-keygen -A
sudo rm /etc/ssh/ssh_host_dsa_key*
sudo systemctl restart ssh.service
Nginx
Conformément à la documentaion (NEWS.Debian.gz
), il a fallu ajouter une
directive globale dans /etc/nginx/nginx.conf
pour que le site web fonctionne
à nouveau :
include /etc/nginx/modules-enabled/*.conf;
Postfix
En attendant que bley soit de nouveau opérationnel, on a modifié main.cf
pour ne pas utiliser bley, et on a pu ainsi constater que la mise à jour de
postfix s'était bien passée.
Mailman
/usr/lib/mailman/Mailman/Handlers/SpamAssassin.py
est incorrect, (Cf
bug Debian).
Du coup, on a appliqué le patch proposé par le rapporteur du bug, en protégeant
notre nouvelle version de SpamAssassin.py
avec dpkg-divert :
sudo -s
script="/usr/lib/mailman/Mailman/Handlers/SpamAssassin.py"
dpkg-divert --local --divert ${script}.divert --rename ${script}
cp ${script}.divert ${script}
vim ${script}
[…]
exit
La commande diff -u /chemin/fichier.divert /chemin/fichier
nous donne ceci :
--- /usr/lib/mailman/Mailman/Handlers/SpamAssassin.py.divert 2017-07-28 21:22:12.658924783 +0200
+++ /usr/lib/mailman/Mailman/Handlers/SpamAssassin.py 2017-07-28 21:46:48.775485998 +0200
@@ -28,7 +28,6 @@
from Mailman import Errors
from Mailman.Logging.Syslog import syslog
from Mailman.Handlers import Hold
-from Mailman.Handlers.Moderate import matches_p
SPAMD_HOST = getattr(mm_cfg, 'SPAMASSASSIN_HOST', '')
DISCARD_SCORE = getattr(mm_cfg, 'SPAMASSASSIN_DISCARD_SCORE', 10)
@@ -78,7 +77,7 @@
if MEMBER_BONUS != 0:
for sender in msg.get_senders():
if mlist.isMember(sender) or \
- matches_p(sender, mlist.accept_these_nonmembers, mlist.internal_name()):
+ mlist.GetPattern(sender, mlist.accept_these_nonmembers, at_list='accept_these_nonmembers'):
score -= MEMBER_BONUS
break
BackupNinja
/usr/share/backupninja/sys
est incorrect, et un bug a été rapporté à Debian
à ce propos : sys handler wrongly reports warning due to wrong devices
list. Notre nouvelle
version du script aboutit au patch suivant :
--- /usr/share/backupninja/sys.divert 2013-10-12 12:30:06.000000000 +0200
+++ /usr/share/backupninja/sys 2017-07-31 14:15:59.483380445 +0200
@@ -568,7 +568,7 @@
if [ "$partitions" == "yes" ]; then
if [ "$dosfdisk" == "yes" ]; then
- devices=`LC_ALL=C $SFDISK -l 2>/dev/null | grep "^Disk /dev" | /usr/bin/awk '{print $2}' | cut -d: -f1`
+ devices="$(lsblk -o kname,type | sed -rn '/disk$/s,^([^ ]+).*,/dev/\1,p')"
if [ "$devices" == "" ]; then
warning "No harddisks found"
fi
Bley
En repartant du nouveau fichier /etc/bley/bley.conf
fourni par le paquet, on
commente la section [bleygraph]
à la fin, et on introduit les modifications
suivantes dans la section [bley]
:
dbtype = pgsql
dbport = 5432
#dbuser = bley
#dbpass = bley
dnsbls = zen.spamhaus.org, bl.spamcop.net, ix.dnsbl.manitu.net
dnsbl_threshold = 2
Fail2ban
Il y a eu des changements importants dans fail2ban depuis qu'on l'a installé
et configuré, et notre configuration n'est peut-être plus compatible. Plutôt
que de chercher les erreurs, on supprime tous les fichiers .local
trouvés
dans le répertoire /etc/fail2ban
, on réinstalle le paquet, et on crée le
jail.local
qui nous permet d'activer basiquement 4 jails pour les services
ssh et http.