Apakah kemampuan logging SSH setara dengan su logging untuk otentikasi kunci publik / publik?

11

Di sini, di tempat kerja, kami memiliki akun login bersama non-root di UNIX yang digunakan untuk admin aplikasi tertentu. Kebijakannya adalah untuk tidak mengizinkan login langsung ke akun bersama; Anda harus masuk sebagai diri Anda sendiri dan menggunakan perintah "su" untuk beralih ke akun bersama. Ini untuk tujuan logging / keamanan.

Saya sudah mulai menggunakan otentikasi kunci publik / pribadi SSH dengan agen untuk memungkinkan saya memasukkan kata sandi sekali sehari dan membiarkan penerusan agen menghilangkan permintaan kata sandi untuk sisa hari itu. Sangat bagus.

Namun, beberapa sistem dikunci sehingga saya benar-benar harus menggunakan perintah "su" untuk sampai ke akun bersama. Arg! Kembali ke memasukkan kata sandi setiap saat!

Apakah ada cukup info yang dicatat dengan otentikasi kunci publik / pribadi SSH sehingga saya dapat memiliki kesempatan yang wajar untuk meminta perubahan kebijakan untuk memungkinkan login jarak jauh ke akun bersama jika kunci publik / pribadi digunakan?

Saya melihat admin di / var / log / secure dan hanya mengatakan bahwa kunci publik diterima untuk akun pengguna dari alamat IP tertentu. Itu tidak mengatakan siapa kunci publik itu, atau siapa kunci pribadi melakukan otentikasi.

David I.
sumber

Jawaban:

13

Ada banyak level logging yang tersedia melalui sshd_configfile. Lihat halaman manual dan cari LogLevel. Level defaultnya INFOtapi mudah untuk menaikannya hingga VERBOSEatau bahkan salah satu DEBUG#level.

Selain itu, Anda harus menjelajah sudosebagai alternatif su. Diskusi lengkap tentang manfaat sudoakan menjadi pertanyaan tersendiri. Tetapi saya dapat mengatakan bahwa dengan sudoAnda dapat menyesuaikan seberapa sering Anda harus memasukkan kata sandi, perintah mana yang dapat dijalankan, dll., Semua dapat dikontrol melalui file konfigurasi sudoers .

dwc
sumber
Memilih untuk menyarankan pengganti sudo.
Matt Simmons
6

Cara lain adalah dengan pindah ke authorized_keysluar ruang lingkup pengguna (misalnya ke /etc/ssh/authorized_keys) sehingga hanya sysadmin yang akan mengontrol kunci publik mana yang dapat digunakan untuk login ke akun yang diberikan.

Kami biasa mengubah AuthorizedKeysFilearahan sshd_configke sesuatu seperti berikut ini.

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Kemudian buat dan isi /etc/ssh/authorized_keysdirektori dengan file untuk setiap pengguna yang seharusnya bisa login, pastikan rootfile hanya dapat dibaca / ditulis hanya untuk me-root dan file lainnya dapat dibaca oleh pengguna yang sesuai, seperti ini:

-rw-------  1 root root    1,7K 2008-05-14 14:38 root
-rw-r-----  1 root john     224 2008-11-18 13:15 john

Setiap file berisi sekumpulan kunci publik yang akan diizinkan masuk ke akun yang diberikan. Ini cukup umum untuk setiap akun pengguna ada grup masing-masing juga.

Menggunakan kunci publik / pribadi adalah metode yang jauh lebih baik untuk mengendalikan akses pengguna jarak jauh. Anda tidak harus mengubah kata sandi setiap bulan (Anda tidak harus mengaturnya juga), dan tidak harus mengubahnya hanya karena seorang karyawan meninggalkan perusahaan Anda hanya menghapus kunci publik mereka; dan tentu saja dengan opsi SSH ( http://www.openbsd.org/cgi-bin/man.cgi?query=sshd&sektion=8#SSHRC) Anda dapat menguraikan apa dan dari mana pengguna tertentu dapat memiliki akses.

ada
sumber
1

Otentikasi kunci publik / pribadi SSH terpisah dari otentikasi host. Anda kurang beruntung di sini. Anda dapat meminta anggota grup tertentu diizinkan untuk menjalankan perintah administratif tertentu sudotanpa kata sandi - seperti contoh di bawah ini memungkinkan pengguna dalam secretariesgrup untuk mengelola akun:


# file: /etc/sudoers
...
%secretaries    ALL= NOPASSWD: /usr/bin/adduser, /usr/bin/rmuser   
...
Nikolai N Fetissov
sumber
Kedua ini .. itu jauh, jauh lebih mudah untuk mengaudit ketika Anda menggunakan SUDO .. Anda dapat melihat pengguna joe mengetik "sudo appname -pilihan" yang jauh lebih sederhana daripada melihat root diketik "appname -pilihan" dan kemudian harus mencocokkan siapa yang semua telah login sebagai root pada saat itu.
Brian
Oke, itu membantu. Namun, beberapa tugas kami adalah memulai dan menghentikan proses daemon. Apakah sudo mengizinkan kami menjalankan skrip "mulai" dan "berhenti" sebagai nama pengguna grup bersama? (itu non-root) Kami ingin proses dimiliki oleh nama pengguna akun bersama yang kami siapkan.
David I.
Ya, -uopsi memungkinkan Anda melakukan itu, lihat manual sudo.ws/sudo/man/1.8.1/sudo.man.html
Nikolai N Fetissov