-
|
This is the main reason I would like to start using BBS but upon further digging around this seems limited. The docs of BBS, at least as far as I have found the right one: https://github.com/marcpope/borgbackupserver/wiki/Remote-Storage only touches upon this topic in a minor sentence under "Best practices":
This feels a bit wrong, advertising a feature that then gets dealt with in one sentence. I read up some more and found out that this feature is also available on a Hetzner Storage box: https://docs.hetzner.com/storage/storage-box/access/access-ssh-rsync-borg/ They link to borg's docs, where I found this info, meaning it can even be enabled per repository or per used ssh key?
BBS's docs for setting up a Hetzner Storage box: https://www.borgbackupserver.com/hetzner/ only shows a drop-down to select the borg version on Hetzner's side but since its a drop-down, it looks like one cannot pass any parameters?
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
|
Just to add more info. I found this page: https://www.borgbackupserver.com/security/ where I found this quote:
Does this mean, the append-only feature can be enabled even for remote repositories i.e. Hetzner Storage box? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for pushing on this @ovizii — you're right that the docs undersell how this works, and the Hetzner setup screen doesn't (yet) surface the knob you're asking about. Let me lay it all out. How append-only works in BBSBorg's append-only mode is a server-side restriction that lets clients write new archives but forbids them from deleting or modifying existing ones. Even a compromised agent — ransomware, hostile admin, stolen SSH key — can add backups, but it cannot erase the ones already on disk. Prune and compact still work; they run from the BBS server itself, which holds a separately-privileged key path. Direct backups (client → BBS server): enforced automatically. Every agent SSH key added to a BBS-managed tenant is installed in Two things are happening there:
So every borg operation the agent runs against the BBS server is sandboxed to that tenant's paths and forbidden from destructive operations. The agent literally cannot issue a delete or a prune over the wire, regardless of what its borg client tries to send. That is the protection advertised on the security page. Offsite repos (BBS → rsync.net / Hetzner / BorgBase / etc.)This is where your reading of the borg docs is exactly right, and it's also where BBS stops being able to help you automatically. When a backup targets a third-party SSH repo, BBS orchestrates the transfer but does not own the remote's The good news is every major offsite borg provider supports this directly, exactly the way the borg docs you quoted describe it:
Once you've done that, the offsite copy gets the same ransomware protection as the on-box copy. If you skip it, a compromised agent can reach into the offsite repo and delete archives the same way a legitimate prune does — the offsite repo is only as tamper-resistant as whatever restriction the provider's key enforces. What I'll fix on our side
Tracking those as documentation follow-ups — thanks for flagging that the current docs punt on what is genuinely one of BBS's main selling points. |
Beta Was this translation helpful? Give feedback.

Thanks for pushing on this @ovizii — you're right that the docs undersell how this works, and the Hetzner setup screen doesn't (yet) surface the knob you're asking about. Let me lay it all out.
How append-only works in BBS
Borg's append-only mode is a server-side restriction that lets clients write new archives but forbids them from deleting or modifying existing ones. Even a compromised agent — ransomware, hostile admin, stolen SSH key — can add backups, but it cannot erase the ones already on disk. Prune and compact still work; they run from the BBS server itself, which holds a separately-privileged key path.
Direct backups (client → BBS server): enforced automatically.
Every agent SSH …