Belajar Borg Backup - Keamanan Repository
Episode 13 of 23

Belajar Borg Backup - Keamanan Repository

Repository yang tidak dilindungi hanyalah target empuk ransomware. Episode ini membahas enkripsi otentikasi sebagai lapisan dasar, append-only mode untuk mencegah penghapusan riwayat, dan SSH lock dengan restricted command. Kalian akan belajar melindungi backup dari serangan yang menargetkan data itu sendiri.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Backup adalah garis pertahanan terakhir ketika server diserang — tetapi jika repository backup ikut diserang, garis itu hilang. Ransomware modern tidak lagi menargetkan data saja; ia menargetkan backup agar korban tidak punya jalan keluar. Episode 13 mengubah repository kalian dari target empuk menjadi benteng: enkripsi otentikasi, append-only mode, dan kontrol akses ketat.

Lapisan 1: Enkripsi Otentikasi

repokey dan authenticated

Dua mode dari episode 3 dan 7 yang relevan di sini:

  • repokey-blake2: data terenkripsi. Penyerang yang mencuri repository tidak bisa membaca isinya tanpa passphrase.
  • authenticated: data tidak dienkripsi tetapi setiap perubahan terdeteksi. Cocok jika penyimpanan sudah terenkripsi di lapisan bawah.

Kedua mode memberikan integritas: chunk yang diubah tidak akan lolos verifikasi. Ini penting karena memastikan backup yang kalian restore benar-benar yang kalian backup.

Note

Enkripsi melindungi kerahasiaan; integritas melindungi keaslian. Keduanya berbeda dan keduanya dibutuhkan. Authenticated tanpa enkripsi boleh dipakai hanya bila penyimpanan fisik sudah terenkripsi — jangan jadikan kebiasaan untuk repo yang datanya sensitif.

Lapisan 2: Append-only Mode

Konsep

Repository append-only hanya mengizinkan penambahan (append) data baru — tidak ada modifikasi atau penghapusan segmen yang sudah ada. Ini melawan skenario klasik ransomware: penyerang yang mendapat akses klien ke repo (misal melalui host yang di-backup) tidak bisa menghapus riwayat backup untuk memaksa restore dari versi yang sudah dirusak.

Borg 1.2 membawa peningkatan signifikan pada append-only: repository kini bisa berjalan dalam mode ini secara lebih ketat, dan server-side append-only (borg serve --append-only) menjadi rekomendasi utama — bukan sekadar flag klien yang bisa diakali.

Mengaktifkan Append-only

Saat inisialisasi:

Init repo append-only
borg init --encryption=repokey-blake2 --append-only /backup/borg

Atau set pada repository yang sudah ada:

Aktifkan append-only di repo
borg config /backup/borg append_only 1

Untuk repo remote, kunci append-only di sisi server agar tidak bisa dimatikan oleh klien:

/home/borg/.ssh/authorized_keys
command="borg serve --restrict-to-path /srv/borg --restrict-to-repository /srv/borg/backup --append-only",restrict,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... borg-backup

Dengan pola ini, klien tidak bisa menjalankan prune/delete — hanya menambah. Kalau kalian memakai borgmatic, pengecualian prune harus diatur di sisi server dengan melepas --append-only secara sementara dari authorized_keys (atau repo khusus maintenance).

Trade-off

  • Keunggulan: riwayat backup tak bisa dihapus bahkan oleh klien yang terkendali penyerang.
  • Kekurangan: prune/delete tidak berjalan dalam mode append-only — repository bisa tumbuh tanpa kendali sampai kalian melakukan maintenance dengan melepas mode ini secara aman.

Lapisan 3: Kontrol Akses SSH

SSH Lock dengan Restricted Command

Episode 11 sudah memperkenalkan command= di authorized_keys. Di sini kita melihatnya sebagai komponen keamanan repository, bukan sekadar kenyamanan:

/home/borg/.ssh/authorized_keys
command="borg serve --restrict-to-path /srv/borg --restrict-to-repository /srv/borg/backup",restrict,no-pty ssh-ed25519 AAAA... borg-backup
  • --restrict-to-path: borg serve tidak bisa membaca file di luar /srv/borg.
  • --restrict-to-repository: hanya satu repository yang dilayani.
  • restrict: menonaktifkan forwarding SSH apa pun.
  • Key berbeda per host → bisa dicabut individual.

Storage Quota

Untuk membatasi kerusakan bila repository dibanjiri data (malicious atau tak sengaja), set kuota per repo:

Set storage quota
borg config /backup/borg storage_quota 500G

Saat kuota tercapai, create ditolak — bukan berarti backup berhenti diam-diam, tetapi ada batas yang jelas dan ter-alert.

Warning

Append-only melindungi riwayat dari penghapusan, tetapi tidak melindungi dari enkripsi jika penyerang mendapatkan key/passphrase. Pasangan passphrase yang kuat + key management disiplin (episode 7) adalah bagian yang tidak bisa ditawar dari skenario ini.

Pitfall Umum

  • Append-only hanya di sisi klien: kalau flag --append-only cuma dipakai saat borg create, klien lain (atau penyerang dengan akses) masih bisa prune. Kunci di server lewat borg serve --append-only.
  • Lupa dampak pada prune: append-only + borgmatic = prune gagal. Rencanakan maintenance window dan cara melepas mode ini dengan aman.
  • Kuota tanpa monitoring: kuota yang selalu penuh berarti backup terhenti — pasangkan dengan alerting (episode 20).
  • Key SSH tanpa restrict: satu key dengan shell penuh membatalkan semua lapisan di atas.

Penutup

  • Enkripsi otentikasi (repokey/authenticated) menjaga kerahasiaan dan integritas.
  • Append-only mode mencegah penghapusan riwayat — kunci di sisi server dengan borg serve --append-only.
  • Borg 1.2+ membuat append-only lebih kuat dan menjadi rekomendasi produksi.
  • SSH lock: command="borg serve --restrict-to-path ..." membatasi radius ledakan.
  • Storage quota membatasi pertumbuhan tak terkendali.

Di episode 14 kita menerapkan semua ini pada skala lebih besar: hardening & multi-host — satu repository per host/team, isolasi key, monitoring akses, backup off-site di host berbeda, dan ritual uji restore.