Selamlar,
Ubuntu'dan Debian 12'ye geçtiğimde ilk şaşırdığım şeylerden biri /var/log/auth.log dosyasının hiç oluşmaması oldu. rsyslog varsayılan kurulumda gelmiyor, her şey systemd journal içinde. Bu konuda "auth.log yok, SSH loglarım nerede?" diyenler için journalctl ile pratik bir rehber bırakıyorum.
Konuda Anlatılacaklar
- Neden auth.log yok?
- Servis adı: ssh mi, sshd mi?
- Zaman aralığı, çıktı formatı ve filtreler
- Dosyaya yazma ve Python ile birleştirme
- Kalıcı log isterseniz rsyslog kurmak
1) Neden auth.log Yok?
Debian 12 (Bookworm) ve sonrasında varsayılan kurulumda rsyslog paketi gelmez. Loglar binary olarak /var/log/journal altına yazılır. Ubuntu'da rsyslog hâlâ varsayılan olduğu için auth.log alışkanlığı devam ediyor. İkisi de doğru; sadece araç değişiyor.
2) Servis Adı Dikkat
Debian/Ubuntu paketlerinde OpenSSH servisinin birimi çoğu zaman ssh.service, bazı eski veya özel kurulumlarda sshd.service olabilir. Hangisi aktifse onu kullanın:
systemctl status ssh
# Unit ssh.service could not be found. ise:
systemctl status sshd3) Temel Komutlar
# Bugünün SSH logları, ham metin (scriptlere uygun)
sudo journalctl -u ssh --since today -o cat
# Son 2 saat, saat damgalı
sudo journalctl -u ssh --since "2 hours ago" -o short-iso
# Belirli bir IP'yi ara
sudo journalctl -u ssh --since yesterday | grep "198.51.100.7"
# Sadece hatalı denemeler
sudo journalctl -u ssh --since today | grep -E "Failed|Invalid user"[-o cat] satır başındaki zaman damgasını kaldırıdığı için Python regex'lerinizi temiz tutar. Zaman damgası istiyorsanız [-o short-iso] kullanın.
4) Dosyaya Yazma ve Script
Forumdaki Python SSH analiz scripti stdin okuyabiliyor. journalctl çıktısını doğrudan borulayabilirsiniz:
sudo journalctl -u ssh --since yesterday --until today -o cat | python3 ssh_tespit.py --esik 10Kalıcı bir günlük özet dosyası için:
sudo journalctl -u ssh --since yesterday --until today -o short-iso >> /var/log/ssh_gunluk.log5) Klasik auth.log İsterseniz
Zorunlu değil ama alışkanlık için rsyslog kurulabilir:
sudo apt update && sudo apt install -y rsyslog
sudo systemctl enable --now rsyslog
# Kısa süre sonra /var/log/auth.log oluşmaya başlarBen journalctl'ye alışmayı tercih ediyorum: tek komutla servis, zaman ve öncelik filtresi yapabiliyorsunuz.
Bonus: journald Boyut ve Kalıcılık
Laptop'ta lab çalıştırıyorsanız journal disk doldurabilir. /etc/systemd/journald.conf içinde SystemMaxUse=500M gibi bir sınır koyabilirsiniz. Kalıcı journal için /var/log/journal dizininin var olduğundan emin olun (Debian'da genelde vardır).
Ayrıca "öncelik" filtresi işe yarar:
sudo journalctl -u ssh -p err..alert --since todayKaynaklar
Alıntı:Yasal not: Yalnızca kendi yönettiğiniz sistemlerde kullanın. TCK 243-245.
Kapak: özgün TurkTeam görseli.