Attention, dans la documentation BackupPC le nom des répertoires est souvent avec des majuscules par défaut. Il est préférable de n'utiliser que des minuscules. (Noter qu'on utilise le répertoire /srv/ conformément aux recommandations FHS qui font partie du Linux Standard Base.)
Répertoire d'installation : /usr/local/backuppc
données : /var/backuppc/
cgi-bin : /srv/www/cgi-bin/backuppc
Images pour le web : /srv/www/html/backuppc et URL pour les images : /backuppc
Il est possible de faire tourner BackupPC en service. (Cette opération doit être faite après l'installation, après le "perl configure.pl".)
Pour avoir des informations à jours, suivre les instructions de /usr/src/BackupPC-2.0.2/init.d/README.
Copier le fichier /usr/src/BackupPC-2.0.2/init.d/suse-backuppc dans /etc/ini.d/backuppc. Le rendre executable (chmod 755) et lancer les commandes suivantes :
chkconfig backuppc 345 # démarre aux levels 3, 4 et 5. chkconfig --list backuppc # pour vérifier
Il est important de noter que Apache2 doit tourner avec un utilisateur particulier. Cette configuration concerne tout Apache et ne peut être changé par site. Il existe deux solutions : changer directement les fichiers de configurations ou faire une copie des fichiers de configurations différents pour garder la possibilité de lancer une autre instance "classique" d'Apache2. J'ai choisi la seconde solution.
BackupPC expose deux méthodes, on utilise la méthode mod_perl réputée plus performante (et non la "standard".) Activer l'interface web n'est pas si simple, car il faut qu'Apache tourne sous l'utilisateur backuppc, que le client soit authentifié et utilise mod_perl.
On va donc recopier /etc/init.d/apache2 en apache2-backuppc et le modifier pour utiliser /etc/apache2/httpd-backuppc.conf ainsi que pour le distinguer du service Apache2. Listing des fichiers : En annexe.
De plus il faut changer les droits du cgi-bin : pour enlever le setuid (inutile dans notre configuration) : chmod u-s __CGIDIR__/BackupPC_Admin.
Pour l'authentification LDAP, le module /usr/lib/apache2/mod_auth_ldap.so est fourni avec Apache (au moins pour Suse et Mandrake.) Mais il n'est pas actif par défaut, surement parce qu'il est marqué comme expérimental. Il suffit de rajouter dans /etc/sysconfig/apache2 les entrées "ldap auth_ldap" à la variable APACHE_MODULES (il ne faut pas mettre le "mod_" du fichier.) Lors du démarrage d'apache2 ces modules sont ajoutés au fichier /etc/apache2/sysconfig.d/loadmodule.conf qui est inclu dans httpd.conf.
Pour lancer le serveur il suffit d'utiliser /etc/init.d/apache2-backuppc start.
Pour mettre le nouveau service http en service chkconfig apache2-backuppc 345. (Il ne faut pas oublier de modifier la partie "INIT_INFO" du script pour le distinguer du service apache2 et httpd2.)
On accède au site par l'url http://123.124.125.126/cgi-bin/backuppc/BackupPC_Admin.
Ssh ne doit produire aucune sortie, il doit être completement transparent pour rsync, d'où l'option -q. De plus, il faut se connecter une premiere fois pour ajouter le serveur à la liste des hotes connus, ou le faire manuellement. On peut tester le bon fonctionnement de ssh en faisant : ssh -q -l root 123.124.125.126 whoami > test.txt : text.txt doit contenir "root" et seulement "root".
Attention, la documentation de BackupPC montre l'utilisation de clée avec une phrase vide (option -N ''). Cela permet d'utiliser les clées sans interventions humaine, mais ce n'est pas recommandé pour la sécurité. Il est préferable d'utiliser des agents SSH., comme indiqué dans la doc d'administration distante.
On crée pour l'utilisateur backuppc une clée RSA avec la phrase "secrete" : "Backuppc, ça marche 24/24 !"
On utilise à la place de ssh un script ssh-auto qui charge ssh-agent avant de lancer ssh. On indique à BackupPC d'utiliser ce script à la place de ssh dans le parametre SshPath de config.pl. Attention ce script doit avoir des droits d'executions pour l'utilisateur backuppc.
/home/backuppc/ssh-auto :
#!/bin/sh # BV 03/12/2003 # Appelle ssh apres avoir chargé l'agent ssh. # Est appelé par BackupPC à la place de ssh. . /home/backuppc/.ssh-agent-info /usr/bin/ssh -q "$@"