Linux'ta Tüm Başarısız SSH Giriş Girişimleri Nasıl Bulunur?


SSH sunucusuna her giriş denemesi, Linux'taki rsyslog arka plan programı tarafından izlenir ve bir günlük dosyasına kaydedilir. Linux'ta tüm başarısız SSH oturum açma girişimlerini listeleyen en temel mekanizma, günlük dosyalarının cat komutu veya grep komutu yardımıyla görüntülenmesi ve filtrelenmesinin bir kombinasyonudur.

Linux'ta başarısız SSH oturum açma işlemlerinin bir listesini görüntülemek için bu kılavuzda sunulan komutlardan bazılarını çalıştırın. Bu komutların root ayrıcalıklarıyla yürütüldüğünden emin olun.

Başarısız olan tüm SSH girişlerini listelemek için en basit komut aşağıda gösterilen komuttur.

grep "Failed password" /var/log/auth.log

Aynı sonuca cat komutu verilerek de ulaşılabilir.

cat /var/log/auth.log | grep "Failed password"

Başarısız SSH girişleri hakkında ek bilgi görüntülemek için aşağıdaki örnekte gösterildiği gibi komutu verin.

egrep "Failed|Failure" /var/log/auth.log

CentOS veya RHEL'de başarısız olan SSH oturumları /var/log/secure dosyasına kaydedilir. Başarısız SSH oturum açma bilgilerini belirlemek için yukarıdaki komutu bu günlük dosyasına uygulayın.

egrep "Failed|Failure" /var/log/secure

CentOS veya RHEL'de başarısız SSH girişlerini görüntülemek için yukarıdaki komutun biraz değiştirilmiş bir versiyonu aşağıdaki gibidir.

grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure

SSH sunucusunda oturum açmayı deneyen ve başarısız olan tüm IP adreslerinin listesini, her bir IP adresinin başarısız deneme sayısıyla birlikte görüntülemek için aşağıdaki komutu verin.

grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

Daha yeni Linux dağıtımlarında, Systemd arka plan programı tarafından tutulan çalışma zamanı günlük dosyasını journalctl komutu aracılığıyla sorgulayabilirsiniz. Başarısız olan tüm SSH oturum açma denemelerini görüntülemek için, aşağıdaki komut örneklerinde gösterildiği gibi sonucu grep filtresi aracılığıyla yönlendirmelisiniz.

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
journalctl _SYSTEMD_UNIT=sshd.service | egrep "Failed|Failure"  #In RHEL, CentOS 

CentOS veya RHEL'de, aşağıdaki komut örneklerinde gösterildiği gibi SSH arka plan programı birimini sshd.service ile değiştirin.

journalctl _SYSTEMD_UNIT=sshd.service | grep "failure"
journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed"

Şüpheli kullanıcı hesapları veya geçersiz kullanıcı hesaplarıyla sisteme giriş yapmak için SSH sunucunuza sıklıkla saldıran IP adreslerini belirledikten sonra, başarısız SSH denemelerini engellemek için sisteminizin güvenlik duvarı kurallarını güncellemeli veya özel bir IP adresi kullanmalısınız. Bu saldırıları yönetmek için fail2ban gibi bir yazılım.