ค้นหาเว็บไซต์

วิธีค้นหาความพยายามเข้าสู่ระบบ SSH ที่ล้มเหลวทั้งหมดใน Linux


ความพยายามเข้าสู่ระบบเซิร์ฟเวอร์ SSH แต่ละครั้งจะถูกติดตามและบันทึกลงในไฟล์บันทึกโดย rsyslog daemon ใน Linux กลไกพื้นฐานที่สุดในรายการความพยายามเข้าสู่ระบบ SSH ที่ล้มเหลวทั้งหมดใน Linux คือการผสมผสานระหว่างการแสดงและการกรองไฟล์บันทึกด้วยความช่วยเหลือของคำสั่ง cat หรือคำสั่ง grep

เพื่อแสดงรายการการเข้าสู่ระบบ SSH ที่ล้มเหลวใน Linux ให้ใช้คำสั่งบางคำสั่งที่แสดงในคู่มือนี้ ตรวจสอบให้แน่ใจว่าคำสั่งเหล่านี้ดำเนินการด้วยสิทธิ์รูท

คำสั่งที่ง่ายที่สุดในการแสดงรายการการเข้าสู่ระบบ SSH ที่ล้มเหลวทั้งหมดคือคำสั่งที่แสดงด้านล่าง

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

ผลลัพธ์เดียวกันนี้สามารถทำได้โดยการออกคำสั่ง cat

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

เพื่อแสดงข้อมูลเพิ่มเติมเกี่ยวกับการเข้าสู่ระบบ SSH ที่ล้มเหลว ให้ออกคำสั่งตามที่แสดงในตัวอย่างด้านล่าง

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

ใน CentOS หรือ RHEL เซสชัน SSH ที่ล้มเหลวจะถูกบันทึกในไฟล์ /var/log/secure ออกคำสั่งข้างต้นกับไฟล์บันทึกนี้เพื่อระบุการเข้าสู่ระบบ SSH ที่ล้มเหลว

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

คำสั่งด้านบนเวอร์ชันที่แก้ไขเล็กน้อยเพื่อแสดงการเข้าสู่ระบบ SSH ที่ล้มเหลวใน CentOS หรือ RHEL มีดังนี้

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

หากต้องการแสดงรายการที่อยู่ IP ทั้งหมดที่พยายามและล้มเหลวในการเข้าสู่เซิร์ฟเวอร์ SSH ควบคู่ไปกับจำนวนครั้งที่พยายามล้มเหลวของแต่ละที่อยู่ IP ให้ออกคำสั่งด้านล่าง

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

ใน Linux รุ่นใหม่ คุณสามารถค้นหาไฟล์บันทึกรันไทม์ที่ดูแลโดย Systemd daemon ผ่านคำสั่ง journalctl เพื่อที่จะแสดงความพยายามเข้าสู่ระบบ SSH ที่ล้มเหลวทั้งหมด คุณควรไปป์ผลลัพธ์ผ่านตัวกรอง grep ดังที่แสดงในตัวอย่างคำสั่งด้านล่าง

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

ใน CentOS หรือ RHEL ให้แทนที่หน่วย SSH daemon ด้วย sshd.service ดังที่แสดงในตัวอย่างคำสั่งด้านล่าง

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

หลังจากที่คุณระบุที่อยู่ IP ที่เข้าถึงเซิร์ฟเวอร์ SSH ของคุณบ่อยครั้งเพื่อเข้าสู่ระบบด้วยบัญชีผู้ใช้ที่น่าสงสัยหรือบัญชีผู้ใช้ที่ไม่ถูกต้อง คุณควรอัปเดตกฎไฟร์วอลล์ระบบของคุณเพื่อบล็อกการพยายามใช้ SSH ที่ล้มเหลวที่อยู่ IP หรือใช้อุปกรณ์พิเศษ ซอฟต์แวร์เช่น Fail2ban เพื่อจัดการการโจมตีเหล่านี้