Rsync Server Possibility Questions...
I want to back up project files from home as I work on them.
My friend wants to back up his project files as well.
My sister wants to back up her data.
I'm going to name myself Bob, my sister Alice, and my friend Charlie. Just for laughs.
So I, Bob, have a Linode, and I know that Charlie, Alice, and I won't use up the whole disc or the whole bandwidth on backups (the original data sets for each aren't that big. We just want 'em "off site.")
I found some articles on setting up Rsync to use SSH for secure data transmission. That's nice.
What I'm wondering is how I can set it up so that Alice and Charlie only have about 200 MB of backup space… a backup disc quota so to speak. If they want more room they'll have to pay me. Assume I don't trust Alice and Charlie to police themselves. (You know how it is… Alice is always trying to read my encrypted mail and Charlie keeps trying to break into my secure transmissions… but we're all friends.)
Also, I don't want Alice to be able to download Charlie's data set, nor do I want Charlie "unbackingup" my data set to his computer over Rsync. How can I set this up?
Finally, let's assume that Alice and Charlie don't really trust my Linode, security wise. Anyone know how they can "encrypt" their Rsync storage? I once saw a program named "esync" which was supposed to be able to encrypt the backup set so that nobody else could get the backup set (this actually would solve the previous problem… even if Charlie got Alice's data set he couldn't make heads or tails of it.)
I'll keep looking for myself, but pointers would be appreciated!
2 Replies
As for securing the storage from each other, it's pretty much impossible to do that from anyone with superuser privileges unless all the encryption/decryption is done elsewhere, i.e. on the client. That makes it hard to minimize bandwidth for an rsync-like process, though.
One approach that isn't perfect but only has a window of vulnerability is to have each person create an encrypted file system. They mount their encrypted volume (entering the volume key), perform rsync, and dismount. Even superusers can only read unencrypted data while the volume is mounted (assuming they don't sniff the key). I believe the modern way to do this is with FUSE on 2.6 kernels. Encryption on a 2.4 kernel can be done with cfsd, which uses an NFS loopback mount.
If you Google for "untrusted storage" there are people doing what you're looking for, but I don't know of any mature, multiplatform, and free implementations.
Roy
They could create a dm (device manager) loopback encrypted file system at home. Then use rsync to sync that encrypted filesystem to your backup space.
Rsync is nice in that it just transfers the bits that have changed. Thus running an encrypted volume at home and syncing that shouldn't be bandwidth intensive. It does mean, however, that any bandwidth gains you were looking for through the use of the –compress option with rsync will be lost (as encrypted data is as random as possible and you can't compress randomness).
As previously mentioned it is impossible to hide unencrypted data from the superuser (or to the linode staff for that matter).