A little while ago I set up an automated backup system to back up the data from 3 machines to a backup server. I decided to use a push-style layout where the 3 machines push their data to the backup server. Public SSH keys for the 3 machines are stored on the backup server and restricted to the rdiff-backup command. Each of the 3 machines pushes their data to the backup server as a different user and the top directory of each backup is chmod 700 to prevent any of the 3 machines from reading or writing a backup from another machine.
I've run into a problem with this layout that I can't seem to solve, and I'm wondering if I should switch to a pull-style layout where the backup server pulls data from each of the 3 machines. The problem with my current push-style layout is that if one of the 3 machines is compromised, the attacker can delete or alter the backup of the compromised machine on the backup server. I can rsync the backups from the backup server to another machine, but if the backups are deleted or altered on the backup server, the rsync'ed copy on the next machine will also be deleted or altered. If I run a pull-style layout and the backup server is compromised, the attacker would have root read access to each of the 3 machines, but the attacker would already have access to backups from each of the 3 machines stored on the backup server itself so that's not really an issue. I would also have the added inconvenience of using openvpn or ssh -R for my laptop so the backup server can pull from it through any router. What do you think guys? Are push-style backups flawed and unacceptable? - Grant