หนึ่งในเวกเตอร์โจมตีเซิร์ฟเวอร์ที่พบบ่อยที่สุดคือความพยายามในการเข้าสู่ระบบแบบเดรัจฉาน นี่คือจุดที่ผู้โจมตีพยายามเข้าถึงเซิร์ฟเวอร์ของคุณโดยพยายามใช้ชื่อผู้ใช้และรหัสผ่านที่ผสมผสานกันไม่สิ้นสุด
สำหรับปัญหาประเภทนี้ วิธีแก้ปัญหาที่เร็วและมีประสิทธิภาพที่สุดคือ จำกัด จำนวนครั้งในการพยายามและบล็อกการเข้าถึงผู้ใช้หรือ IP นั้น ในช่วงเวลาหนึ่ง สิ่งสำคัญคือต้องทราบด้วยว่าในกรณีนี้ยังมีแอปพลิเคชันโอเพนซอร์สที่ออกแบบมาโดยเฉพาะเพื่อป้องกันการโจมตีประเภทนี้
ในโพสต์ของวันนี้ ฉันจะแนะนำคุณหนึ่งชื่อ Fail2Ban. Fail2004Ban พัฒนาโดย Cyril Jaquier ในปี 2 เป็นเฟรมเวิร์กซอฟต์แวร์ป้องกันการบุกรุกที่ปกป้องเซิร์ฟเวอร์จากการโจมตีด้วยกำลังดุร้าย
เกี่ยวกับ Fail2ban
Fail2ban จะสแกนไฟล์บันทึก (/ var / log / apache / error_log) และห้าม IP ที่แสดงกิจกรรมที่เป็นอันตราย เช่นรหัสผ่านที่ผิดพลาดมากเกินไปและค้นหาช่องโหว่เป็นต้น
โดยทั่วไปแล้ว, Fail2Ban ใช้เพื่ออัปเดตกฎไฟร์วอลล์เพื่อปฏิเสธที่อยู่ IP ตามระยะเวลาที่กำหนดแม้ว่าจะมีการกำหนดค่าการกระทำอื่นใดโดยพลการ (เช่นส่งอีเมล)
การติดตั้ง Fail2Ban บน Linux
Fail2Ban พบได้ในที่เก็บส่วนใหญ่ของ Linux ดิสทริบิวชันหลักและโดยเฉพาะอย่างยิ่งในส่วนที่ใช้มากที่สุดสำหรับการใช้งานบนเซิร์ฟเวอร์เช่น CentOS, RHEL และ Ubuntu
ในกรณีของ Ubuntu ให้พิมพ์สิ่งต่อไปนี้เพื่อทำการติดตั้ง:
sudo apt-get update && sudo apt-get install -y fail2ban
ในกรณีของ Centos และ RHEL ต้องพิมพ์ดังต่อไปนี้:
yum install epel-release
yum install fail2ban fail2ban-systemd
หากคุณมี SELinux สิ่งสำคัญคือต้องอัปเดตนโยบายด้วย:
yum update -y selinux-policy*
เมื่อเสร็จแล้วพวกเขาควรทราบในเบื้องหน้าว่าไฟล์คอนฟิกูเรชัน Fail2Ban อยู่ใน / etc / fail2ban
การกำหนดค่าของ Fail2Ban แบ่งออกเป็นสองไฟล์หลักเป็นหลัก; สิ่งเหล่านี้คือ fail2ban.conf และ jail.conf fail2ban.confes ไฟล์คอนฟิกูเรชัน Fail2Ban ที่ใหญ่กว่าซึ่งคุณสามารถกำหนดการตั้งค่าเช่น:
- ระดับบันทึก
- ไฟล์ที่จะเข้าสู่ระบบ
- ไฟล์ซ็อกเก็ตกระบวนการ
- ไฟล์ pid
jail.conf เป็นที่ที่คุณกำหนดค่าตัวเลือกต่างๆเช่น:
- การกำหนดค่าบริการเพื่อป้องกัน
- ระยะเวลาในการห้ามหากพวกเขาถูกโจมตี
- ที่อยู่อีเมลสำหรับส่งรายงาน
- การดำเนินการเมื่อตรวจพบการโจมตี
- ชุดการตั้งค่าที่กำหนดไว้ล่วงหน้าเช่น SSH
องค์ประกอบ
ตอนนี้เราจะไปยังส่วนการกำหนดค่า สิ่งแรกที่เราจะทำคือสำเนาสำรองของไฟล์ jail.conf ของเราด้วย:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
และเราดำเนินการแก้ไขทันทีด้วย nano:
nano /etc/fail2ban/jail.local
ด้านในเราไปที่ส่วน [ค่าเริ่มต้น] ซึ่งเราสามารถทำการปรับเปลี่ยนบางอย่างได้
ในส่วน "ingoreip" คือที่อยู่ IP ที่จะถูกทิ้งไว้ และ Fail2Ban จะถูกละเว้นโดยสิ้นเชิงนั่นคือ IP ของเซิร์ฟเวอร์ (โลคัล) และอื่น ๆ ที่คุณคิดว่าควรละเว้น
จากนั้นออกไป IP อื่น ๆ ที่ไม่สามารถเข้าถึงได้จะอยู่ในความเมตตาของการถูกแบน และรอจำนวนวินาทีที่จะถูกแบน (โดยค่าเริ่มต้นคือ 3600 วินาที) และ fail2ban นั้นจะทำงานหลังจากความพยายามล้มเหลว 6 ครั้งเท่านั้น
หลังจากการกำหนดค่าทั่วไปตอนนี้เราจะระบุบริการ Fail2Ban มีตัวกรองที่กำหนดไว้ล่วงหน้าสำหรับบริการต่างๆอยู่แล้ว ดังนั้นแค่ปรับเปลี่ยนบางอย่าง นี่คือตัวอย่าง:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
ด้วยการเปลี่ยนแปลงที่เกี่ยวข้องในที่สุดคุณจะต้องโหลด Fail2Ban ใหม่และทำงาน:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
เมื่อเสร็จแล้วให้ทำการตรวจสอบอย่างรวดเร็วเพื่อดูว่า Fail2Ban กำลังทำงานอยู่:
sudo fail2ban-client status
เลิกแบน IP
ตอนนี้เราแบน IP สำเร็จแล้วถ้าเราต้องการยกเลิกการแบน IP ล่ะ? ในการทำเช่นนั้นเราสามารถใช้ fail2ban-client อีกครั้งและบอกให้ยกเลิกการแบน IP เฉพาะดังตัวอย่างด้านล่าง
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
ที่ "xxx …." จะเป็นที่อยู่ IP ที่คุณระบุ