it-swarm-id.com

Sandi Sudo ketika diautentikasi melalui SSH tanpa kata sandi

Saya punya beberapa kotak yang semuanya terhubung bersama di Amazon EC2, masing-masing dalam komunikasi otomatis satu sama lain melalui SSH (rsync, dll). Karena itu, saya telah membuat kunci SSH pada masing-masing mesin ini untuk memungkinkan mereka untuk SSH satu sama lain tanpa memerlukan kata sandi. Demikian juga, akun pribadi saya berbasis kunci dan tanpa kata sandi juga.

Sepengetahuan saya, saya telah mengamankan SSH dengan tepat menggunakan metode yang terdokumentasi dengan baik.

Di bawah konfigurasi ini, saya perhatikan bahwa saya tidak perlu memberikan kata sandi untuk menggunakan Sudo. Jika saya mencoba su root, Saya tidak mendapatkan apa-apa, karena root tidak memiliki kata sandi. Namun, jika saya menjalankan Sudo -i, Saya tidak diminta kata sandi, dan langsung diberikan root. Itu membuat saya sedikit khawatir.

Jadi, dua pertanyaan:

  1. Haruskah ini membuatku khawatir, atau aku terlalu paranoid?
  2. Apakah mungkin untuk menetapkan kata sandi Sudo saat menggunakan otentikasi SSH berbasis kunci?

Beberapa dari kotak ini adalah server web, dan menjadi hosting aplikasi web yang menurut saya kualitasnya meragukan. (Saya tidak menulisnya, jadi mereka meragukan!) Saya punya Apache dan izin pada server yang dikonfigurasi sedemikian rupa sehingga sangat pengguna tidak terprivasi (www-data) melayani file, tapi ketakutan saya adalah - entah bagaimana - penyerang dapat membahayakan aplikasi web, meningkatkan hak istimewa ke pengguna yang lebih istimewa, dan kemudian hanya Sudo -i untuk me-root.

Saya tidak mengetahui adanya kerentanan pada perangkat lunak saya yang akan memungkinkan data-www untuk meningkatkan hak-hak istimewanya, tetapi saya lebih suka memiliki kata sandi untuk menggunakan Sudo yang entah bagaimana bisa terjadi.

Juga, sebagai catatan: Saya memang mencoba mengatur kata sandi dengan masuk melalui SSH dan kemudian menjalankan passwd, tetapi ternyata ada kesalahan. Saya tidak ingat frasa yang tepat, tapi itu sesuatu tentang "token". Either way, kata sandi tidak menempel, yang membuat saya berpikir saya salah paham sesuatu pada tingkat mendasar di sini.

Penerangan apa pun pada subjek akan sangat dihargai. Terima kasih.

- Pembaruan: 7 Desember 2011 -

Terima kasih atas penjelasan yang bijaksana, semuanya. Itu memang tampak seperti masalah terletak pada /etc/sudoers. Terima kasih telah menunjukkan saya ke arah itu.

Saya pikir saya akan mendokumentasikan ini demi menyelesaikan diskusi. Ketika saya melihat ke /etc/sudoers, Saya menemukan baris berikut:

# ubuntu user is default user in ec2-images.  
# It needs passwordless Sudo functionality.
ubuntu  ALL=(ALL) NOPASSWD:ALL

Saya sebenarnya menggunakan pengguna ubuntu untuk operasi istimewa saya (meskipun, sekali lagi, server web hanya berjalan sebagai www-data), jadi saya kira itu menjelaskan masalah yang saya alami.

Jika ada yang ingin menindaklanjuti dengan tebakan mengapa pengguna ubuntu membutuhkan fungsionalitas Sudo tanpa kata sandi, saya ingin mendengarnya. Kalau tidak, setidaknya untuk saat ini, saya pikir saya akan membiarkan cukup baik sendiri dan meninggalkan konfigurasi apa adanya. Saya tidak ingin merusak sistem kerja sambil mencoba terlebih dahulu menyelesaikan masalah yang tidak ada.

Sekali lagi terima kasih telah meminjamkan waktu dan keahlian Anda.

27
Chris Allen Lane

Alasan Anda tidak diminta untuk kata sandi Sudo adalah karena pengguna Anda (atau grup pengguna) telah mengaktifkan NOPASSWD di/etc/sudoers. Anda dapat mengedit file ini dengan visudo sebagai root.

Mengenai otentikasi tanpa kata sandi, Anda benar bahwa otentikasi kunci publik adalah metode yang disukai untuk otentikasi ke server. Jika tidak ada kata sandi untuk ditebak, maka tidak ada upaya kekerasan dapat berhasil.

Fakta bahwa Anda sama sekali tidak memiliki kata sandi root melanggar beberapa praktik terbaik, tetapi seperti yang Anda nyatakan dengan benar, jika diperlukan kunci untuk masuk ke dalam kotak, itu mungkin baik-baik saja. Memiliki kata sandi root mungkin mendorong Anda untuk menggunakan SSH untuk masuk sebagai root, yang seharusnya dinonaktifkan di sshd_config Anda.

Satu-satunya pertanyaan yang saya miliki berkaitan dengan salah satu paragraf terakhir Anda:

Juga, sebagai catatan: Saya memang mencoba untuk mengatur kata sandi dengan masuk melalui SSH dan kemudian menjalankan passwd, tetapi ternyata ada kesalahan. Saya tidak ingat frasa yang tepat, tapi itu sesuatu tentang "token". Either way, kata sandi tidak menempel, yang membuat saya berpikir saya salah paham sesuatu pada tingkat mendasar di sini.

Anda tidak dapat mengatur kata sandi sementara Sudo harus melakukan rooting? Atau hanya sebagai pengguna biasa? Memiliki otentikasi kunci publik tidak boleh menghentikan Anda dari pengaturan kata sandi userspace, atau kata sandi root. Sepertinya Anda mungkin mengalami --- masalah ini, dibahas pada SuperUser , jadi semoga itu sedikit membantu.

Saya harap saya menjawab sisi keamanan pertanyaan Anda; jangan ragu untuk menambahkan komentar atau tindak lanjut jika Anda memerlukan informasi lebih lanjut!

14
dshaw

Anda dapat mengatur kata sandi untuk di-root saat SSH-kunci auth diaktifkan. Dalam Ubuntu disrto misalnya akun root "dinonaktifkan". Anda bisa Sudo ke akun yang dibuat selama instalasi, yang akan berjalan dengan hak istimewa root.

Jika Anda menjalankan www-data$Sudo -i Anda harus mendapatkan pesan berikut:

www-data is not in the sudoers file.  This incident will be reported.

Apa yang disebutkan dshaw biasanya dinonaktifkan di Ubuntu

# %Sudo ALL=NOPASSWD: ALL

Jadi, baik untuk memeriksanya karena Anda seharusnya tidak dapat menjalankan Sudo -i dan mendapatkan root tanpa memasukkan kata sandi.

Semoga ini membantu.

3
Bassec