Le blogouille de Caro et Nico

Entre famille, sport et aventures !

Comme quoi lire les logs ca fait du bien

Bon, suite à plantage de Apache2 et MySQL, un petit peu d’administration de serveur s’imposait. En lisant les logs systèmes on apprend plein de choses et on trouve plein de petits trucs qui déconnent….

En gros :

Des attaques brute force à répétition via WordPress sur les comptes users wordpress, qui surchargent le système et font sauter Apache2 et/ou MySQL. De plus le système semble configuré incorrectement sur la memory_limit entre php, Apache2, plugin suhosin et WordPress.

Solution : installation de fail2ban sous Debian.installation de plusieurs plugin WordPress de securité, comme WP fail2ban et WP Apocalypse Meow.
Correction de bug (timestamp error) dans DenyHosts pour le rendre fonctionnel à nouveau.
Modification de RoundCube pour logger dans syslog.
Augmentation de la mémoire max allouée à PHP dans Apache à 256M (au lieu de 128M).

Et voilà un serveur à nouveau sain et rapide, avec en prime une meilleure résistance aux attaques brute force.

Migration Debian Lenny vers Squeeze

Bon le serveur a été (enfin) migré de Debian 5 « Lenny » vers Debian 6 « Squeeze ». Le tout à distance par SSH. Plutôt risqué mais en suivant bien la documentation et avec un peu de temps, tout a redémarré (ou presque) sans grosse maintenance additionnelle.

A noter les problèmes suivants :

SSH : durant la migration, le script demande de redémarrer pas mal de services réseau, y compris ssh. Pour éviter de perdre la connexion, penser à modifier la liste et enlever ssh.

Dovecot : utilise un fichier de configuration à la syntaxe différente que la version précédente, avec un plugin sieve modifié et un aussi un standard de nommage des répertoires emails « Mailbox » différents de la version majeure précédente, donc il faut paramétrer le format à la main. C’est bien décrit ici :
http://workaround.org/ispmail/squeeze/migrating-from-lenny

MySQL 5.1 : il a fallu purger l’ancienne configuration par défaut pour 5.0 et recréer la nouvelle config 5.1 (par défaut aussi).

ProFTP : bah …. n’a pas tout simplement été installé/migré. Le nom du paquet est différent. Une installation ultérieure avec apt-get install proftpd-basic a résolu le problème, fichier de configuration intact 🙂

PhpMyAdmin : problème de mot de passe à la reconfiguration. J’avais tout simplement oublié le mot de passe. Donc en fouillant j’ai du ré-initialiser le mot de passe root de MySql (différent de root système) et ré-installer PhpMyAdmin complètement, y compris re-sécurisation du fichier de configuration, et lien symbolique depuis Apache2.

Sources APT : bon il faut nettoyer les sources APT et les reconfigurer pour n’avoir que du Squeeze après la migration, avec une petite update/upgrade au passage pour avoir tous les paquets au dernier niveau.

Debian migration disque à disque

Impossible de trouver une documentation complète sur Internet, alors voilà ma contribution. Comment migrer une machine Debian d’un disque existant, (interne ide) vers un disque externe (usb), en copiant toutes les données, puis en installer tout ce quiva bien pour le boot, puis inverser les disques.

Article mis à jour en Décembre 2012, pour prendre en compte le passage à Grub2.

J’ai du faire cette migration pour cause de secteurs défectueux sur un disque IBM du linutop, puis par la suite migration vers SSD sur Linutop4

– monter le nouveau disque en USB, le brancher, il arrive sur /dev/sdb
– le disque actuel est sur /dev/sda (vérifier tout cela avec la commande fdisk -l qui list les interfaces et disques présents sur la machine)

– utiliser fdisk -l pour visualiser la configuration des partitions du disque d’origine.

Le mieux c’est d’utiliser gparted pour créer la structure de disque propre, c’est à dire une primaire (1), avec le flag en « boot », qui ne commence pas sur le secteur 1, mais un peu plus loin, sinon Grub2 ne pourra pas s’installer sur la MBR. Puis à la fin du disque je fais une partition étendue avec dedans une partition swap.

on obtient :

 Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *         113        7037    55613440   83  Linux
/dev/sda2            7037        7298     2098072    5  Extended
/dev/sda5            7037        7298     2097048   83  Linux

formater la partition principale (ext3)
mkfs.ext3 /dev/sdb1

formater la partition de swap
mkswap /dev/sdb5

creer et monter un point d’entrée pour le nouveau disque
mkdir /nouveau-dd
mount /dev/sdb1 /nouveau-dd/

Recréer les répertoires spéciaux sur le nouveau disque
mkdir /nouveau-dd/dev
mkdir /nouveau-dd/dev/pts
mkdir /nouveau-dd/proc

Mettre tous les services à l’arrêt (mysql, proftpd, samba, apache2 etc etc..)
Copier les fichiers depuis la racine, en ne copiant que le filesystem en cours (donc ne copie pas /nouveau-dd)
cp -ax / /nouveau-dd

suivre l’état de la copie avec une autre session terminal, via df et watch qui affiche la chose toutes les 30 secs.
watch -n 30 df -h

Attention c’est assez lent… il faut compter plusieurs heures en fonction du matériel. Sinon on peut « déplacer » par avance les gros dossiers users et lancer la copie système après pour éviter un arrêt trop long.

ok maintenant faire une installation de MBR et Grub sur le nouveau disque
on éteint, on échange les disques, et c’est parti !

Cette partie est un peu plus complexe avec Grub2, car il y a des UUID de partitions à purger, sinon on ne pourra pas booter.

grub-install –root-directory=/nouveau-dd /dev/sdb

Ensuite sur le nouveau disque il faut editer le fichier de config de Grub2, qui se trouve dans /boot/grub/grub.cfg et rechercher

root=UUID=ab123456…

par root=/dev/sda1

On échange les disques, on reboot. Le premier redémarrage devrait se faire, mais tout de suite on lance un update-grub pour mettre à jour la config, et récréer les UUID correctement.

Bon courage !!