Solusi apa pun yang tidak termasuk enkripsi pada sisi klien dengan kunci yang dipegang oleh pemilik tidak akan memenuhi persyaratan yang dinyatakan pertama (perlindungan / keamanan IP) - setiap retasan dari sisi server mengungkapkan data yang tidak terenkripsi. Ini mengesampingkan sistem sinkronisasi cloud seperti Dropbox yang memiliki kunci.
Untuk menghindari hosting kunci enkripsi yang sangat penting di server situs web, yang juga kemungkinan akan diretas di beberapa titik, inilah yang akan saya lakukan:
- Server cadangan internal di situs milik pelanggan - memiliki kunci enkripsi dan kunci SSH untuk kedua server lainnya
- Server hosting situs web - bisa menjadi host web
- Server atau layanan cadangan cloud
Langkah 1: Server (1) menarik cadangan dari (2), sehingga sebagian besar peretasan server situs web tidak akan mengganggu cadangan. Enkripsi terjadi pada titik ini.
- Saya akan menggunakan rsnapshot melalui SSH menggunakan login berbasis kunci, karena ini memiliki persyaratan minimal pada host web dan server cadangan internal - kecuali Anda memiliki DB besar untuk mencadangkannya, ini sangat efisien dalam bandwidth dan menyimpan beberapa versi situs, dan juga menangani pembersihan cadangan lama.
- Enkripsi dapat dilakukan oleh file apa saja untuk alat file seperti GPG, menyalin pohon rsnapshot ke pohon lain - atau Anda dapat menggunakan duplikat untuk langkah 2, menghemat ruang disk.
- "Tarik" dari server cadangan penting - jika server utama (2) memiliki kata sandi / kunci untuk server cadangan, peretas dapat dan terkadang akan menghapus cadangan setelah meretas server utama (lihat di bawah). Peretasan yang benar-benar canggih dapat menginstal binari SSH trojan yang kemudian dapat membahayakan server cadangan, tetapi itu lebih kecil kemungkinannya bagi kebanyakan perusahaan.
Langkah 2: server (1) mendorong cadangan terenkripsi ke (3) sehingga ada cadangan di luar kantor. Jika cadangan dienkripsi di langkah 1, Anda bisa menggunakan mirror rsync dari pohon rsnapshot lokal ke sistem jarak jauh.
- Duplicity akan menjadi pilihan yang baik untuk secara langsung mengenkripsi dan membuat cadangan pohon rsnapshot yang tidak terenkripsi ke server jarak jauh. Bermuka dua ini fitur yang sedikit berbeda untuk rsnapshot, menggunakan arsip tar GPG-dienkripsi, tetapi memberikan enkripsi cadangan pada remote host dan hanya membutuhkan SSH pada host itu (atau bisa menggunakan Amazon S3). Duplikasi tidak mendukung tautan keras , jadi jika ini diperlukan (misalnya untuk cadangan server penuh), yang terbaik adalah jika skrip mengubah pohon rsnapshot (yang mendukung tautan keras) menjadi file tar (mungkin hanya file yang memiliki> 1 hard link, yang akan sangat kecil) sehingga duplikat dapat membuat cadangan file tar.
- Karena server jarak jauh hanyalah host SSH, mungkin dengan rsync, itu bisa berupa host web (tetapi dari penyedia hosting yang berbeda dan di bagian negara yang berbeda), atau layanan cloud yang menyediakan rsync dan / atau SSH - lihat jawaban ini pada backup rsync ke cloud untuk rekomendasi bqbackup dan rsync.net, meskipun saya tidak setuju dengan pengaturan backup yang disebutkan.
- Anda dapat menggunakan Amazon S3 sebagai server jarak jauh dengan duplikat, yang akan memberi Anda ketersediaan yang sangat baik meskipun mungkin akan lebih mahal untuk cadangan besar.
- Pilihan lain untuk backup terenkripsi jarak jauh adalah Boxbackup (tidak cukup matang, beberapa fitur bagus) dan Tarsnap (layanan cloud komersial berdasarkan Amazon S3 dengan antarmuka baris perintah sederhana, deduplikasi yang baik, dan enkripsi yang sangat teliti).
Keamanan dari semua berbagai host adalah penting, jadi ini harus disesuaikan untuk memenuhi profil keamanan klien yaitu menganalisis ancaman, risiko, vektor serangan, dll. Server Ubuntu bukan awal yang buruk karena telah sering memperbarui keamanan untuk 5 tahun, tetapi perhatian terhadap keamanan diperlukan di semua server.
Pengaturan ini menyediakan 2 cadangan independen, salah satunya dapat menjadi layanan penyimpanan cloud yang sangat tersedia, beroperasi dalam mode tarik sehingga sebagian besar serangan pada situs web tidak dapat menghancurkan cadangan pada saat yang sama, dan menggunakan alat sumber terbuka yang terbukti baik yang tidak memerlukan banyak administrasi.
- Pencadangan independen sangat penting, karena peretas terkadang benar-benar menghapus semua cadangan pada saat yang sama dengan peretasan situs web - dalam kasus terbaru peretas menghancurkan 4800 situs web, termasuk cadangan dengan meretas lingkungan web hosting daripada situs. Lihat juga jawaban ini dan yang ini .
- Memulihkan sangat mudah dengan rsnapshot - ada satu file di setiap pohon snapshot untuk setiap file yang dicadangkan, jadi temukan saja file dengan alat Linux dan rsync atau scp kembali ke situs web. Jika server cadangan di tempat tidak tersedia karena alasan tertentu, cukup gunakan duplikat untuk memulihkannya dari server cadangan cloud - atau Anda dapat menggunakan alat standar seperti GPG, rdiff, dan tar untuk mengembalikan cadangan.
Karena pengaturan ini menggunakan SSH dan rsync standar, akan lebih mudah untuk memilih penyedia yang sesuai dengan jaminan uptime yang tepat, keamanan yang kuat, dll. Anda tidak harus mengunci kontrak yang panjang, dan jika layanan cadangan memiliki bencana besar kegagalan, Anda masih memiliki cadangan lokal dan dapat dengan mudah beralih ke layanan cadangan lain.