Spring naar de inhoud

Backuppc

    Inhoudstabel

    Setup

    **Linux Clients** Om ervoor te zorgen dat backuppc de backups kan nemen vanop afstand, moet je ervoor zorgen dat backuppc kan inloggen op de computers met een ssh-sessie. En dit allemaal zonder vragen te stellen zoals rsa-keys, wachtwoorden… Zorg ervoor dat je elke stap uitvoert, en met de juiste gebruiker!

    1. Als gebruiker backuppc, op de backupserver:
      ssh-keygen -t rsa cp ~/.ssh/id_rsa.pub ~/.ssh/backuppc_id_rsa.pub
      scp ~/.ssh/backuppc_id_rsa.pub USER@CLIENT:/home/USER/backuppc_id_rsa.pub
    2. Als gebruiker root, op de client:
      ssh USER@CLIENT
      sudo su – touch ~/.ssh/authorized_keys2
      cat /home/USER/backuppc_id_rsa.pub >> ~/.ssh/authorized_keys2
    3. Wijzig zo dat root kan inloggen (enkel als ssh lokaal te benaderen is aub) op de client:
      vim /etc/ssh/sshd_config
      PermitRootLogin yes
      service sshd restart
    4. Op de backuppc server, login als backuppc en kopieer de key, en controleer eventjes:
      su backuppc
      ssh-copy-id root@tinkelbel
      ssh root@tinkelbel whoami
    5. Test de connectie als gebruiker backuppc, op de backupserver. Let erop wat je gebruikt als CLIENT hostname. Dit moet overeenkomen met de naam die je gebruikt in backuppc, dus best niet het IP-adres. Eventueel de naam manueel in >/etc/hosts invoeren.
      ssh -l root CLIENT whoami
    6. Voor een linux mint client te backuppen vanaf een centos7, kon ik blijkbaar niet de pubkey kopieren. Om dit te laten werken, moet je de /etc/ssh/sshd.conf upgraden met:
      PubkeyAcceptedKeyTypes=+ssh-dss

    Specifieke scripten

    Voorbeeldje van lokale backup met rsync. Hier worden enkele folders niet gebackupped, reden is dat ze anders toch maar falen.
    more /etc/backuppc/corius.pl

    $Conf{XferMethod} = 'rsync'; 
    $Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';
    $Conf{RsyncShareName} = '/'; 
    $Conf{BackupFilesExclude} = ['/proc', '/mnt', '/var/lib/backuppc', '/var/cache','/tmp'];

    Voorbeeldje van bij klant, waar de lokale server met ’tar’ wordt gebackupped ipv rsync.
    more /etc/backuppc/servertje.pl

    $Conf{XferMethod} = 'tar';
    $Conf{TarShareName} = ['/'];
    $Conf{TarClientCmd} = '/usr/bin/sudo $tarPath -c -v -f - -C $shareName --totals --ignore-failed-read'; 
    $Conf{TarFullArgs} = '$fileList'; $Conf{TarIncrArgs} = '--newer=$incrDate $fileList';
    $Conf{BackupFilesExclude} = ['/proc', '/mnt', '/var/lib/backuppc', '/var/cache','/tmp','/home/backups', '/sys', '/run'];

    Remote backups plaatsen (NAS)

    Met dit scriptje maak ik een remote backup (bv op NAS) van de data op de backupserver.
    /scripts/backup_remote.sh

    #!/bin/bash 
    CURRENT_DATE=$(date '+%d/%m/%Y-%H:%M:%S') 
    MOUNT_DISK="mount -t smbfs -o username=***,password=*** //NAS/backups /mnt/storagirus"
    BACKUP_REMOTE="du /mnt/storagirus/public/ -hs" 
    SEND_MAIL="mail ben@oniria.be < /var/log/backup.log -s 'Backup failed, check server!!!' -F corius@oniria.be" 
       if grep "/mnt/storagirus" "/proc/mounts" then rsync -thrv --delete --exclude-from '/scripts/backup_remote_exclude.txt' /mnt/nfs/ /mnt/storagirus/nfs 
       echo "$CURRENT_DATE *** BACKUP *** Backup was OK *** $($BACKUP_SIZE)" >> /var/log/backup.log else #Storagirus is not mounted, let's try to mount it... 
       $MOUNT_DISK 
          if grep "/mnt/storagirus" "/proc/mounts" then rsync -thrv --delete --exclude-from '/scripts/backup_remote_exclude.txt' /mnt/nfs/ /mnt/storagirus/nfs echo "$CURRENT_DATE *** BACKUP *** Backup was OK, after remount *** $($BACKUP_SIZE)" >> /var/log/backup.log else #Let's stop trying, I'll warn my administrator... 
          $SEND_MAIL echo "$CURRENT_DATE *** BACKUP *** Backup was KO, nothing done" >> /var/log/backup.log 
          fi 
       fi

    more /scripts/backup_remote_exclude.txt

    public/data/videos public/data/audio 
    backup/ user_3/data/documents/Backups/ 
    user_3/data/documents/Software/ 
    public/data/zoneminder/

    Geen grafieken

    I had the same issue and decided to investigate. My error log looked like this:

    ERROR: opening '/var/lib/backuppc/log/pool.rrd': Permission denied: /usr/share/backuppc/cgi-bin/index.cgi, referer: http://servername/backuppc/index.cgi 

    I found that I had to give execute permissions to the folders above and read permissions to “everyone” on the pool.rrd then the graph appeared. It would seem that the CGI script is executing as “everyone” vs “backuppc user” Here are the minimal permission changes I made to get things to work.

    Changed BackupPC directory permission from: 2750 to 2751 --> drwxr-s--x backuppc backuppc 
    Changed BackupPC/log directory permission from: 750 to 751 --> drwxr-x--x backuppc backuppc log 
    Changed BackupPC/log/pool.rrd directory permission from: 640 to 754 --> -rwxr-xr-- backuppc backuppc pool.rrd 

    My server is blocked from public access, so I was comfortable making this change. I would be very happy to hear anyone’s comments regarding what type of security issue this may be -and if there is another way to better way to solve this.

    Clients

    Windows

    Je kan backups nemen via samba (windows protocol), maar beter neem je backups via het protocol rsync. Daarvoor moet je wel op de windows machine een rsyncserver daemon (service) installeren. Volg hiervoor volgende stappen

    1. Download rsyncd via sourceforge.net/projects/backuppc/files/cygwin-rsyncd/
      Dit programma draait na installatie als service, en bevindt zich standaard in de folder c:/rsyncd folder.
    2. Wijzig het bestandje rsyncd.secrets met jouw gebruikersnaam (uit backuppc) die je gebruikt voor de backups. Let er wel op dat deze gebruiker toegang heeft tot de windows bestanden (bv een administrator). Volgende regel is voldoende in dit bestandje:
      beheerder:MijnWachtwoord
    3. Wijzig het bestandje rsyncd.conf met hetgeen jij wenst te backuppen. Let er ook op dat je de toegelaten hosten wijzigt naar jouw backupserver. bv:
    >use chroot = false
    max connections = 2
    lock file = c:/rsyncd/rsyncd.lock
    >
    >[cDrive]
    path = /cygdrive/c/
    comment = Entire C: Drive
    auth users = beheerder
    secrets file = c:/rsyncd/rsyncd.secrets
    hosts allow = 192.168.2.5
    strict modes = false
    read only = true
    list = false
    >
    >[qDrive]
    path = /cygdrive/Q/
    comment = Entire Q: Drive
    auth users = beheerder
    secrets file = c:/rsyncd/rsyncd.secrets
    hosts allow = 192.168.2.5
    strict modes = false
    read only = true
    list = false

    Volgende settings zijn van toepassing in backuppc
    Volledige backup

    
    $Conf{BackupFilesExclude} = {
      '*' => [
    '/RECYCLER', 
    '/WINNT', 
    '/temp', 
    '/WUTemp', 
    '/WINDOWS/*', 
    '/Windows/*', 
    '/$Recycle.Bin/*',
    '/System Volume Information',
    '/Users/*/AppData/Local/Microsoft/Windows/Temporary Internet Files/*',
    '/Users/*/AppData/Local/Microsoft/Internet Explorer/Recovery/*',
    '/Users/*/AppData/Local/Mozilla/Firefox/*/*/Cache/*',
    '/Users/*/AppData/LocalLow/Microsoft/CryptnetUrlCache/*',
    '/Users/*/AppData/Local/Microsoft/BingBar/*',
    '/Users/*/AppData/Local/Temp/*',
    '/Users/*/AppData/Local/Microsoft/Media Player/*',
    '/Documents and Settings/*/Local Settings/Application Data/Mozilla/Firefox/Profiles/*/Cache/',
    '/Documents and Settings/*/Local Settings/Application Data/Microsoft/Internet Explorer/Recovery/Active/',
    '/Documents and Settings/*/Application Data/*/Log/',
    '/Documents and Settings/*/Local Settings/Temporary Internet Files/*', 
    '/Documents and Settings/*/Local Settings/History/*', 
    '/Documents and Settings/*/Local Settings/Temp/*', 
    '/Documents and Settings/*/Cookies/', 
    '/Documents and Settings/*/Favorites/', 
    '/Documents and Settings/*/IETldCache/', 
    '/Documents and Settings/*/IECompatCache/', 
    '/Documents and Settings/*/NetHood/', 
    '/Documents and Settings/*/PrivacIE/', 
    '/Documents and Settings/*/PrintHood/', 
    '/Documents and Settings/*/WINDOWS/', 
    '/Documents and Settings/*/Recent/', 
    '/Documents and Settings/*/Webex/', 
    '/Documents and Settings/*/temp/', 
    '/pagefile.sys', 
    '/hiberfil.sys',
    '*/NTUSER.DAT',
    '*/NTUSER.DAT.LOG',
    '*/ntuser.dat.LOG',
    '*/UsrClass.dat',
    '*/UsrClass.dat.LOG',
      ]
    }

    Data backup

    
    >$Conf{BackupFilesExclude} = {
      '*' => [
    '*/AppData/Local/Microsoft/Windows/Temporary Internet Files/*',
    '*/AppData/Local/Microsoft/Internet Explorer/Recovery/*',
    '*/AppData/Local/Mozilla/Firefox/*/*/Cache/*',
    '*/AppData/LocalLow/Microsoft/CryptnetUrlCache/*',
    '*/AppData/Local/Microsoft/BingBar/*',
    '*/AppData/Local/Temp/*',
    '*/AppData/Local/Microsoft/Media Player/*',
    '*Application Data/Mozilla/Firefox/Profiles/*/Cache/',
    '*/Application Data/Microsoft/Internet Explorer/Recovery/Active/',
    '*/Application Data/*/Log/',
    '*/Local Settings/Temporary Internet Files/*', 
    '*/Local Settings/History/*', 
    '*/Local Settings/Temp/*', 
    '*/Cookies/', 
    '*/IETldCache/', 
    '*/IECompatCache/', 
    '*/NetHood/', 
    '*/PrivacIE/', 
    '*/PrintHood/', 
    '*/WINDOWS/', 
    '*/Recent/', 
    '*/Webex/', 
    '*/temp/', 
      ]
    }

    Restore

    Soms wil je natuurlijk wel es een backup terugzetten onder backuppc. Dit is vrij eenvoudig, op voorwaarde natuurlijk dat je weet waar je data zich bevond.

    1. Open backuppc (http://……)
    2. Selecteer de juiste machine in het linkermenuu (dropdown)
    3. Selecteer de juist backup versie uit de verschillende backups.
      Hier kan je oudere backups terugzetten dan bv die van gisteren. Handig als je een paar dagen geleden een foutje gemaakt hebt.
    4. ‘Browse’ naar de juiste folder bv /home/ben
    5. Selecteer de bestanden die je terug wenst te zetten
    6. Klik op ‘restore selected files’
    7. Vervolgens kan je kiezen waar je de backup wenst terug te zetten.
    8. Dit kan bv zijn op de oorspronkelijke plaats (let op dat de huidige bestanden onherroepelijk worden overschreven)
    9. Je kan ook kiezen om de gekozen bestand(en) te downloaden als zip-bestand (of tar).
      Handig als je zaken wenst te vergelijken.

    Control

    Hoe kan je op een snelle manier controleren of de backups genomen werden?

    1. Login op je backupserver (http://……)
    2. Selecteer een machine (server, werkstation…) in het linkermenu.
      Dropdown menuutje
    3. Controleer in de kolom ‘Backup Summary’ de laatste entry = het hoogste nummertje
    4. Check de datum hiernaast
      Dit zou vrij recent moeten zijn.
      Dit is wanneer een laatste backup werd genomen.

    Een reactie achterlaten?