Hier soir, j’ai mis à jour le serveur : nous passons de Debian 7.8 (wheezy) à 8.0 (jessie).
Tout s’est plutôt bien passé, il y a eu environ 10 minutes de downtime, le temps que je comprenne ce qui avait changé, notamment dans la configuration Apache et celle de Postfix.
Voici un petit compte-rendu de la mise à jour.
Mise à jour des dépôts
On édite notre fichier source APT :
nano /etc/apt/sources.list
et on remplace toutes les occurences de wheezy par jessie.
Chez moi, cela donne :
# DEBIAN
deb http://mirror.ovh.net/debian/ stable main contrib non-free
deb-src http://mirror.ovh.net/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
# mod security
deb http://ftp.debian.org/debian/ jessie-backports main
Préparation à la mise à jour de Debian
J’ai commencé par vérifier qu’aucun paquet n’était à moitié installé :
dpkg --audit
ou en attente :
dpkg --get-selections | grep 'hold
Rien? Tout va bien, on continue et on simule une installation avec :
apt-get -o APT::Get::Trivial-Only=true dist-upgrade
Le résultat est une longue liste de paquets, suivie du message suivant:
439 upgraded, 192 newly installed, 5 to remove and 1 not upgraded.
Need to get 275 MB of archives.
After this operation, 259 MB of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.
Nos sauvegardes sont faites, on se lance.
Mise à jour Debian
On rafraichit les dépôts et on lance l’installation:
apt-get update && apt-get upgrade
On obtient un laïus avec ce qui change. J’aperçois plusieurs pages sur Apache, on y reviendra. Cela dure à peu près une dizaine de minutes, bien que je n’ai pas vraiment minuté.
Une fois l’installation terminée, on résout les dépendances et les paquets manquants avec :
apt-get dist-upgrade
Je lance le site pour voir : paf, erreur 403.
Configuration d’Apache 2.4
Avec Jessie, on passe d’Apache 2.2 à la version 2.4, ce qui implique quelques changements.
Fichiers de configuration
Tout d’abord, tous les fichiers de configuration dans /etc/apache2/sites-available
et /etc/apache2/mods-available
doivent porter l’extension .conf et être activés avec a2ensite
.
Contrôle d’accès
Dans les fichiers de configuration, il faut modifier les directives du contrôle d’accès.
Pour tout bloquer, on met maintenant Require all denied
:
# Apache 2.2
# Order deny,allow
# Deny from all
# Apache 2.4
Require all denied
Pour tout autoriser, on met Require all granted
:
# Apache 2.2
# Order allow,deny
# Allow from all
# Apache 2.4
Require all granted
Désactivation du mod SPDY
Le mod SPDY est incompatible avec Apache 2.4:
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/spdy.load: Cannot load /usr/lib/apache2/modules/mod_spdy.so into server: /usr/lib/apache2/modules/mod_spdy.so: undefined symbol: ap_log_cerror
donc, on le désactive :
a2dismod spdy
Activation de mod_security2
Au redémarrage d’Apache, mod_security fait des siennes :
apache2: Syntax error on line 141 of /etc/apache2/apache2.conf: Syntax error on line 9 of /etc/apache2/mods-enabled/security2.conf: No matches for the wildcard '*.conf' in '/etc/modsecurity', failing (use IncludeOptional if required)
Il suffit de renommer le fichier modsecurity.conf-recommended
en modsecurity.conf
:
mv /etc/modsecurity/modsecurity.conf{-recommended,}
et d’activer le mod
a2enmod security2
puis de relancer Apache :
service apache2 restart
Plus d’images sur le sous-domaine
Sur mon sous-domaine dédié aux images et autres ressources statiques, tout était renvoyé en 403. Le problème venait du fait que j’avais mis une directive Directory à l’intérieur de mon VirtualHost : en le déplaçant en dehors du bloc VirtualHost, plus aucun problème.
Postfix
Enfin, j’ai remarqué que les mails n’arrivaient plus avec Postfix. Un petît tour dans les logs m’a appris que j’avais des directives en double dans le fichier main.cf :
send-mail: warning: /etc/postfix/main.cf, line 150: overriding earlier entry: smtpd_tls_key_file=$smtpd_tls_cert_file
send-mail: warning: /etc/postfix/main.cf, line 151: overriding earlier entry: smtpd_tls_cert_file=/etc/ssl/postfix.pem
Il suffit de supprimer les doublons et de relancer Postfix :
service postfix restart
Voilà, c’est tout.
Rien? Tout va bien, on continue et on simule une installation avec :
Le résultat est une longue liste de paquets, suivie du message suivant:
Nos sauvegardes sont faites, on se lance.
Mise à jour Debian
On rafraichit les dépôts et on lance l’installation:
On obtient un laïus avec ce qui change. J’aperçois plusieurs pages sur Apache, on y reviendra. Cela dure à peu près une dizaine de minutes, bien que je n’ai pas vraiment minuté.
Une fois l’installation terminée, on résout les dépendances et les paquets manquants avec :
Je lance le site pour voir : paf, erreur 403.
Configuration d’Apache 2.4
Avec Jessie, on passe d’Apache 2.2 à la version 2.4, ce qui implique quelques changements.
Fichiers de configuration
Tout d’abord, tous les fichiers de configuration dans /etc/apache2/sites-available
et /etc/apache2/mods-available
doivent porter l’extension .conf et être activés avec a2ensite
.
Contrôle d’accès
Dans les fichiers de configuration, il faut modifier les directives du contrôle d’accès.
Pour tout bloquer, on met maintenant Require all denied
:
Pour tout autoriser, on met Require all granted
:
Désactivation du mod SPDY
Le mod SPDY est incompatible avec Apache 2.4:
donc, on le désactive :
Activation de mod_security2
Au redémarrage d’Apache, mod_security fait des siennes :
Il suffit de renommer le fichier modsecurity.conf-recommended
en modsecurity.conf
:
et d’activer le mod
puis de relancer Apache :
Plus d’images sur le sous-domaine
Sur mon sous-domaine dédié aux images et autres ressources statiques, tout était renvoyé en 403. Le problème venait du fait que j’avais mis une directive Directory à l’intérieur de mon VirtualHost : en le déplaçant en dehors du bloc VirtualHost, plus aucun problème.
Postfix
Enfin, j’ai remarqué que les mails n’arrivaient plus avec Postfix. Un petît tour dans les logs m’a appris que j’avais des directives en double dans le fichier main.cf :
Il suffit de supprimer les doublons et de relancer Postfix :
Voilà, c’est tout.
Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ajouter de nouvelles fonctionnalités, ou améliorer les performances de votre site? Faîtes appel à mon expertise.