วิธีการติดตั้ง Fail2ban บนเซิร์ฟเวอร์ Ubuntu 18.04

ทำให้ดีขึ้น ความปลอดภัยของเซิร์ฟเวอร์ Ubuntu ผ่านการเพิ่มระบบตรวจจับการบุกรุก เพื่อที่คุณอาจจะต้องการหันไป Fail2ban. Fail2ban ตรวจสอบไฟล์บันทึกเฉพาะ (พบภายในไฟล์ /var/log ไดเรกทอรี) สำหรับการพยายามเข้าสู่ระบบที่ล้มเหลวหรือการโจมตีอัตโนมัติ เมื่อ Fail2ban ตรวจพบการพยายามประนีประนอมจากที่อยู่ IP มันจะบล็อกที่อยู่ IP (โดยการเพิ่มสายโซ่ใหม่ให้กับระบบรักษาความปลอดภัย iptables) จากการเข้าสู่เซิร์ฟเวอร์

ในการติดตั้ง Fail2ban คุณต้องเข้าถึงเชลล์บน Ubuntu Server เวอร์ชันใดก็ได้ที่รองรับ ด้วยบัญชีที่มีสิทธิ์ sudo ซึ่งทำให้สามารถติดตั้งแพ็คเกจซอฟต์แวร์ใหม่ได้

rv-locks
Irakli / Abashidze / EyeEm / Getty Images

วิธีการติดตั้ง Fail2ban

ติดตั้ง Fail2ban โดยใช้ Apt. วิธีที่ดีที่สุดคือทำการติดตั้งบนแพลตฟอร์มเซิร์ฟเวอร์ที่อัปเดตใหม่ และหากเวอร์ชันเคอร์เนลอัปเดต ให้รีบูตเซิร์ฟเวอร์ก่อนที่คุณจะติดตั้ง Fail2ban

หลังจากการติดตั้งเสร็จสิ้น ให้เริ่มต้นและเปิดใช้งาน Fail2ban ด้วยคำสั่งสองคำสั่งต่อไปนี้:

sudo systemctl start fail2ban
sudo systemctl เปิดใช้งาน fail2ban

Fail2ban กำลังทำงานอยู่บนระบบและพร้อมที่จะกำหนดค่า

กำหนดค่า Fail2ban

Fail2ban ได้รับการกำหนดค่าโดยใช้คุก คุกกำหนดวิธีที่บริการตรวจสอบและวิธีดำเนินการกับการโจมตีอย่างรวดเร็ว

นอกกรอบระบบปลอดภัยอยู่แล้ว อย่างไรก็ตาม ยังมีความยืดหยุ่นสูงอีกด้วย ไฟล์กำหนดค่าหลักคือ /etc/fail2ban/jail.conf. อย่าแก้ไขไฟล์นั้น ให้สร้างไฟล์ใหม่ที่มีนามสกุล .local แทน Fail2ban อ่านไฟล์ .conf ก่อนเสมอ และไฟล์ .local เป็นอันดับสอง การกำหนดค่าใดๆ ที่อ่านในไฟล์ .local จะแทนที่การกำหนดค่าที่คล้ายกันในไฟล์ .conf

ตัวอย่างการกำหนดค่า

สมมติว่าคุณต้องการสร้างคุกแบบกำหนดเองสำหรับ Secure Shell daemon ที่จะ:

  • มอนิเตอร์ /var/log/auth.log
  • ใช้ตัวกรอง sshd ของ fail2ban เริ่มต้น
  • ตั้งค่าพอร์ต SSH เป็น 22
  • ตั้งค่าการลองใหม่สูงสุดเป็น 3

การปรับแต่ง ssh ใน .local jail จะแทนที่การกำหนดค่าที่คล้ายกันที่พบในไฟล์การกำหนดค่าหลัก jail.conf (เช่น การลองใหม่สูงสุดเริ่มต้นใน jail.conf ตั้งไว้ที่ 5) ด้วยคุกนี้ในสถานที่ถ้าบุคคล (หรือบอท) ล้มเหลวและ เข้าสู่ระบบ SSH พยายามสามครั้งต้นกำเนิด ที่อยู่ IP จะถูกห้าม

ในการกำหนดค่านี้ ให้ออกคำสั่ง:

sudo nano /etc/fail2ban/jail.local. 

ในไฟล์ใหม่นี้ ให้วางเนื้อหาต่อไปนี้:

[sshd]
เปิดใช้งาน = จริง
พอร์ต = 22
ตัวกรอง = sshd
logpath = /var/log/auth.log
แม็กซ์เรทรี่ = 3

บันทึกและปิดไฟล์ จากนั้นรีสตาร์ท Fail2ban ด้วยคำสั่ง:

sudo systemctl รีสตาร์ท fail2ban 

ทดสอบ Fail2ban

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

สกรีนช็อตของ Fail2ban ที่บล็อกที่อยู่ IP

แม้ว่าคุณจะพยายาม SSH กลับเข้ามาในเซิร์ฟเวอร์จากที่อยู่ IP เดียวกัน การเข้าถึงก็ยังถูกปฏิเสธ

เลิกบล็อกที่อยู่ IP

เลิกแบน IP ด้วยคำสั่ง fail2ban-client (ซึ่งติดตั้งพร้อมกับ fail2ban) ดังนี้:

sudo fail2ban-client ตั้งค่า sshd unbanip 192.168.1.100