Saya punya perasaan ini adalah pertanyaan bodoh, tapi ini adalah sesuatu yang sudah lama saya tanyakan.
Saya memiliki VPS dan ini adalah usaha linux besar pertama saya. Saya satu-satunya orang yang memiliki akses ke sana. Pertanyaan saya adalah, apa yang salah dengan hanya login sebagai root daripada membuat akun dan memberi mereka akses sudo? Jika seorang sudoer dapat melakukan apa saja yang dapat dilakukan root, lalu apa bedanya? Jika seorang hacker dapat meretas kata sandi saya ke akun standar saya, non-root, maka dia juga dapat mengeksekusi perintah sudo, jadi bagaimana cara seorang hacker memecahkan masalah akun root saya lebih atau kurang?
linux
ssh
permissions
ryeguy
sumber
sumber
Jawaban:
Jika Anda login sebagai root, Anda dapat dengan mudah menghapus direktori atau melakukan sesuatu yang dalam retrospeksi benar-benar bodoh pada sistem dengan flip jari, sedangkan sebagai pengguna Anda biasanya harus memasukkan beberapa siklus mental tambahan ke dalam apa yang Anda Sedang mengetik sebelum melakukan sesuatu yang berbahaya.
Juga setiap program yang Anda jalankan sebagai root sebagai root privilege, artinya jika seseorang atau sesuatu membuat Anda menjalankan / mengkompilasi / menelusuri situs web yang berbahaya dan ingin merusak sistem Anda, seperti trojan atau malware lain, ia memiliki akses penuh ke Anda sistem dan dapat melakukan apa yang diinginkannya, termasuk akses ke port TCP di bawah 1024 (sehingga dapat mengubah sistem Anda menjadi remailer tanpa sepengetahuan Anda, misalnya).
Pada dasarnya Anda agak meminta masalah yang bisa Anda hindari. Saya kenal banyak orang yang akhirnya senang mereka memiliki jaring pengaman pada saat kecerobohan.
EDIT: Ada juga masalah root menjadi yang paling terkenal, sehingga target yang mudah, untuk skrip dan peretasan. Sistem yang menonaktifkan akun dan sebaliknya memaksa pengguna untuk menggunakan sudo berarti bahwa segala upaya untuk meretas root dari ssh atau eksploitasi lokal ke akun tersebut membenturkan kepalanya ke dinding. Mereka harus menebak / memecahkan kata sandi dan nama pengguna. Ini tingkat keamanan melalui ketidakjelasan, tetapi sulit untuk membantah bahwa itu tidak menggagalkan sebagian besar serangan script kiddie.
sumber
Jika Anda tidak mengizinkan orang idiot masuk ke server Anda sebagai root, maka jangan selalu jalankan sebagai root sendiri. Kecuali jika Anda dapat mengatakan dengan hati-hati bahwa Anda belum pernah menjadi idiot. Tidak benar-benar? Kamu yakin? :)
Manfaat: mengurangi kemungkinan Anda menjadi root dan idiot secara bersamaan.
sumber
Alasan utamanya adalah kesalahan. Jika Anda selalu root, kesalahan ketik sederhana mungkin benar-benar mengacaukan sistem. Jika Anda hanya masuk sebagai root atau menggunakan sudo untuk melakukan hal-hal yang mengharuskannya, Anda meminimalkan risiko melakukan kesalahan berbahaya.
sumber
Ketika Anda root Anda malas tentang izin, karena Anda memiliki akses ke semuanya sepanjang waktu, Anda tidak peduli ketika semuanya 777 atau 644 atau apa pun. Jadi, jika Anda pernah membiarkan orang lain masuk ke sistem Anda yang tidak ingin memiliki akses ke semuanya, tiba-tiba menjadi kesulitan nyata untuk membuat mesin tersebut aman untuk digunakan oleh orang lain.
sumber
Ada beberapa prinsip utama di balik tidak masuk sebagai root: 1) Kata sandi root tidak pernah dikirim melintasi jaringan pada waktu login 2) Tidak ada cara untuk mengatakan siapa yang melakukan sesuatu jika beberapa pengguna login sebagai akun yang sama (root atau lainnya). 3) Secara tidak sengaja melakukan sesuatu yang 'bodoh'
sumber
Ini lebih untuk perlindungan terhadap diri Anda sehingga Anda memiliki kesempatan kedua untuk meninjau perintah hak istimewa yang lebih tinggi yang Anda coba jalankan, analog dengan UAC di Windows. Sangat mudah untuk secara tidak sengaja melakukan sesuatu seperti
rm -rf /
saat login sebagai root.Selain itu, Anda memiliki keterlacakan. Ini bukan masalah besar dalam situasi Anda di mana Anda satu-satunya (secara teoritis) yang mengeluarkan perintah tetapi kemampuan untuk login dan melacak kembali ke individu adalah komponen kunci untuk berbagai bentuk analisis.
sumber
Perbedaannya terutama:
bahwa Anda tidak dapat melakukan hal buruk secara tidak sengaja.
bahwa kode "jahat" tidak dapat mengambil alih sistem.
Perhatikan: kode jahat tidak selalu berarti bahwa siapa pun sudah memiliki akses ke sistem.
sumber
Anda harus selalu menggunakan akun dengan tingkat privilege serendah mungkin. Berjalan sebagai root sepanjang waktu mendorong kebiasaan buruk dan kemalasan yang akan membuat hidup tidak menyenangkan ketika Anda bekerja dengan banyak pengguna atau mengekspos sesuatu ke jaringan publik / semi-publik.
Perlu diingat juga bahwa pemecahan kata sandi hanyalah satu skenario kompromi - dan juga bukan skenario yang paling umum. Anda lebih cenderung menjadi korban kerentanan browser, atau kerentanan pada beberapa daemon yang berjalan di sistem Anda.
Pikirkan kode yang Anda gunakan tanpa berpikir. Sebagai contoh, port Linux dari Adobe Flash, yang merupakan tumpukan kotoran mengepul yang hanya dapat digunakan di masa lalu yang relatif baru. Menurut Anda seberapa aman kode itu? Apakah Anda ingin itu dapat menggunakan kontrol penuh dari sistem Anda?
sumber
Itu dapat mencegah terhadap serangan brute force SSH. Setiap unix memiliki akun 'root'. Namun tidak jelas dari luar apa nama pengguna 'sudo' Anda nantinya. Karenanya jika seseorang ingin mencoba dengan paksa masuk, mereka tahu ada akun root dan mungkin akan mencobanya. Namun mereka tidak tahu harus mulai dari mana jika Anda menggunakan sudo.
sumber
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
sumber
Saran saya adalah mencoba menggunakan root sepanjang waktu untuk sementara waktu; Anda akan segera menemukan mengapa Anda tidak boleh :)
sumber
Bahkan jika saya tidak percaya pada "keamanan oleh ketidakjelasan", pasti ada keuntungan untuk menggunakan login khusus daripada login root yang pernah ada. Anda juga dapat mengkonfigurasi SSH untuk mencegah login root.
Seperti yang lain katakan juga, root dapat melakukan semuanya tanpa konfirmasi. Jadi menggunakan pengguna yang tidak terjangkau dapat mencegah kesalahan dan kesalahan ketik bodoh.
Argumen lain yang mendukung beberapa akun pengguna adalah menjalankan berbagai perangkat lunak di bawah pengguna yang berbeda. Melakukan ini, jika kelemahan keamanan dieksploitasi dalam satu aplikasi, pengeksploitasi hanya dapat mengakses file dan sumber daya yang dapat diakses oleh pengguna yang berjalan.
Satu poin terakhir untuk tidak menggunakan root: konsumsi sumber daya. Root tidak memiliki batasan pada berapa banyak memori, waktu pemrosesan, penangan file atau ruang disk yang dapat ia gunakan. Pada banyak filesystem, ada blok data yang hanya disediakan untuk root. Jadi pengguna normal tidak pernah bisa menggunakannya untuk mengisi disk Anda. perintah ulimit juga dapat digunakan untuk membatasi memori dan nomor penangan file yang dapat dikonsumsi pengguna. Tetapi jika Anda root (atau aplikasi berjalan sebagai root), tidak ada yang mencegah Anda untuk mengubah batas ini.
sumber
Ya, saya setuju dengan Anda, dan saya pikir itu adalah masalah perlindungan terhadap kesalahan manusia dan kadang-kadang terhadap program jahat. Hal buruk yang belum pernah saya lihat adalah menggunakan root sebagai akun gnome default.
Saya pikir sebagian besar pengguna yang melakukannya adalah pengguna Windows yang baru saja pindah ke Linux atau Unix. Cobalah untuk menyalin penggunaan hak istimewa Administrator untuk melakukan root.
sumber
Tidak ada yang salah dengan login sebagai root. Ini membantu mengembangkan memori otot untuk hanya mengetik perintah yang aman dan meningkatkan akurasi pemikiran saat melakukan tindakan dengan konsekuensi besar. Saya sangat merekomendasikan bekerja sebagai root untuk menjadi lebih baik dalam administrasi sistem.
Anda juga bisa melakukan hal-hal keren seperti
ping -i 0.2 -c 1000 example.com
sumber