Konuyu Açan
#1
find ile işlem geçmişini inceleme
[olist]
Temel fikir: find ile belirli kriterlere uyan dosyaları taramak. Örneğin son değiştirilmiş veya en çok erişilen dosyaları, belirli uzantılara sahip dosyaları veya belirli yazım hatalarıyla karşılaşılabilecek dosyaları sınırlı bir zaman aralığında bulmak mümkün.
Zaman damgaları üzerinden geçmiş inceleme: -ctime, -mtime, -atime kullanarak dosyaların son değiştirme, son erişim veya son metadata değiştirme tarihlerini filtrelemek. Örneğin:
Bu komut son 7 gün içinde değiştirilmiş dosyaları listeler; log dosyalarının güncelliğini hızlıca kontrol etmek için yararlı.
Güvenlik odağı: Yetkisiz değişiklikleri tespit etmek için belirli dosyalarda zaman damgası değişimini izlemek mümkün. Örneğin kök dizinde kritik konfigürasyon dosyalarını tarayarak anormal değişiklikleri saptamak:
İzin ve sahiplik değişikliklerini yakalama: -perm ile izinleri, -user/-group ile sahipliği filtreleyerek izinsiz değişiklikleri bulmak mümkün. Örneğin:
Bu, yürütülebilir dosyaların sistemde hangi kullanıcılar tarafından erişilebildiğini anlamaya yarar.
İlerlemesi gereken daha derin tarama: -exec ile bulunan dosyalar üzerinde otomatik kontrol adımları eklenebilir. Örneğin şüpheli bir dosyada hash hesaplayıp karşılaştırmak:
Bu yaklaşım, değişiklikleri kayıt altına almak ve later karşılaştırma için bir referans seti oluşturmak için uygundur.
Performans ve güvenlik notları: Büyük kök dizinlerinde tarama zaman alır, bu yüzden taramayı kademeli yapmak veya sınırlı bir alt ağaç üzerinde test etmek akıllıca olur. Ayrıca izinler ve kök kullanıcı hakları nedeniyle, find komutunu güvenli bir yöntemle çalıştırmak gerekir. -prune ile istenmeyen yolları atlayın ve çıktı için gerektiğinde less veya asteriks kullanın.
Pratik uygulama örneği: Belirli bir hizmetle ilişkili dosyaları kronolojik olarak incelemek için zaman damgalarını ve konumları birlikte görün:
Bu, veritabanı hizmetlerinin güncel dosyalarını hızlıca sıralı bir liste halinde sunar.
Kaynak güvenilirliği: Çıktılar üzerinde manuel doğrulama yaparken, dosya türünü (regular file, symlink, etc.) ve sembolik bağlantıları da görmek faydalıdır. -type f ile sadece regular file’ları, -type l ile symlink’leri hedef olarak ayırabilirsiniz.
Günlük dosyalarını, izin değişikliklerini ve zaman damgalarını içeren derin bir arama için find komutu tek başına güçlü bir araçtır. Aşağıda, sistem yöneticileri için pratik yöntemler ve örnekler paylaşacağım; amaç, geçmişteki işlemlerin izini sürmek ve güvenlik/performans sorunlarını hızlıca tespit etmek.
[olist]
KOD
1find /var/log -type f -mtime -7 -print Bu komut son 7 gün içinde değiştirilmiş dosyaları listeler; log dosyalarının güncelliğini hızlıca kontrol etmek için yararlı.
KOD
1find / -path '/proc' -prune -o -type f \( -name "[i].conf" -or -name "[/i].ini" \) -mtime -1 -mtime +0 -print
KOD
1find / -type f -perm /u+x -print
Bu, yürütülebilir dosyaların sistemde hangi kullanıcılar tarafından erişilebildiğini anlamaya yarar.
KOD
1find /home -type f -name '*.log' -mtime -2 -exec sha256sum {} \\; > /tmp/log_hashes.txt
Bu yaklaşım, değişiklikleri kayıt altına almak ve later karşılaştırma için bir referans seti oluşturmak için uygundur.
KOD
1find /var/lib/mysql /var/lib/postgresql -type f -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort -r | head -n 100
Bu, veritabanı hizmetlerinin güncel dosyalarını hızlıca sıralı bir liste halinde sunar.
Kısaca, find geçmişi incelemek için zaman damgaları, izinler ve konumlar üzerinde odaklanın; çıktıları düzgün filtreleyin, gerektiğinde otomatik kontrol adımları ekleyin ve performansı göz önünde bulundurun. Güvenlik olaylarının kök nedenlerini bulmak için sonraki adımları sistematik olarak planlayın.
