Cara Menemukan Semua Upaya Login SSH yang Gagal di Linux


Setiap upaya untuk masuk ke server SSH dilacak dan dicatat ke dalam file log oleh daemon rsyslog di Linux. Mekanisme paling dasar untuk mencantumkan semua upaya login SSH yang gagal di Linux adalah kombinasi menampilkan dan memfilter file log dengan bantuan perintah cat atau perintah grep.

Untuk menampilkan daftar login SSH yang gagal di Linux, jalankan beberapa perintah yang disajikan dalam panduan ini. Pastikan perintah ini dijalankan dengan hak akses root.

Perintah paling sederhana untuk mencantumkan semua login SSH yang gagal adalah yang ditunjukkan di bawah ini.

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

Hasil yang sama juga dapat dicapai dengan mengeluarkan perintah cat.

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

Untuk menampilkan informasi tambahan tentang login SSH yang gagal, jalankan perintah seperti yang ditunjukkan pada contoh di bawah ini.

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

Di CentOS atau RHEL, sesi SSH yang gagal dicatat dalam file /var/log/secure. Keluarkan perintah di atas terhadap file log ini untuk mengidentifikasi login SSH yang gagal.

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

Versi yang sedikit dimodifikasi dari perintah di atas untuk menampilkan login SSH yang gagal di CentOS atau RHEL adalah sebagai berikut.

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

Untuk menampilkan daftar semua alamat IP yang mencoba dan gagal masuk ke server SSH beserta jumlah upaya gagal setiap alamat IP, jalankan perintah di bawah ini.

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

Pada distribusi Linux yang lebih baru, Anda dapat menanyakan file log runtime yang dikelola oleh daemon Systemd melalui perintah journalctl. Untuk menampilkan semua upaya login SSH yang gagal, Anda harus menyalurkan hasilnya melalui filter grep, seperti yang diilustrasikan dalam contoh perintah di bawah.

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

Di CentOS atau RHEL, ganti unit daemon SSH dengan sshd.service, seperti yang ditunjukkan pada contoh perintah di bawah.

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

Setelah Anda mengidentifikasi alamat IP yang sering masuk ke server SSH Anda untuk masuk ke sistem dengan akun pengguna yang mencurigakan atau akun pengguna yang tidak valid, Anda harus memperbarui aturan firewall sistem Anda untuk memblokir upaya SSH yang gagal alamat IP atau gunakan alamat IP khusus perangkat lunak, seperti fail2ban untuk mengelola serangan ini.