Bagaimana saya bisa melacak siapa SSH ke mesin linux saya?

23

Saya menjalankan Ubuntu 10,04. Apakah ada cara saya bisa mendapatkan laporan harian tentang siapa yang telah masuk ke dalam kotak, jam berapa, dan bahkan - ini mungkin meminta terlalu banyak - laporan dari perintah yang mereka gunakan? Ini adalah kotak penggunaan rendah dan jadi saya pikir ini akan menjadi cara yang bagus untuk melihat aktivitas apa yang terjadi di sana.

Sepanjang baris yang sama ini, saya mendengar tidak mungkin untuk melacak ketika hal-hal dilakukan pada kotak melalui shell non-interaktif, seperti rsync atau hanya menjalankan perintah tunggal dari jarak jauh melalui ssh. Apakah itu benar, atau apakah ada cara untuk mencatat dan melacak ini juga?

cwd
sumber

Jawaban:

21

Informasi tentang siapa yang masuk ketika tersedia di /var/log/auth.log(atau file log lain pada distribusi lain). Ada beberapa program pemantauan log yang dapat mengekstrak informasi yang Anda konfigurasi sebagai relevan. Pada sistem waras apa pun, setiap otentikasi pengguna dicatat.

Untuk mencatat setiap permintaan perintah (tapi bukan argumennya), gunakan proses akuntansi , yang disediakan oleh acctpaket Pasang ACCT di Ubuntu. Jika subsistem akuntansi sudah berjalan dan berjalan, maka lastcommperlihatkan informasi tentang proses yang sudah selesai.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3
/var/log/secure.log adalah file log lain yang umum
Adrian Cornish
9

Anda juga dapat menggunakan whoatau wuntuk melihat siapa yang saat ini masuk ke sistem, termasuk pengguna SSH.

Tim
sumber
10
lastmungkin menjadi pilihan yang lebih baik untuk apa yang dicari OP ...
jasonwryan
1
memang. "last" adalah perintah yang Anda inginkan.
Sirex
1
Ini adalah jawaban yang JAUH lebih baik daripada yang dipilih.
PaulBGD
0

Biasanya ketika seseorang masuk ke sistem pengguna kemudian di / var / log / pesan itu dicetak sebagai:

sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2

Jadi hanya menerima pesan sebagai:

grep -E "Accepted keyboard-interactive/pam for" /var/log/messages
RKum
sumber
0

Anda juga dapat memodifikasi bash shell untuk melakukan beberapa rsylog.

Secara efektif, Anda mengatur rsyslog pada host jarak jauh untuk menerima koneksi tertentu. Kemudian, modifikasi shell host yang ingin Anda pantau - dengan menyusun versi Anda, dengan yang memiliki yang berikut ini diaktifkan:

vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
#  define SYSLOG_FACILITY LOG_USER
#  define SYSLOG_LEVEL LOG_INFO
#endif

Setelah dikompilasi dengan ini diaktifkan, Anda dapat mengganti bash dengan versi ini ATAU menyuruh pengguna login ke ini dengan mengarahkan ulang login mereka ke versi ini.

Untuk info lebih lanjut:

https://www.pacificsimplicity.ca/blog/remote-logging-using-syslog-and-logging-shell-commands-remotely

McDoomington
sumber
Baik. Saya akan memperbaruinya.
mcdoomington