Saya akan merekomendasikan bahwa Anda hanya menggunakan akun root di tempat pertama. Jika Anda mengaturnya seperti ini:
- Konfigurasikan Anda
sshd_config
pada mesin target untuk PermitRootLogin without-password
.
- Gunakan
ssh-keygen
pada mesin yang menarik cadangan untuk membuat kunci pribadi SSH (hanya jika Anda belum memiliki kunci SSH). Jangan menetapkan frasa sandi. Google tutorial jika Anda memerlukan detail untuk ini, harus ada banyak.
- Tambahkan konten
/root/.ssh/id_rsa.pub
mesin cadangan ke /root/.ssh/authorized_keys
mesin target Anda.
- Sekarang mesin cadangan Anda memiliki akses root ke mesin target Anda, tanpa harus menggunakan otentikasi kata sandi.
maka setup yang dihasilkan harus cukup aman.
sudo
, terutama dikombinasikan dengan NOPASSWD
seperti yang direkomendasikan dalam komentar, tidak memiliki manfaat keamanan hanya dengan menggunakan akun root. Misalnya saran ini:
tambahkan berikut ini ke /etc/sudoers
file Anda :rsyncuser ALL= NOPASSWD:/usr/bin/rsync
pada dasarnya tetap memberikan rsyncuser
izin root. Anda bertanya:
@ MartinvonWittich Mudah mendapatkan shell root penuh karena rsync
dijalankan dengan sudo
? Silakan berjalan [m] melalui itu.
Yah, sederhana. Dengan konfigurasi yang disarankan, rsyncuser
sekarang dapat dijalankan rsync
sebagai root tanpa diminta kata sandi. rsync
adalah alat yang sangat kuat untuk memanipulasi file, jadi sekarang rsyncuser
memiliki alat yang sangat kuat untuk memanipulasi file dengan izin root. Menemukan cara untuk mengeksploitasi ini hanya membutuhkan waktu beberapa menit (diuji pada Ubuntu 13.04, membutuhkan dash
, bash
tidak berhasil):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
Seperti yang Anda lihat, saya telah membuat sendiri shell root; whoami
mengidentifikasi akun saya sebagai root, saya dapat membuat file /etc
, dan saya dapat membaca dari /etc/shadow
. Eksploitasi saya adalah mengatur bit setuid pada dash
biner; itu menyebabkan Linux untuk selalu menjalankan biner itu dengan izin dari pemiliknya, dalam hal ini root.
Memiliki root sebenarnya tidak [disarankan] untuk alasan yang baik. - redanimalwar 15 jam yang lalu
Tidak, dengan ceroboh bekerja di sekitar akun root dalam situasi di mana sangat tepat untuk menggunakannya bukan untuk alasan yang baik. Ini hanyalah bentuk lain dari pemrograman pemujaan kargo - Anda tidak benar-benar memahami konsep di balik sudo vs root, Anda hanya secara membuta menerapkan keyakinan "root is bad, sudo is good" karena Anda pernah membacanya di suatu tempat.
Di satu sisi, ada situasi di mana sudo
pasti merupakan alat yang tepat untuk pekerjaan itu. Misalnya, ketika Anda bekerja secara interaktif pada desktop Linux grafis, katakanlah Ubuntu, maka harus digunakan dengan sudo
baik dalam kasus-kasus langka di mana Anda kadang-kadang membutuhkan akses root. Ubuntu sengaja memiliki akun root yang dinonaktifkan dan memaksa Anda untuk menggunakan sudo
secara default untuk mencegah pengguna dari selalu menggunakan akun root untuk masuk. Ketika pengguna hanya ingin menggunakan misalnya browser web, kemudian masuk sebagai root akan menjadi hal yang berbahaya , dan karena itu tidak memiliki akun root secara default mencegah orang bodoh melakukan ini.
Di sisi lain, ada situasi seperti Anda, di mana skrip otomatis memerlukan izin root untuk sesuatu, misalnya untuk membuat cadangan. Sekarang menggunakan sudo
untuk bekerja di sekitar akun root tidak hanya tidak ada gunanya, itu juga berbahaya: pada pandangan pertama rsyncuser
tampak seperti akun biasa yang tidak terjangkau. Tapi seperti yang sudah saya jelaskan, akan sangat mudah bagi penyerang untuk mendapatkan akses root penuh jika dia sudah mendapatkan rsyncuser
akses. Jadi pada dasarnya, Anda sekarang memiliki akun root tambahan yang sama sekali tidak terlihat seperti akun root, yang bukan merupakan hal yang baik.
root
akun di tempat pertama.sudo
, terutama dikombinasikan denganNOPASSWD
seperti yang direkomendasikan dalam komentar, tidak benar-benar meningkatkan keamanan mesin Anda.