Fail2ban คืออะไร และวิธีตั้งค่าป้องกันการเดารหัสผ่าน
Fail2ban คือเครื่องมือที่คอยอ่าน Log ของเซิร์ฟเวอร์ แล้วบล็อกไอพีที่พยายามเข้าสู่ระบบผิดซ้ำ ๆ โดยอัตโนมัติ เป็นด่านแรกที่ทุกเซิร์ฟเวอร์ที่เปิดสู่อินเทอร์เน็ตควรมี
- หมวดหมู่
- Security และ Firewall
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- ใช้ร่วมกับงานเดิม · RAM ไม่กี่สิบเมกะไบต์
- ไลเซนส์
- GPLv2 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- 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
บล็อกอัตโนมัติตามจำนวนครั้งที่ล้มเหลว
กำหนดได้ว่ากี่ครั้งภายในกี่นาทีจึงบล็อก และบล็อกนานเท่าใด
รองรับหลายบริการ
มีชุดกฎสำเร็จรูปสำหรับ SSH, Nginx, Apache, Postfix, Dovecot และอื่น ๆ
เขียนกฎเองได้
สร้างรูปแบบการอ่าน Log สำหรับแอปที่พัฒนาเองได้ไม่ยาก
ทำงานร่วมกับ Firewall ของระบบ
สั่งกฎผ่าน nftables หรือ iptables โดยตรง จึงบล็อกได้ตั้งแต่ชั้นเครือข่าย
ใช้ Fail2ban ทำอะไรได้บ้าง
- ป้องกันการเดารหัสผ่าน SSH บนทุก Cloud Server ที่เปิดสู่อินเทอร์เน็ต
- ลดการโจมตีหน้าเข้าสู่ระบบของ WordPress
- ป้องกันการเดารหัสผ่านบัญชีอีเมลบนเมลเซิร์ฟเวอร์
- ลดปริมาณ Log ขยะที่เกิดจากบอทสแกน
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| ทุกเครื่องติดตั้งเสริมบนเซิร์ฟเวอร์ที่มีอยู่ | ใช้ร่วมกับงานเดิม | ไม่กี่สิบเมกะไบต์ | ไม่ถึง 1 GB |
| เว็บที่ถูกโจมตีบ่อยเว็บที่มี Log จำนวนมากให้ประมวลผล | 2 vCPU | 4 GB | NVMe 40 GB |
| เมลเซิร์ฟเวอร์ระบบที่มีความพยายามเข้าสู่ระบบจำนวนมากตลอดเวลา | 4 vCPU | 8 GB | NVMe 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
ติดตั้ง Fail2ban
sudo apt update sudo apt -y install fail2ban sudo systemctl enable --now fail2ban - 2
สร้างไฟล์ตั้งค่าของตัวเอง
อย่าแก้ไฟล์ jail.conf โดยตรงเพราะจะถูกเขียนทับตอนอัปเดต ให้สร้าง jail.local แทน
sudo nano /etc/fail2ban/jail.local - 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
เพิ่มกฎป้องกันหน้าเข้าสู่ระบบของ 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
รีสตาร์ตและตรวจสถานะ
sudo systemctl restart fail2ban sudo fail2ban-client status sudo fail2ban-client status sshd - 6
ปลดบล็อกไอพีเมื่อจำเป็น
sudo fail2ban-client set sshd unbanip 203.0.113.20
ใส่ไอพีของสำนักงานหรือ VPN ไว้ใน ignoreip เสมอ มิฉะนั้นการพิมพ์รหัสผ่านผิดไม่กี่ครั้งอาจทำให้ทีมงานเข้าเครื่องไม่ได้
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 22 | TCP | SSH ซึ่งเป็นเป้าหมายหลักที่ Fail2ban ป้องกัน |
| 80 / 443 | TCP | บริการเว็บที่ป้องกันหน้าเข้าสู่ระบบ |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ใช้คีย์ 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
แอปอื่นในหมวด Security และ Firewall
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Fail2ban ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด