ฉันต้องการดูว่ามีคนพยายามลงชื่อเข้าใช้ด้วยการเดรัจฉานบังคับเข้าสู่เซิร์ฟเวอร์ Ubuntu 12.04 ของฉันผ่าน SSH หรือไม่ ฉันจะดูได้อย่างไรว่ามีกิจกรรมดังกล่าวเกิดขึ้น?
ฉันต้องการดูว่ามีคนพยายามลงชื่อเข้าใช้ด้วยการเดรัจฉานบังคับเข้าสู่เซิร์ฟเวอร์ Ubuntu 12.04 ของฉันผ่าน SSH หรือไม่ ฉันจะดูได้อย่างไรว่ามีกิจกรรมดังกล่าวเกิดขึ้น?
คำตอบ:
/var/log/auth.log
ทุกความพยายามในการเข้าสู่ระบบเข้าสู่ระบบเพื่อ
เปิดเทอร์มินัลแล้วพิมพ์ด้านล่าง ถ้ามันยาวกว่า 1 หน้าคุณจะสามารถเลื่อนขึ้นและลง พิมพ์q
ถึงทางออก:
grep sshd.\*Failed /var/log/auth.log | less
นี่คือตัวอย่างจริงจากหนึ่งใน VPS ของฉัน:
18 สิงหาคม 11:00:57 izxvps sshd [5657]: รหัสผ่านล้มเหลวสำหรับรูทจาก 95.58.255.62 พอร์ต 38980 ssh2 18 สิงหาคม 23:08:26 izxvps sshd [5768]: รหัสผ่านล้มเหลวสำหรับรูตจาก 91.205.189.15 พอร์ต 38156 ssh2 18 สิงหาคม 23:08:30 izxvps sshd [5770]: รหัสผ่านที่ล้มเหลวสำหรับใครจาก 91.205.189.15 พอร์ต 38556 ssh2 18 สิงหาคม 23:08:34 izxvps sshd [5772]: รหัสผ่านล้มเหลวสำหรับผู้ใช้ที่ไม่ถูกต้องจันจาก 91.205.189.15 พอร์ต 38864 ssh2 18 สิงหาคม 23:08:38 izxvps sshd [5774]: รหัสผ่านล้มเหลวสำหรับผู้ใช้ที่ไม่ถูกต้อง sjobeck จาก 91.205.189.15 พอร์ต 39157 ssh2 18 สิงหาคม 23:08:42 izxvps sshd [5776]: รหัสผ่านล้มเหลวสำหรับรูตจาก 91.205.189.15 พอร์ต 39467 ssh2
ใช้คำสั่งนี้:
grep sshd.*Did /var/log/auth.log | less
ตัวอย่าง:
5 สิงหาคม 22:19:10 izxvps sshd [7748]: ไม่ได้รับสายอักขระประจำตัวจาก 70.91.222.121 10 ส.ค. 19:39:49 izxvps sshd [1919]: ไม่ได้รับสายระบุจาก 50.57.168.154 13 สิงหาคม 23:08:04 izxvps sshd [3562]: ไม่ได้รับสายระบุจาก 87.216.241.19 17 ส.ค. 15:49:07 izxvps sshd [5350]: ไม่ได้รับสายอักขระประจำตัวจาก 211.22.67.238 19 ส.ค. 06:28:43 izxvps sshd [5838]: ไม่ได้รับสายระบุจาก 59.151.37.10
/var/log/secure
systemctl -eu sshd
ฉันจะยืนยันว่าบันทึกการตรวจสอบเป็นวิธีการแก้ปัญหาที่อ่อนแอโดยเฉพาะอย่างยิ่งถ้าคุณมีรหัสผ่านที่อ่อนแอในบัญชี ความพยายามของสัตว์เดรัจฉานมักจะลองอย่างน้อยหลายร้อยปุ่มต่อนาที แม้ว่าคุณจะมีชุดงาน cron เพื่อส่งอีเมลถึงคุณถึงความพยายามอันโหดร้ายมันอาจจะเป็นชั่วโมงก่อนที่คุณจะไปถึงเซิร์ฟเวอร์ของคุณ
fail2ban
ฉันจะขอแนะนำ วิกิของพวกเขาพูดว่าอะไรดีกว่าที่ฉันสามารถทำได้
Fail2ban สแกนไฟล์บันทึก (เช่น
/var/log/apache/error_log
) และแบนไอพีที่แสดงสัญญาณที่เป็นอันตราย - มีความล้มเหลวของรหัสผ่านมากเกินไปการหาช่องโหว่ ฯลฯ โดยทั่วไปแล้ว Fail2Ban ใช้ในการอัพเดทกฎไฟร์วอลล์เพื่อปฏิเสธที่อยู่ IP ตามระยะเวลาที่กำหนด การกระทำอื่นโดยพลการ (เช่นการส่งอีเมลหรือถาดใส่ซีดีรอมออก) สามารถกำหนดค่าได้ Fail2Ban มาพร้อมกับตัวกรองสำหรับบริการต่าง ๆ (apache, curier, ssh, etc)
sudo apt-get install fail2ban
ได้รับการคุ้มครองจากมันเป็นง่ายๆเป็น
โดยค่าเริ่มต้นทันทีที่ใครบางคนมีความพยายามที่ล้มเหลวสามครั้ง IP ของพวกเขาจะถูกแบนห้านาที การหน่วงเวลาแบบนั้นจะหยุดความพยายามกำลังดุร้ายของ SSH แต่จะไม่ทำลายวันของคุณหากคุณลืมรหัสผ่าน (แต่คุณควรใช้รหัสต่อไป!)