Saya mencoba menemukan cara mencatat instantiasi khusus rrdtool
untuk melihat apakah jalur yang diterimanya salah.
Saya tahu saya bisa membungkus executable dalam skrip shell yang akan mencatat parameter, tapi saya bertanya-tanya apakah ada cara yang lebih spesifik untuk memonitor kernel itu, mungkin panggilan balik sistem file yang melihat ketika / proc / pid / exe tertentu cocok dengan biner yang diberikan?
auditd
merekam argumen baris perintah serta program yang dijalankan? serverfault.com/questions/765179/…Jawaban:
Ya, ada fasilitas kernel: subsistem audit. The
auditd
daemon tidak logging, dan perintahauditctl
menyiapkan aturan logging. Anda dapat mencatat semua panggilan ke sistem tertentu alls, dengan beberapa penyaringan. Jika Anda ingin mencatat semua perintah yang dijalankan dan argumennya, catatexecve
panggilan sistem:Untuk secara khusus melacak permintaan program tertentu, tambahkan filter pada program yang dapat dieksekusi:
Log muncul di
/var/log/audit.log
, atau di mana pun distribusi Anda menempatkannya. Anda harus root untuk mengendalikan subsistem audit.Setelah Anda selesai menyelidiki, gunakan baris perintah yang sama dengan
-d
alih - alih-a
menghapus aturan logging, atau jalankanauditctl -D
untuk menghapus semua aturan audit.Untuk keperluan debugging, mengganti program dengan skrip wrapper memberi Anda lebih banyak fleksibilitas untuk mencatat hal-hal seperti lingkungan, informasi tentang proses induk, dll.
sumber
-F path=/ust/bin/rrdtool
? Saya tidak mengerti bagaimanarrdtool
bahkan perangkat lunak terkait.rrdtool
. Jika Anda ingin mencatat semua program, masukkan-F path=…
bagian tersebut (tentu saja Anda akan mendapatkan banyak log).auditctl
perintah ini hanya efektif sampai reboot?auditctl
hanya bertahan sampai reboot, tapi itu bagus juga, saya telah menambahkan instruksi untuk menghapusnya tanpa me-reboot jawaban saya.Anda bisa menggunakan snoopy .
Snoopy adalah solusi yang lebih ringan karena tidak memerlukan kerja sama kernel. Semua yang diperlukan adalah dynamic loader (dl) yang memuat pramuka perpustakaan snoopy, path yang ditentukan dalam
/etc/ld.so.preload
.Pengungkapan: Saya pengelola snoopy saat ini.
sumber
Subsistem "audit" kernel Linux dapat melakukan apa yang Anda butuhkan.
mis. jika Anda menjalankan perintah ini:
Kemudian setiap peristiwa eksekusi dicatat, dan banyak informasi disediakan tentang itu
misal ini adalah output dari saya berjalan
tail /var/log/audit/audit.log
Ada beberapa nilai menarik yang bisa dilihat; misalnya "auid" adalah 500, yang merupakan ID login saya, meskipun "uid" adalah nol (karena saya menjalankannya di bawah
su
). Jadi meskipun pengguna mungkin telah beralih akunsu
atausudo
kami masih dapat melacak kembali ke "ID audit" merekaSekarang
auditctl
perintah itu akan hilang pada saat reboot. Anda dapat meletakkannya di file konfigurasi (mis. Dalam/etc/audit/rules.d/
direktori, pada CentOS 7). Lokasi yang tepat akan tergantung pada versi OS Anda. Theauditctl
halaman pengguna harus membantu di sini.Hati-hati, meskipun ... ini akan menyebabkan banyak pesan log dihasilkan. Pastikan Anda memiliki cukup ruang pada disk!
Jika perlu aturan dapat dibatasi untuk pengguna tertentu, atau perintah tertentu.
Dan waspadalah juga; jika pengguna memasukkan kata sandi dalam eksekusi perintah (mis.
mysql --user=username --password=passwd
) maka ini akan dicatat.sumber