Audit sistem dengan auditd
Audit sistem adalah tugas yang sangat penting yang harus menjadi bagian dari setiap server. Ini memungkinkan kami untuk mengaudit detail menit terkait dengan apa yang sebenarnya terjadi di dalam sistem. auditd adalah komponen userspace untuk sistem audit Linux. Ini berarti bahwa pengguna sistem akan dapat menjalankan auditd untuk mengonfigurasi aturan dan peringatan untuk mengaudit fungsionalitas dengan sistem Linux.
Salah satu hal terbaik tentang auditd adalah ia terintegrasi erat dengan kernel, sehingga memberi kita kekuatan untuk memantau hampir semua yang kita inginkan, sungguh. Untuk memungkinkan pengguna melihat apa yang sedang terjadi, auditd dapat merekam semua peristiwa terkait audit ke disk dan kami dapat menggunakan berbagai alat seperti ausearch atau aureport untuk menelusuri file log.
Secara default, tidak ada aturan yang dikonfigurasi. Kita perlu menulis aturan kita di /etc/audit/audit.rules file konfigurasi yang akan dibaca dan tindakan audit yang sesuai akan diterapkan.
Memasang Auditd
Sekarang setelah kita sedikit memahami apa itu auditd, mari kita lanjutkan dan mulai bekerja dengan auditd dengan kasus penggunaan sebelumnya:
1. Instal paket auditd. Paket auditd adalah bagian dari sistem CentOS 7 instalasi default. Kita dapat memverifikasinya dengan perintah berikut:
# rpm -qa | grep audit audit-libs-2.6.5-3.el7_3.1.x86_64 audit-2.6.5-3.el7_3.1.x86_64 audit-libs-python-2.6.5-3.el7_3.1.x86_64
2. Jika paket tersebut bukan bagian dari sistem kami, kami dapat melanjutkan dan menginstalnya:
# yum install audit
3. Pastikan daemon audit berjalan. Kami akan menggunakan perintah berikut:
# systemctl status auditd auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-10-24 04:33:48 UTC; 4min 21s ago Docs: man:auditd(8) https://people.redhat.com/sgrubb/audit/ Process: 425 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Main PID: 424 (auditd) CGroup: /system.slice/auditd.service └─424 /sbin/auditd -n
Karena kita memiliki daemon audit yang aktif dan berjalan, mari kita lihat bagaimana kita dapat menggunakan auditd untuk mencapai semua 4 kasus penggunaan.
Aturan Audit untuk Menyalin, memindahkan, menghapus, dan mematikan Perintah
1. Ambil cadangan file konfigurasi yang ada (aturan audit):
# cp /etc/audit/audit.rules /etc/audit/audit.rules.bkp
2. Edit file /etc/audit/audit.rules dan tambahkan aturan berikut untuk membuatnya persisten:
# vi /etc/audit/audit.rules # Audit Copy, Move, Delete & Create file commands -a exit,always -F arch=b64 -S execve -F path=/bin/cp -k Copy -a exit,always -F arch=b64 -S execve -F path=/bin/mv -k Move_Rename -a exit,always -F arch=b64 -S execve -F path=/bin/rm -k Delete -a exit,always -F arch=b64 -S execve -F path=/bin/vi -k Create_Edit_View_File # Audit shutdown & Reboot command -a exit,always -F arch=b64 -S execve -F path=/sbin/reboot -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/init -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/poweroff -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/shutdown -k Reboot # Audit mount unmount commands -a exit,always -F arch=b64 -S execve -F path=/bin/mount -k mount_device -a exit,always -F arch=b64 -S execve -F path=/bin/umount -k unmount_device # Kill Process -a exit,always -F arch=b64 -S kill -k Kill_Process
3. Mulai ulang layanan auditd untuk menerapkan perubahan.
# service auditd restart
4. Buat daftar aturan yang ditambahkan, untuk memverifikasi bahwa ini benar:
# auditctl -lCatatan :bash (dan banyak shell lainnya) memiliki perintah "kill" bawaan yang sebenarnya tidak menjalankan /usr/bin/kill. Jadi, jika perintah bawaan dijalankan, comm=bash benar. Tidak ada cara untuk memaksa sistem menggunakan /usr/bin/kill program eksternal. comm=bunuh tidak akan terjadi di semua kasus, karena shell dapat memanggil syscall secara langsung tanpa menjalankan program eksternal bernama “kill”