Backuppc
De OpenWikiBSD.
Install
Debian
apt-get install backuppc
OpenBSD
pkg_add backuppc
FreeBSD
BackupPC
Mode packages
pkg_add -r backuppc rsync samba
echo 'backuppc_enable="YES"' >> /etc/rc.conf
chown backuppc:www /usr/local/etc/backuppc/config.pl
mkdir /var/log/BackupPC
chown -R backuppc:backuppc /var/log/BackupPC
mkdir -p /var/db/BackupPC/{pc,cpool}
chown -R backuppc:backuppc /var/db/BackupPC
mkdir /usr/local/etc/backuppc/pc
chown -R backuppc:backuppc /usr/local/etc/backuppc/pc/
cpan
install Compress::Zlib
install Archive::Zip
install File::RsyncP
quit
perl config.pl
Mode ports
cd /usr/ports/sysutils/backuppc make install clean cd /usr/ports/net/rsync make install clean echo 'backuppc_enable="YES"' >> /etc/rc.conf
echo "host dhcp user moreUsers # <--- do not edit this line ">> /usr/local/etc/backuppc/hosts
Apache
Modifier /usr/local/etc/apache2/httpd.conf
User backuppc Group backuppc
Partie SSL :
mkdir /usr/local/etc/apache22/ssl.crt mkdir /usr/local/etc/apache22/ssl.key chmod 0700 /usr/local/etc/apache22/ssl.key chmod 0700 /usr/local/etc/apache22/ssl.crt cd /root openssl genrsa -des3 -out server.key 2048 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in /root/server.csr -signkey /root/server.key -out /root/server.crt cp /root/server.key /usr/local/etc/apache22/ssl.key/ cp /root/server.crt /usr/local/etc/apache22/ssl.crt/ chmod 0400 /usr/local/etc/apache22/ssl.key/server.key chmod 0400 /usr/local/etc/apache22/ssl.crt/server.crt
Décommenter la ligne Include etc/apache22/extra/httpd-ssl.conf dans /usr/local/etc/apache22/httpd.conf sur zfsguru ou /etc/apache22/httpd.conf
Ajouter
SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt" SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key" à /apache22/extra/httpd-ssl.conf
ou /usr/local/etc/apache22/extra/httpd-ssl.conf pour zfsguru
Serveur
- Le fichier de configuration est config.pl
- Le /var/lib/backuppc qui contient les sauvegardes peut migrer ailleurs, sur une partoche dédiée (chercher TopDir).
Sous FreeBSD : $Conf{TopDir} = '/var/db/BackupPC';
En fait, il est déconseillé de faire cela; monter le FS cible sous TopDIr est préférable :
mkdir -p /var/db/BackupPC
Puis montez le FS : zroot/backup on /var/db/BackupPC :
/usr/local/etc/rc.d/backuppc stop mv /var/db/BackupPC/* /zroot/backuppc/ rmdir /var/db/BackupPC/ ln -s /zroot/backuppc/ /var/db/BackupPC /usr/local/etc/rc.d/backuppc start
echo "Alias /BackupPC/images /usr/local/www/backuppc ScriptAlias /BackupPC /usr/local/www/cgi-bin/BackupPC_Admin " >> /usr/local/etc/apache22/Includes/backuppc.conf
Dans /usr/local/etc/apache22/httpd.conf, modifiez la ligne correspondant aux autorisations :
<Directory /> AllowOverride None Order deny,allow Deny from all </Directory>
devient
<Directory /> AllowOverride None Order deny,allow ##Deny from all Allow from all </Directory>
Enfin, toujours dans httpd.conf, modifiez le docuemtn root :
###DocumentRoot "/usr/local/www/apache22/data" DocumentRoot "/usr/local/www
Le fichier spécifique à la machine est :
- FreeBSD : /usr/local/etc/backuppc/pc/NOMDEMACHINE.pl
- Debian : root@fermi:/var/lib/backuppc/pc/NOMDEMACHINE/config.pl
- L'interfesse ouebe (http://SRV/backupppc) a un mdp apache que vous n'avez surement pas noté au départ..
htpasswd /etc/backuppc/htpasswd backuppc
- Compression : $Conf{ArchiveComp} = 'gzip';
Vous pouvez changer l'algorithme et le niveau de compression.
Comme ZFS inclus ces fonctions au niveau filesystem, j'ai choisi de ne pas compresser deux fois, mais de tout laisser faire à ZFS.
$Conf{ArchiveComp} = 'none';
- Interfesse en francais
$Conf{Language} = 'fr';
- sauvegarde sur un lien WAN avec mauvais débit
$Conf{PingMaxMsec} = '60';
- Email admin :
$Conf{EMailUserDestDomain} = 'EMAIL@MAIL';
Sécurisation des échanges : Rsync over SSH
- Sur le serveur backuppc
- Debian like
su backuppc ssh-keygen -t rsa -b 2048
- FreeBSD
su -c backuppc -m backuppc ssh-keygen -t rsa -b 2048
$Conf{RsyncClientCmd} = '$sshPath -q -x -l USER_DISTANT $host $rsyncPath $argList+';
- Sur le client à sauvegarder
su root ssh-keygen -t rsa
Copier, par un biais sécurisé, le /var/lib/backuppc/.ssh/id_rsa.pub du serveur backuppc vers le client de backup dans /root/.ssh/authorized_keys
sudo chown root.root /root/.ssh/authorized_keys
- Vérifier que la cx se fait bien :
su backuppc ssh -v root@client
- Sur l'interface ouebe de backuppc :
- Modifier la config
- Xfer
- Méthode rsync
- Sauvegarder
Debug
Either these are different file systems, or this file
TRES important, je me suis fait avoir : backuppc refuse de sauvegarder sur plusieurs systèmes de fichiers différents.
Permissions
l'ensemble des sous-répertoires doit avoir backuppc comme proprio et comme groupe proprio
chown -R backupc.bacckuppc /var/lib/backuppc
(auth failed on module XXX)
Plusieurs possibilités :
- Si vous sauvegardez avec rsyncd et avec l'utilisateur root.root (Dangereux mais utile pour ne rien rater), alors /etc/rsyncd.* doivent avoir comme
proprio root.root (Oui, oui, même sous Ubuntu ) :
sudo chown root.root /etc/rsyncd.*
- Il faut avoir un user autorisé (auth users = XXXXX), avec XXXX défini dans le secret.
(auth required, but service XXX is open/insecure)
- Il faut avoir un user autorisé (auth users = XXXXX), avec XXXX défini dans le secret.
'(unexpected response )
- Vérifiez que rsync est installé et que le lien dans inetd.conf est bon pour le binaire..
- Vérifiez que /etc/rsyncd.{conf,secret} sont installés.
- Vérifiez que root.root sont bien les proprios des rsyncd.*
- Attention, le fichier de config config.pl (global ou particulier) doit avoir backuppc.www-data comme proprio
'(chgdir failed)
- Est-ce que tous les répertoires sauvegardés existent ???
(inet connect: Connection refused)
- Il manque une ligne dans /etc/inetd.conf
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
- OU bien vous n'avez pas relancé le démon :
kill -HUP pid
unable to read 4 bytes
- Mauvais droits ou souci de clés SSH entre le client et le serveur. Pour valider, tenter la connexion depuis le serveur backuppc :
su backuppc ssh -v root@client
Si vous avez un souci, inutile d'aller plus loin; c'est SSH pas rsync ou backuppc le pb.
No files dumped for share X$
- Plutôt ardu à résoudre celui-là ! Lors de la sauvegarde d'une machine Windows.
En fait il faut modifier directement le config.pl original, car cela impactera toutes les sauvegardes de windowseries :
Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName'
. ' $I_option -U $userName -E -N -d 1'
. ' -c tarmode\\ full -Tc$X_option - $fileList';
Devient
Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName'
. ' $I_option -U $userName -E -d 1'
. ' -c tarmode\\ full -Tc$X_option - $fileList';
Il faut enlever le -N
session setup failed: NT_STATUS_LOGON_FAILURE
Pour tester
/usr/share/backuppc/bin/BackupPC_dump -v -f Client
Client
Linux
/etc/rsyncd.conf
uid = root
gid = root
use chroot = no
syslog facility = local5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secret
hosts allow = @IP du srv backup
auth users = UserBackup
[etc]
path = /etc
comment = Conf
read only = yes
[home]
path = /home/phil
comment = Dossier perso
read only = yes
[script]
path = /usr/script/
comment = Les scripts
read only = yes
/etc/rsyncd.secret
UserBackup:MdpUser
chmod 700 /etc/rsyncd.secret chown root.root /etc/rsyncd.secret
inetd.conf
apt-get install openbsd-inetd rsync
echo " rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon " >> /etc/inetd.conf
OpenBSD
/etc/rsyncd.conf
uid = root
gid = wheel
use chroot = no
syslog facility = local5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secret
hosts allow = @IP du srv backup
auth users = UserBackup
[etc]
path = /etc
comment = Conf
read only = yes
[home]
path = /home/phil
comment = Dossier perso
read only = yes
[script]
path = /usr/script/
comment = Les scripts
read only = yes
/etc/rsyncd.secret
UserBackup:MdpUser
chmod 700 /etc/rsyncd.secret chown root.wheel /etc/rsyncd.secret
inetd.conf
pkg_add rsync
echo " rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon " >> /etc/inetd.conf
Solaris 11
Tiré D'ici.
/etc/rsyncd.conf
uid = root
gid = root
use chroot = no
syslog facility = local5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secret
hosts allow = @IP du srv backup
auth users = UserBackup
[etc]
path = /etc
comment = Conf
read only = yes
[home]
path = /export/home
comment = Dossier perso
read only = yes
[script]
path = /usr/script/
comment = Les scripts
read only = yes
/etc/rsyncd.secret
UserBackup:MdpUser
chmod 700 /etc/rsyncd.secret chown root /etc/rsyncd.secret
/etc/services
echo "rsync 873/tcp" >> /etc/services
inetd.conf
echo "rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon" >> /etc/inetd.conf
svcadm restart svc:/network/inetd
inetconv rsync -> /lib/svc/manifest/network/rsync-tcp.xml Importing rsync-tcp.xml ...svccfg: Restarting svc:/system/manifest-import The manifest being imported is from a standard location and should be imported with the command : svcadm restart svc:/system/manifest-import Done
Windows
Méthode classique
- Choisir méthode smb
- Créer un user AD ayant le droit read-only sur chaque partage (clic droit/partage et sécurité/Ajouter lecture+parcours des répertoires)
Plutôt compliqué à utiliser contrairement aux apparences; toujours des erreurs en cascade.
Méthode Unixienne : CygWin
- Sur le serveur Windows, télécharger l'installeur Cygwin
- Choisir les paquets Admin,Archive,Base,Doc,Editors,Net
- Lancer l'installation qui va télécharger le nécessaire
ssh-host-config -y cygrunsrv -S sshd

