hanya mengizinkan perintah tertentu dalam sesi ssh


1

Saya adalah pengguna linux yang malas dan sering menggunakan kata sandi yang sangat singkat untuk akun pengguna utama saya.

Sekarang, semoga firewall saya menangani pemblokiran sebagian besar upaya akses yang tidak diminta dan OS (sejauh mungkin) menangani serangan eksploitasi.

Bagaimanapun, saya berharap memiliki akses ssh jarak jauh untuk ketika saya keluar dan sekitar. Jadi apa yang saya lakukan?

Saya menonaktifkan semua pengguna untuk ssh, termasuk akun utama saya dan lebih memilih satu pengguna ssh tunggal dengan kata sandi super.

Apakah ini praktik yang baik? kenapa tidak}?

Jadi di sini adalah pertanyaan ... mengingat ini adalah tindakan yang baik, saya ingin menonaktifkan lebih lanjut semua perintah untuk pengguna ssh ini (ls, cd, dll) kecuali satu> sudo atau su.

(akun root tentu saja juga memiliki kata sandi asing yang disimpulkan dalam kuantum yang luar biasa panjang dan unik).

Tentu saja, semua ini akan dilakukan adalah meluangkan waktu (perlu menebak / mengetahui tentang nama pengguna lain dengan kata sandi malas, dan kemudian melakukan serangan pelangi / bruteforce lain), namun ini akan atau bisa diharapkan membuat saya melihat seseorang menjadi gadis nakal.

Seseorang dapat mengatakan .. tolong gunakan kata sandi mega untuk semua akun tetapi seperti yang saya katakan ... saya menjalankan begitu banyak perintah sudo dll selama hari admin .. saya malas ...

Banyak ide lain atau tips praktis atau cara mengurangi permukaan serangan untuk mesin linux (server / klien) sangat dihargai.

EDIT: Oh kamu ... skema kata sandi singkat di sini, tidak mengabaikan serangan login fisik ... ini murni terkait jaringan.

EDIT2: mungkin skrip bash yang mendengarkan stdin untuk nama pengguna ... yang kemudian menjalankan su $ 1 dan melakukan usermod -s script.sh ssh_user? atau apakah itu menimbulkan bahaya lain?

Bagi mereka yang mungkin tertarik .. Saya menulis skrip non-verbose sederhana yang mengharapkan jabat tangan khusus sebelum menjalankan su my_lazy_user dan mengarahkannya sebagai shell login.

Sepertinya cukup baik untukku. Jika ini mengarah ke metode serangan lain .. tolong berteriak.

(Saya puas dengan kesalahan penanganan skrip, yang, selama tidak ada heap, stack atau serangan buffer yang diaktifkan, harus baik-baik saja).

Terima kasih.


1
Konfigurasikan ssh untuk menggunakan kunci RSA / DSA, nonaktifkan login kata sandi. Tidak ada lagi pengetikan kata sandi (kecuali untuk pengaturan ssh-agent awal) dan lebih aman.
Frank Osterfeld

@jgr. Anda jelas tidak mengerti profil dari begitu banyak pengguna. Saya mencari jawaban yang bisa diketahui, maaf.

@ Jujur ... bukankah ini terikat ke host tertentu? Saya kadang-kadang mungkin menjadi tamu di freaks.uni.edu dan meminjam klien ssh untuk masuk ke server kesayangan saya dengan info tentang cara membuat obat desainer untuk siswa yang tidak fokus berkata.

Jika dengan "skrip bash" maksud Anda sesuatu dimulai .bashrcatau sesuatu, lebih baik jangan lakukan itu. Anda bisa Ctrl-C jalan menuju kebebasan sebagai penyerang. Mengubah shell login seharusnya baik-baik saja, lihat jawaban saya.
Christian

Jawaban:


1

Saya kira opsi termudah adalah dengan menggunakan chshuntuk mengubah shell untuk pengguna ini ke skrip yang melakukan superintah Anda (karena saya tidak berpikir Anda dapat mengkonfigurasi parameter ke shell pengguna).

Menggunakan shell standar dan mencoba untuk melarang builtin seperti ls dan cd ... sial dengan itu. Tetapi karena apa yang benar-benar Anda inginkan jauh lebih sederhana daripada apa yang disarankan judulnya, ini seharusnya berhasil. Anda bahkan dapat meminta pengguna masuk suke dalam skrip. Itu semua harus aman karena ketika seseorang menutup skrip, ini berarti shell login dihentikan dan koneksi ditutup.


Christian memiliki poin bagus di atas. Jika semua yang ingin Anda lakukan adalah menjalankan program tertentu ketika pengguna masuk, gunakan chsh untuk itu. Sekarang Anda perlu berhati-hati agar tidak ada exploit dalam program yang Anda presentasikan kepada pengguna. Banyak program interaktif (misalnya, vi, emacs, elinks ...) memberi pengguna cara untuk memulai shell, atau melakukan hal-hal yang tidak Anda pertimbangkan.
camilan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.