Fail2Ban เป็นตัวเลือกที่ยอดเยี่ยมในการขับไล่การโจมตีที่ดุร้ายบนเซิร์ฟเวอร์ของคุณ

fail2ban

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

สำหรับปัญหาประเภทนี้ วิธีแก้ปัญหาที่เร็วและมีประสิทธิภาพที่สุดคือ จำกัด จำนวนครั้งในการพยายามและบล็อกการเข้าถึงผู้ใช้หรือ 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 ที่คุณระบุ