โลโก้ Fail2ban
อันดับ 42 ใน Top 100 Security และ FirewallGPLv2 (โอเพนซอร์ส)

Fail2ban คืออะไร และวิธีตั้งค่าป้องกันการเดารหัสผ่าน

Fail2ban คือเครื่องมือที่คอยอ่าน Log ของเซิร์ฟเวอร์ แล้วบล็อกไอพีที่พยายามเข้าสู่ระบบผิดซ้ำ ๆ โดยอัตโนมัติ เป็นด่านแรกที่ทุกเซิร์ฟเวอร์ที่เปิดสู่อินเทอร์เน็ตควรมี

หมวดหมู่
Security และ Firewall
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
ใช้ร่วมกับงานเดิม · RAM ไม่กี่สิบเมกะไบต์
ไลเซนส์
GPLv2 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Fail2ban คืออะไร

เซิร์ฟเวอร์ที่เพิ่งเปิดสู่อินเทอร์เน็ตจะเริ่มถูกบอทลองเดารหัสผ่าน SSH ภายในไม่กี่ชั่วโมง Fail2ban แก้ปัญหานี้ด้วยการอ่าน Log หาความพยายามที่ล้มเหลว แล้วสั่ง Firewall บล็อกไอพีนั้นชั่วคราวเมื่อเกินจำนวนครั้งที่กำหนด

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

Fail2ban ไม่ได้ทดแทนการตั้งค่าความปลอดภัยพื้นฐาน เช่น การใช้คีย์ SSH แทนรหัสผ่าน แต่ช่วยลดสัญญาณรบกวนและลดโอกาสที่บอทจะเดาถูกได้อย่างมีนัยสำคัญ

แผนผังการวางระบบ Fail2ban บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 22, 80 / 443 ตัว Fail2ban และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ ใช้ร่วมกับงานเดิม แรม ไม่กี่สิบเมกะไบต์ และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Fail2ban ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Fail2ban

บล็อกอัตโนมัติตามจำนวนครั้งที่ล้มเหลว

กำหนดได้ว่ากี่ครั้งภายในกี่นาทีจึงบล็อก และบล็อกนานเท่าใด

รองรับหลายบริการ

มีชุดกฎสำเร็จรูปสำหรับ SSH, Nginx, Apache, Postfix, Dovecot และอื่น ๆ

เขียนกฎเองได้

สร้างรูปแบบการอ่าน Log สำหรับแอปที่พัฒนาเองได้ไม่ยาก

ทำงานร่วมกับ Firewall ของระบบ

สั่งกฎผ่าน nftables หรือ iptables โดยตรง จึงบล็อกได้ตั้งแต่ชั้นเครือข่าย

ใช้ Fail2ban ทำอะไรได้บ้าง

  • ป้องกันการเดารหัสผ่าน SSH บนทุก Cloud Server ที่เปิดสู่อินเทอร์เน็ต
  • ลดการโจมตีหน้าเข้าสู่ระบบของ WordPress
  • ป้องกันการเดารหัสผ่านบัญชีอีเมลบนเมลเซิร์ฟเวอร์
  • ลดปริมาณ Log ขยะที่เกิดจากบอทสแกน

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Fail2ban 3 ระดับ เริ่มจาก ใช้ร่วมกับงานเดิม แรม ไม่กี่สิบเมกะไบต์ ดิสก์ ไม่ถึง 1 GB ไปจนถึง 4 vCPU แรม 8 GB ดิสก์ NVMe 80 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
ทุกเครื่องติดตั้งเสริมบนเซิร์ฟเวอร์ที่มีอยู่ใช้ร่วมกับงานเดิมไม่กี่สิบเมกะไบต์ไม่ถึง 1 GB
เว็บที่ถูกโจมตีบ่อยเว็บที่มี Log จำนวนมากให้ประมวลผล2 vCPU4 GBNVMe 40 GB
เมลเซิร์ฟเวอร์ระบบที่มีความพยายามเข้าสู่ระบบจำนวนมากตลอดเวลา4 vCPU8 GBNVMe 80 GB

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Fail2ban บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Linux ที่ใช้ systemd เช่น Ubuntu Server 24.04 LTS
  • Firewall ของระบบ (nftables หรือ iptables)
  • บริการที่เขียน Log ในรูปแบบที่อ่านได้

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้ง Fail2ban

    sudo apt update
    sudo apt -y install fail2ban
    sudo systemctl enable --now fail2ban
  2. 2

    สร้างไฟล์ตั้งค่าของตัวเอง

    อย่าแก้ไฟล์ jail.conf โดยตรงเพราะจะถูกเขียนทับตอนอัปเดต ให้สร้าง jail.local แทน

    sudo nano /etc/fail2ban/jail.local
  3. 3

    ตั้งค่าพื้นฐานและเปิดกฎสำหรับ SSH

    ignoreip คือไอพีที่จะไม่ถูกบล็อกเด็ดขาด ให้ใส่ไอพีสำนักงานไว้เพื่อกันตัวเองถูกล็อกออกจากเครื่อง

    [DEFAULT]
    bantime = 1h
    findtime = 10m
    maxretry = 5
    ignoreip = 127.0.0.1/8 203.0.113.10
    
    [sshd]
    enabled = true
    maxretry = 3
    bantime = 24h
  4. 4

    เพิ่มกฎป้องกันหน้าเข้าสู่ระบบของ WordPress

    ต้องสร้างไฟล์ filter ที่จับรูปแบบการเรียก wp-login.php ที่ล้มเหลวจาก Log ของ Nginx ด้วย

    [wordpress-auth]
    enabled = true
    port = http,https
    filter = wordpress-auth
    logpath = /var/log/nginx/access.log
    maxretry = 5
    bantime = 6h
  5. 5

    รีสตาร์ตและตรวจสถานะ

    sudo systemctl restart fail2ban
    sudo fail2ban-client status
    sudo fail2ban-client status sshd
  6. 6

    ปลดบล็อกไอพีเมื่อจำเป็น

    sudo fail2ban-client set sshd unbanip 203.0.113.20

ใส่ไอพีของสำนักงานหรือ VPN ไว้ใน ignoreip เสมอ มิฉะนั้นการพิมพ์รหัสผ่านผิดไม่กี่ครั้งอาจทำให้ทีมงานเข้าเครื่องไม่ได้

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
22TCPSSH ซึ่งเป็นเป้าหมายหลักที่ Fail2ban ป้องกัน
80 / 443TCPบริการเว็บที่ป้องกันหน้าเข้าสู่ระบบ

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ใช้คีย์ SSH แทนรหัสผ่านและปิดการเข้าสู่ระบบด้วยรหัสผ่านไปเลยถ้าทำได้
  • เปลี่ยนพอร์ต SSH จากค่าเริ่มต้นเพื่อลดสัญญาณรบกวนจากบอท
  • ตั้ง bantime ให้ยาวขึ้นสำหรับไอพีที่กระทำซ้ำ
  • ตรวจสอบ Log ของ Fail2ban เป็นระยะเพื่อดูรูปแบบการโจมตี
  • ใช้ร่วมกับ CrowdSec หรือ WAF เมื่อเว็บถูกโจมตีในระดับที่ซับซ้อนขึ้น

ทำไมควรรัน Fail2ban บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

เป็นสิ่งแรกที่ควรติดตั้งหลังสร้าง Cloud Server ใหม่ เพราะเครื่องจะเริ่มถูกสแกนภายในไม่กี่ชั่วโมง

ใช้ทรัพยากรน้อยมาก จึงไม่กระทบประสิทธิภาพของงานหลักบนเครื่อง

ลูกค้าที่ใช้บริการ Managed Services ของ THAI DATA CLOUD จะได้รับการตั้งค่าส่วนนี้ให้ตั้งแต่ต้น

คำถามที่พบบ่อยเกี่ยวกับ Fail2ban

Fail2ban ป้องกันการโจมตีได้ทุกแบบไหม

ไม่ มันป้องกันเฉพาะการพยายามเข้าสู่ระบบซ้ำ ๆ จากไอพีเดียวกัน การโจมตีที่กระจายจากหลายไอพีหรือช่องโหว่ของแอปต้องใช้เครื่องมืออื่นเสริม เช่น WAF หรือ CrowdSec

ถ้าตัวเองถูกบล็อกจะเข้าเครื่องอย่างไร

ใช้คอนโซลผ่านหน้าจัดการของ THAI DATA CLOUD ซึ่งเข้าเครื่องได้โดยไม่ผ่านเครือข่ายปกติ แล้วสั่งปลดบล็อกไอพีของตัวเอง วิธีป้องกันคือใส่ไอพีสำนักงานใน ignoreip ไว้ล่วงหน้า

ใช้กับ Windows Server ได้ไหม

Fail2ban ทำงานบน Linux เท่านั้น สำหรับ Windows Server ให้ใช้ Account Lockout Policy ร่วมกับการจำกัดไอพีที่เข้าถึง Remote Desktop และวาง VPN ไว้ด้านหน้า

ให้เราติดตั้ง Fail2ban ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด