Saya menemukan masalah yang sama sebelumnya hari ini. Saya menemukan bahwa Anda dapat memberi otorisasi kepada pengguna biasa untuk melakukan operasi tertentu dengan perintah "zfs allow":
sebagai root, lakukan hal berikut di server:zfs memungkinkan nama_pengguna Anda menerima, membuat, memasang penyimpanan/foto
Setelah itu, Anda akan dapat ssh ke server menggunakan your_username dan Anda akan memiliki hak istimewa zfs untuk menerima. Lihat di sini:http://docs.Oracle.com/cd/E19253-01/819-5461/gfkco/index .html
Ini tidak sepenuhnya menghapus login root, tetapi mengamankan hal-hal di luar login berfitur lengkap.
Siapkan kepercayaan SSH dengan menyalin kunci publik pengguna lokal (biasanya ~/.ssh/id_rsa.pub
) ke file authorized_keys (~/.ssh/authorized_keys
) untuk pengguna jarak jauh. Ini menghilangkan permintaan kata sandi, dan meningkatkan keamanan karena kunci SSH lebih sulit untuk di-bruteforce. Anda mungkin juga ingin memastikan bahwa sshd_config
memiliki PermitRootLogin without-password
-- ini membatasi login root jarak jauh hanya ke kunci SSH (bahkan kata sandi yang benar pun akan gagal).
Anda kemudian dapat menambahkan keamanan dengan menggunakan ForceCommand
direktif dalam file authorized_keys untuk mengizinkan hanya perintah zfs yang dieksekusi.
@analog900 berada di jalur yang benar.
Salah satu kunci untuk meningkatkan keamanan, termasuk menghindari kebutuhan login root, adalah dengan menggunakan struktur izin bawaan ZFS, dan juga menyusun transfer cadangan Anda dengan cara lain 'round and pull cadangan Anda melalui jaringan, daripada mendorongnya. Kemampuan untuk mencadangkan sistem file tanpa akses root adalah salah satu pencapaian desain utama sistem file ZFS.
Jalankan tugas di destination
dan tarik data dari source
, mungkin sesuatu seperti:
- Pada sumber mesin, buat akun pengguna non-istimewa
foo
dan gunakanzfs allow
untuk memberikan akun tersebut kemampuan untuk membuat dan mengirim snapshot:
zfs allow foo mount,snapshot,send,hold storage/photos
- Di tujuan mesin, buat akun non-istimewa
bar
dan berikan akun itu kemampuan untuk menerima/membuat/memasang sistem file:
zfs allow bar mount,create,receive storage/photos
- Di tempat tujuan, sebagai pengguna
bar
, buat kunci ssh khusus untuk pekerjaan cadangan. Instal separuh publik dari kunci itu di.ssh
direktori penggunafoo
pada mesin sumber. Ini memberi pengguna[email protected]
akses login ssh yang aman ke[email protected]
Akun. Juga, edit file ~bar/.ssh/config padadestination
sehingga secara otomatis menggunakan nama file kunci SSH yang benar (yang Anda buat sebelumnya) dan nama pengguna:
Host source
Hostname FQDN.of.source.example.com
User foo
IdentityFile ~bar/.ssh/backup_key_id_rsa
- Sekarang jalankan tugas pencadangan Anda dari
[email protected]
:
dt=$(date +%Y-%m-%d_%H-%M-%S)
ssh source "zfs snap storage/[email protected]_$dt"
ssh source "zfs send -R storage/[email protected]_$dt" | zfs receive storage/photos
Melakukannya dengan cara ini membutuhkan tidak akses root apa pun.