Konu Başlıkları Gizle
- 1 Bölüm 1: Log Nedir ve Neden Bu Kadar Önemli ?
- 2 Bölüm 2: Hangi Log Nerede? Temel Konumlar
- 3 Bölüm 3: Saldırı Türleri ve Log İmzaları (Nasıl Yakalarız?)
- 4 Bölüm 4: Gerçek Zamanlı İzleme Araçları (Gözümüz Kulağımız)
- 5 Bölüm 5: Log Analizi İçin Pratik Komutlar (Kopyala-Yapıştır)
- 6 Bölüm 6: Alarm ve Bildirim Sistemi Kurma
- 7 Bölüm 7: Log Yönetimi Tavsiyeleri
- 8 Bölüm 8: Gerçek Olay Analizi - Adım Adım
- 9 Bölüm 9: Sık Yapılan Hatalar (Yapmayın!)
- 10 Bölüm 10: Araçlar Listesi
- 11 Kopya kağıdı:
- 12 MERAKLISINA TEKNİK VE REFERANS KAYNAKLARLAR:
Selamlar arkadaşlar,
Geçen gece tam uykuya dalmışım, telefon zır zır çalıyor. “Hayırdır inşallah” dedim, baktım sunucu alarm veriyor. Kalktım PC’nin başına, bir baktım sisteme binlerce başarısız giriş denemesi var. Biri kafayı takmış, brute force ile şifreleri kırmaya çalışıyor. Peki ben bunu nasıl şak diye anladım? Tabii ki loglar sayesinde. O gece harbiden anladım ki bu loglar hayat kurtarıyor, arkadaşlar.
Bayağıdır aklımdaydı aslında böyle bir konu açmak. Tecrübelerimi aktarayım istedim. Hatalarımdan ders çıkarın ki siz de aynı çukura düşmeyin.
Bölüm 1: Log Nedir ve Neden Bu Kadar Önemli ?
Log'un Olayı Ne?Basitçe anlatayım; log, sistemde kuş uçsa kaydını tutan defterdir. Kim girdi, kaçta girdi, ne halt yedi, hangi dosyayı mıncıkladı... Hepsi burada yazar. Hani dükkanlarda güvenlik kamerası olur ya, onun görüntü değil de metin kaydeden versiyonunu düşünün. İşte log bu babacım.
Neden Önemli?
Bakın bi saldırı yediğinizde iki şeyi yapmanız lazım: 1. Saldırıyı durdur, 2. Mevzuyu anla. Saldırıyı durdurdun diyelim, peki herif nereden girdi? İçeride ne kadar hasar bıraktı? Arkada backdoor bıraktı mı? Bunların cevabı sadece loglarda var.
Log tutmuyorsanız veya düzgün yapılandırmadıysanız, zifiri karanlıkta el yordamıyla yol bulmaya çalışırsınız öyle diyim. Ben bunu çok acı bi şekilde öğrendim zamanında. Bi keresinde "disk doluyor yeaaa" diye gittim logları sildim. İki hafta sonra bi olay patladı, geriye dönük inceleme yapmam lazım ama log yok Elimiz boş döndük tabi. O günden beri log rotasyonu yaparım ama asla toptan silmem. Kulağınıza küpe olsun.
Bölüm 2: Hangi Log Nerede? Temel Konumlar
Şimdi gelelim fasulyenin faydalarına. Linux ve Windows tarafında işler biraz farklı yürüyor.Linux'ta Kritik Log Dosyaları
Genelde
/var/log altında toplanır bunlar. Benim ilk baktıklarım şunlar:-
/var/log/auth.log veya secure: Burası çok öneml. SSH girişleri, sudo kullanımları, patlayan şifre denemeleri burada. Saldırı var mı diye ilk buraya bakarım.-
/var/log/syslog veya messages: Sistemin genel günlüğü. Servis durdu mu, kernel bi şey mi dedi, hepsi burada.-/
var/log/apache2 veya /var/log/nginx: Web sunucusu kullanıyorsanız burası da çok önemli. access.log kimin girdiğini, error.log hataları yazar.-
/var/log/kern.log: Kernel seviyesinde olaylar. Donanım sıkıntısı falan varsa buraya düşer.-
/var/log/cron: Zamanlanmış görevler. Hackerlar genelde kalıcı olmak için buraya cron job eklemeyi sever, gözden kaçırmayın.Windows Tarafı
Windowsçular bilir, Event Viewer kullanılır. Üç ana başlık var: Security, System ve Application.
Ben genelde PowerShell kullanıyorum log çekmek için, arayüz bazen bayabiliyor. Şu komut hayat kurtarır:
Kod:
Get-EventLog -LogName Security -Newest 100 | Where-Object {$_.EventID -eq 4625}
Bölüm 3: Saldırı Türleri ve Log İmzaları (Nasıl Yakalarız?)
Geldik en heyecanlı kısma. Saldırıları loglardan nasıl tanırız?1. Brute Force Saldırıları
En sık gördüğüm olay. Elemanlar scripti dayıyor, binlerce parola deniyorlar. Logda şöyle bi manzara olur:
Kod:
Dec 19 03:14:22 server sshd[12345]: Failed password for root from 192.168.1.100 port 54321 ssh2
Dec 19 03:14:23 server sshd[12346]: Failed password for root from 192.168.1.100 port 54322 ssh2
Dec 19 03:14:24 server sshd[12347]: Failed password for root from 192.168.1.100 port 54323 ssh2
Dec 19 03:14:25 server sshd[12348]: Failed password for admin from 192.168.1.100 port 54324 ssh2
Tespit için şu tek satırlık canavarı kullanıyorum:
Kod:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn | head -20
2. SQL Injection Denemeleri
Web sunucu loglarında şöyle garip şeyler görürsünüz:
Kod:
192.168.1.50 - - [19/Dec/2025:10:15:33] "GET /page?id=1' OR '1'='1 HTTP/1.1" 200 4523
192.168.1.50 - - [19/Dec/2025:10:15:34] "GET /page?id=1; DROP TABLE users-- HTTP/1.1" 500 1234
OR 1=1, UNION SELECT falan uçuşuyorsa, biri veritabanınızı deşmeye çalışıyor demektir. 500 hatası dönmesi de genelde injection'ın tuttuğuna veya sistemi zorladığına işarettir.3. Directory Traversal
Kod:
192.168.1.60 - - [19/Dec/2025:11:20:15] "GET /../../../../etc/passwd HTTP/1.1" 400 0
192.168.1.60 - - [19/Dec/2025:11:20:16] "GET /..%2F..%2F..%2Fetc/passwd HTTP/1.1" 400 0
../ veya bunun şifreli hali %2F ifadesini görüyorsanız, biri sistem dosyalarına erişmeye çalışıyor. Ben bunu gördüğüm IP'yi direk bloklarım, acımam.4. Web Shell Yükleme
Kod:
192.168.1.70 - - [19/Dec/2025:14:30:22] "POST /upload.php HTTP/1.1" 200 45
192.168.1.70 - - [19/Dec/2025:14:30:25] "GET /uploads/shell.php?cmd=id HTTP/1.1" 200 123
?cmd= ile parametre geçiyor. Klasik web shell taktiği. Bunu görürseniz sistem büyük ihtimalle pwned olmuştur.5. Privilege Escalation (Yetki Yükseltme)
Kod:
Dec 19 15:45:12 server sudo: unauthorized_user : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/user ; COMMAND=/bin/bash
Dec 19 15:46:33 server kernel: [UFW BLOCK] IN=eth0 OUT= MAC=... SRC=192.168.1.100 DST=192.168.1.1 PROTO=TCP DPT=22
Bölüm 4: Gerçek Zamanlı İzleme Araçları (Gözümüz Kulağımız)
Fail2Ban: Otomatik SavunmaFail2Ban benim en yakın dostumdur valla. Logları izler, hatayı yakalar, IP'yi banlar. Mis.
Kurulum basit:
Kod:
sudo apt install fail2ban
/etc/fail2ban/jail.local dosyasına şunu yazın yeter:
Kod:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
GoAccess: Görsel Sevenlere
Web loglarını siyah ekrandan okumak zor geliyorsa GoAccess kurun, terminalde renkli menkli dashboard yapıyor.
Kod:
sudo apt install goaccess
goaccess /var/log/nginx/access.log -c
ELK Stack: Büyük Oyuncular İçin
Elasticsearch, Logstash, Kibana... Eğer sisteminiz büyükse bu şart arkadaşlar. Tüm logları tek yere toplar, grafik çizer, arama yaptırır. Kurulumu biraz kanser edebilir (Logstash configleri falan) ama kurunca dünya var mış diyorsunuz.
Logstash için basit bi config örneği vereyim (auth.log için):
Kod:
input {
file {
path => "/var/log/auth.log"
type => "auth"
}
}
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:hostname} %{WORD:program}\[%{NUMBER:pid}\]: %{GREEDYDATA:message}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "security-logs-%{+YYYY.MM.dd}"
}
}
Bölüm 5: Log Analizi İçin Pratik Komutlar (Kopyala-Yapıştır)
Bunlar benim elim kolum, sürekli kullandığım tek satırlık komutlar.-Son başarısız SSH girişleri:
Kod:
grep "Failed password" /var/log/auth.log | tail -50
-Belirli bi IP ne halt etmiş:
Kod:
grep "192.168.1.100" /var/log/auth.log
-Bugün kim sudo kullanmış:
Kod:
grep "$(date +%b\ %d)" /var/log/auth.log | grep "sudo"
-Web sunucusunu en çok darlayan IP'ler:
Kod:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
-404 hataları (biri siteyi tarıyor olabilr):
Kod:
awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
-Belli saat aralığına bakmak:
Kod:
awk '$4 >= "[19/Dec/2025:10:00" && $4 <= "[19/Dec/2025:12:00"' /var/log/nginx/access.log
AWK ile biraz şov yapalım:
AWK log analizinde mükemmeldir.
- Saat bazında yoğunluk:
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f2 | sort | uniq -c-Response kodları (200, 404, 500 vs):
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn-Ortalama boyut:
awk '{sum+=$10; count++} END {print sum/count}' /var/log/nginx/access.logBölüm 6: Alarm ve Bildirim Sistemi Kurma
Sürekli ekrana bakacak halimiz yok ya, bırakın scriptler baksın.Basit Bash Script (E-posta için)
Bunu cron'a atın saat başı çalışsın.
Kod:
#!/bin/bash
THRESHOLD=50
LOG_FILE="/var/log/auth.log"
ALERT_EMAIL="[email protected]"
# Son 1 saatteki falsolu girişleri say
FAILED_COUNT=$(grep "Failed password" $LOG_FILE | grep "$(date -d '1 hour ago' '+%b %d %H')" | wc -l)
if [ $FAILED_COUNT -gt $THRESHOLD ]; then
echo "UYARI: Son 1 saatte $FAILED_COUNT başarısız giriş denemesi!" | mail -s "Güvenlik Uyarısı" $ALERT_EMAIL
fi
0 * * * */path/to/security_check.shTelegram Botu (Benim Tercihim)
Mail artık yavaş kalıyor ve kullanışsız bana kalırsa, ben Telegram kullanıyorum.
Kod:
#!/bin/bash
BOT_TOKEN="your_bot_token"
CHAT_ID="your_chat_id"
MESSAGE="$1"
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE" \
-d parse_mode="HTML"
Bölüm 7: Log Yönetimi Tavsiyeleri
Log Rotasyonu: Loglar diski doldurmasın./etc/logrotate.d/ altından ayar çekin.
Kod:
/var/log/auth.log {
weekly
rotate 52
compress
delaycompress
missingok
notifempty
create 640 root adm
}
Merkezi Loglama: Birden çok sunucu varsa rsyslog ile hepsini tek sunucuya atın.
Gönderen: *.* @@logserver.example.com:514- Alan:
module(load="imtcp") input(type="imtcp" port="514")
Log Bütünlüğü: Hacker girerse ilk iş logları siler. O yüzden logları başka sunucuya atmak şart. Hatta paranoyaksanız hash'ini alın değiştirilmiş mi diye.
Bölüm 8: Gerçek Olay Analizi - Adım Adım
Geçen bi sunucuda CPU %100'e yapışmış inmiyor. Dedim hayırdır coin mi kazıyoruz birader?Hemen top komutuyla baktım, garip isimli bi process var işlemciyi sömüren.
Adım 1: Durumu anla.
top, ps aux | head -20, netstat -tulpn komutlarını yapıştırdım. Garip bi process var, ismi masum duruyor ama işlemciyi sömürüyor.Adım 2: Auth loglarına koş.
grep "Accepted" /var/log/auth.log | tail -20 dedim.Hoppala! Alakasız bi saatte, Çin'den bi IP'den SSH girişi var.
Adım 3: Ne yapmış bu eleman?
grep "username" /var/log/auth.log ve last username ile baktım. Hesap ele geçirilmiş.Adım 4: Bash history temizlememiş mi?
cat /home/username/.bash_historyEnayiye bak
Adım 5: Nereye bağlanıyor?
netstat -an | grep ESTABLISHEDDışarıda bi mining havuzuna bağlantı var.
Adım 6: Operasyon.
Process'i kill ettim, hesabı kilitledim, SSH keyleri sıfırladım, firewall'u kapattım. Sonra incelemek için imajını aldım makinenin.
Bölüm 9: Sık Yapılan Hatalar (Yapmayın!)
-Loglara Bakmamak: Kurup bırakmayın. Saldırı olmuş aylar sonra ruhunuz duyuyor. Otomatik alarm kurun bari.-Yetersiz Log: Özellikle web uygulamalarında detaylı logu açın. Olay olunca "keşke açsaydım" demek kurtarmıyor.
-Erken Silmek: "Yerim yok" diye 1 haftalık log tutmayın. En az 90 gün, ideali 1 yıl kalsın.
-Saat Ayarı (NTP): Sunucuların saati tutmazsa logları birleştiremezsiniz. NTP kurun mutlaka.
sudo apt install ntp-Tek Kaynağa Güvenmek: Sadece
auth log yetmez. Database, web, app hepsine bakın.Bölüm 10: Araçlar Listesi
Log Analizi:●GoAccess (Görselci)
●Graylog (Merkezi yönetim)
●Splunk (Parası olan enterprise abiler için)
●ELK Stack (Güçlü ve açık kaynak)
Saldırı Tespiti:
●Fail2Ban (Olmazsa olmaz)
●OSSEC (Host tabanlı)
●Suricata (Network tabanlı)
●Wazuh (OSSEC'in daha modern hali, tavsiye ederim)
Forensic:
●Autopsy, Volatility, The Sleuth Kit (Bunlar biraz ileri seviye)
Yardımcılar:
●jq (JSON logları okumak için birebir)
●multitail (Aynı anda çok log izlemek için)
●lnav (Renkli menkli log gezgini)
Kopya kağıdı:
| Ne Arıyorsun? | Nereye Bak | Komut |
|---|---|---|
| SSH brute force | /var/log/auth.log | grep "Failed password" auth.log |
| Başarılı girişler | /var/log/auth.log | grep "Accepted" auth.log |
| Sudo kullanımı | /var/log/auth.log | grep "sudo" auth.log |
| Web taraması | access.log | awk '$9 == 404' access.log |
| SQL injection | access.log | grep -E "(union... |
| Sistem hataları | /var/log/syslog | grep -i error syslog |
Arkadaşlar bu iş "kurdum bitti" işi değil. Savunma sürekli bi süreç.
Başta karışık gelebilir, "bu kadar loga nasıl bakıcam" diyebilirsiniz. Ufak başlayın. Önce auth.log takibi yapın, Fail2Ban kurun. Sonra web loglarına geçersiniz. Yavaş yavaş oturur her şey, saygılar.
MERAKLISINA TEKNİK VE REFERANS KAYNAKLARLAR:
Arkadaşlar, yukarıda anlattıklarım tecrübe ama bu işin bir de kitabı, okulu var. "Ben bu işi derinlemesine öğreneceğim", "Sektöre gireceğim" diyenler için kaynaklar.1. Kutsal Kitaplar(Standartlar ve Rehberler)
Bu işin raconunu kesen abiler bunlar. Biraz dili ağırdır ama işin anayasası burasıdır.
Bu işin raconunu kesen abiler bunlar. Biraz dili ağırdır ama işin anayasası burasıdır.
- NIST SP 800-92 (Guide to Computer Security Log Management): Arkadaşlar bu işin İncil'i budur. Amerikan Standartlar Enstitüsü yazmış. "Hangi log ne kadar saklanmalı, ne loglanmalı?" sorusunun cevabı burada. (PDF'i internette ücretsiz, biraz uzun ama.)
- OWASP Logging Cheat Sheet: Web güvenliği diyince akla OWASP gelir. Geliştirici arkadaşlar için "Uygulamanın neresine log koyayım?" rehberi. Mutlaka bakın.
- SANS Institute Whitepapers: SANS bu işin Harvard'ı. "Log Analysis" diye aratın, binlerce makale var. Özellikle "Detecting Incidents with Log Analysis" temalı makaleleri efsanedir.
Ezber yapmaya gerek yok, bunları indirin, masanızın yanına asın.
- SANS Linux Command Line Cheat Sheet: grep, awk, sed komutlarını unutanlar için hayat kurtarır.
- SQL Injection Prevention Cheat Sheet: Yukarıda anlattığım SQL açıklarını kapatmak için rehber.
- Regex101.com: Kaynak değil ama araç. Log parse ederken Regex (Düzenli İfadeler) yazmanız gerekecek ve saç baş yolacaksınız. Bu site yazdığınız regex'i anlık test eder, ne yaptığını açıklar. Benim elim ayağım.
3. Tool'ların Resmi Dökümanları
Hani "Read The F*cking Manual" derler ya, heh işte o. Blog yazıları eskiyebilir ama buralar hep güncel.
- Fail2Ban Wiki: GitHub sayfalarındaki wiki çok sağlamdır. Hangi jail nasıl yazılır, regex nasıl test edilir her şey var.
- Elastic (ELK) Documentation: Derya deniz. Kibana'da query (sorgu) nasıl yazılır, Logstash filtreleri nasıl kurulur? Başka yere bakmaya gerek yok.
- GoAccess Man Page: Terminalde man goaccess yazmak yerine sitesindeki interaktif demoya ve dökümana bakın, çok pratik.
Okumakla olmuyor, klavyeyi eskitmek lazım.
- Blue Team Labs Online (BTLO): Savunma tarafı (Blue Team) için harika senaryolar var. "Şu log dosyasını indir, saldırganı bul" diyor. Tam dedektifçilik oyunu

- TryHackMe - SOC Level 1 Path: Buradaki eğitim yolu sıfırdan alır, log analizine, SIEM kullanımına kadar götürür. Ücretli kısımları var ama değer.
- Hack The Box (Sherlocks): Yeni çıktı sayılır. Sadece savunma ve forensic (adli bilişim) üzerine senaryolar. Baya terletir ama çok şey öğretir.
- Reddit r/sysadmin ve r/netsec: Dünya genelindeki sistemciler burada ağlıyor veya çözüm paylaşıyor
Gündemi takip etmek için birebir. - Twitter (X) InfoSec Camiası: Florian Roth (@cyb3rops) abimizi takip edin. Kendisi YARA kurallarının ve log analizinin piri sayılır. Paylaştığı tool'lar efsane.
Link veremiyorum (reklam olmasın diye) ama isimleri Google'a yazdığınız an en tepede çıkacaktır hepsi. Kolay gelsin.
Son düzenleyen: Moderatör: