mod_log_forensic
Sunucuya yapılan isteklerin adli günlük kayıtlarının tutulması
Extension
mod_log_forensic.c
log_forensic_module
2.1 sürümünden beri mod_unique_id gerekmemektedir.

Bu modül istemci isteklerinin adli günlük kayıtlarının tutulmasını sağlar. Günlük kaydı bir istek işlenmeden önce ve sonra olmak üzere iki kere yapılır, böylece günlükte her istek için iki girdi bulunur. Adli günlükleyici çok sıkı kurallara tabidir, yani:

- Biçem sabittir. Günlük kayıt biçemi çalışma anında değiştirilemez.
- Veriyi yazamadığı takdirde çocuk süreç beklemeksizin çıkar ve (CoreDumpDirectory yapılandırmasına bağlı olarak) bir core dosyası dökümler.

Dağıtımın `support` dizininde bulunan `check_forensic` betiği adli günlük dosyalarının değerlendirilmesinde yardımcı olabilir.

Apache Günlük Dosyaları
mod_log_config

# Adli Günlük Biçemi

Her istek günlüğe iki defa kaydedilir. İlki, işlemin başlangıcında (yani, başlıklar alındıktan hemen sonra), ikincisi ise istek işlem gördükten sonra normal günlüklemenin yapıldığı sırada yapılır.

Her isteği betimlemek için eşsiz bir istek kimliği atanır. Bu adli kimliğin normal günlüğe de yazılması istenirse bu `%{forensic-id}n` biçem dizgesi ile yapılabilir. mod_unique_id kullanılıyorsa, onun ürettiği kimlik kullanılır.

İlk satır günlüğe, adli kimliği, istek satırını ve alınan tüm başlıkları boru karakterleri (`|`) ile ayrılmış olarak kaydeder. Aşağıda bir örneğe yer verilmiştir (hepsi bir satırdadır):

+yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 Firefox/0.8|Accept:image/png, etc...

Başlangıçtaki artı imi bu günlük satırının istekle ilgili ilk günlük kaydı olduğunu belirtir. İkinci satırda bunun yerini bir eksi imi alır:

-yQtJf8CoAB4AAFNXBIEAAAAA

`check_forensic` betiği komut satırı argümanı olarak günlük dosyasının ismini alır. Bu `+`/`-` kimlik çiftlerine bakarak tamamlanmamış istekler varsa bunlar hakkında uyarır.

# Güvenlik Kaygıları

Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları belgesinde açıklanmıştır.

ForensicLog
Adli günlük için dosya ismini belirler.
ForensicLog dosya-adı|borulu-süreç
server config
virtual host

ForensicLog yönergesi adli inceleme için sunucuya yapılan istekleri günlüğe kaydetmekte kullanılır. Her günlük girdisine, normal CustomLog yönergesinde kullanılarak istekle ilişkilendirilebilen eşsiz bir kimlik atanır. mod_log_forensic modülü, aktarım günlüğünün biçem dizgesinde `%{forensic-id}n` şeklinde kullanılmak üzere `forensic-id` adı verilen bir dizgecik oluşturur.

Günlüğün yazılacağı yeri belirleyen argüman şu iki değerden birini alabilir:

dosya-adı
  ServerRoot
  yönergesinin değerine göreli bir dosya ismi.
borulu-süreç
  "`|`" boru karakteri ile öncelenmiş olarak günlük bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut satırı). Program adının ServerRoot yönergesinin değerine göre belirtildiği varsayılır.

  # Güvenlik:

  Bir borulu süreç kullanılmışsa, süreç httpd’yi başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak programın güvenilir olması veya daha az yetkili bir kullanıcıya geçiş yapması önemlidir.

  # Bilginize

  Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı platformlarda bile yapılandırma dosyasında bu amaçla normal bölü çizgilerini kullanmaya özen gösterilmelidir.