คำตอบสั้น ๆ: หาว่า IP ของคุณถูก Fail2Ban บน Plesk แบนจาก Jail ใด ปลดบล็อกผ่านหน้า IP Address Banning หรือ Command Line และเพิ่ม IP สำนักงานเป็น Trusted
คู่มือนี้อธิบาย Fail2Ban ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Plesk มีระบบ IP Address Banning ซึ่งใช้ Fail2Ban อ่าน Log ของบริการต่าง ๆ เมื่อพบว่า IP ใดใส่รหัสผ่านผิดติดกันหลายครั้งในช่วงเวลาสั้น ๆ ก็จะบล็อก IP นั้นที่ Firewall ของเซิร์ฟเวอร์ชั่วคราว ช่วยกันบอตเดารหัสผ่านได้ดี แต่บางครั้งก็บล็อกผู้ใช้จริง เช่น พนักงานที่เปลี่ยนรหัสผ่านอีเมลแล้วลืมแก้ในโทรศัพท์ ทำให้ทั้งสำนักงานที่ใช้ IP เดียวกันเข้าอีเมลหรือเว็บไม่ได้
อาการที่บ่งชี้ว่าถูก Fail2Ban บล็อก คือเข้าได้จากเครือข่ายอื่น (เช่น ใช้ 4G ของโทรศัพท์) แต่เข้าจากสำนักงานไม่ได้เลย ทั้งเว็บไซต์ อีเมล และหน้า Plesk โดยมักขึ้นว่า Connection timed out คู่มือนี้อธิบายวิธีหาและปลดบล็อก IP พร้อมป้องกันไม่ให้เกิดซ้ำ
สิ่งที่ต้องเตรียม
- สิทธิ์ผู้ดูแลเซิร์ฟเวอร์ Plesk (Administrator) หรือสิทธิ์ root ผ่าน SSH หน้า IP Address Banning ไม่มีในบัญชีระดับลูกค้าของ Hosting แบบแชร์ ถ้าคุณใช้ Hosting แบบนั้น ให้แจ้ง IP ของคุณกับทีมซัพพอร์ตแทน
- IP สาธารณะของเครือข่ายที่ถูกบล็อก ดูได้จากเว็บตรวจ IP เช่น ค้นหาคำว่า "what is my IP" จากเครื่องในสำนักงาน
- เครือข่ายสำรองที่ยังเข้าเซิร์ฟเวอร์ได้ เช่น ปล่อย Hotspot จากโทรศัพท์ เพราะคุณจะเข้า Plesk จาก IP ที่ถูกบล็อกไม่ได้
ขั้นตอนที่ 1: หา IP ในรายการที่ถูกแบนผ่านหน้า Plesk
- เชื่อมต่ออินเทอร์เน็ตผ่านเครือข่ายสำรอง แล้วเข้า Plesk ด้วยบัญชี Administrator
- ไปที่ Tools & Settings ในหัวข้อ Security คลิก IP Address Banning (Fail2Ban)
- เปิดแท็บ Banned IP Addresses จะเห็นรายการ IP พร้อมชื่อ Jail ที่แบน
- ค้นหา IP ของคุณ แล้วจดชื่อ Jail ไว้ เพราะช่วยบอกสาเหตุได้
| Jail | บริการที่ตรวจ | สาเหตุที่พบบ่อย |
|---|---|---|
| plesk-dovecot | IMAP/POP3 | โทรศัพท์หรือ Outlook ยังใช้รหัสผ่านอีเมลเก่า |
| plesk-postfix | SMTP | ตั้งค่าส่งอีเมลผิดรหัสผ่าน เช่น เครื่องพิมพ์ที่สแกนส่งอีเมล |
| plesk-panel | หน้า Login ของ Plesk | ใส่รหัสผ่าน Plesk ผิดหลายครั้ง |
| plesk-proftpd | FTP | โปรแกรม FTP บันทึกรหัสผ่านเก่า |
| plesk-roundcube | Webmail | ใส่รหัสผ่าน Webmail ผิด |
| plesk-wordpress | หน้า Login ของ WordPress | Login WordPress ผิดซ้ำ ๆ (เมื่อเปิด Jail นี้ไว้) |
| ssh หรือ sshd | SSH | SSH ด้วยรหัสผ่านหรือ Key ผิด |
| recidive | ทุก Jail | IP ถูกแบนซ้ำหลายรอบ จึงถูกแบนนานขึ้น |
ชื่อ Jail จริงบนเซิร์ฟเวอร์ของคุณดูได้ที่แท็บ Jails ในหน้าเดียวกัน
ขั้นตอนที่ 2: ปลดบล็อก IP
- ในแท็บ Banned IP Addresses ติ๊กหน้า IP ที่ต้องการ
- คลิก Unban เพื่อปลดบล็อก หรือคลิก Trust (ในบางเวอร์ชันแสดงเป็นปุ่มเพิ่มไปยัง Trusted) เพื่อปลดบล็อกและเพิ่ม IP เข้ารายการที่จะไม่ถูกแบนอีก
ถ้าเข้า Plesk ไม่ได้เลย ให้ SSH เข้าเซิร์ฟเวอร์ด้วยสิทธิ์ root จากเครือข่ายสำรอง แล้วใช้คำสั่งของ Plesk ดูรายการที่ถูกแบน
plesk bin ip_ban --banned
ผลลัพธ์จะแสดงเป็น IP คู่กับชื่อ Jail และเวลาที่เหลือ จากนั้นปลดบล็อกด้วยรูปแบบ IP,ชื่อJail
plesk bin ip_ban --unban 203.0.113.50,plesk-dovecot
หากต้องการใช้คำสั่งของ Fail2Ban โดยตรง ก็ทำได้เช่นกัน
fail2ban-client status plesk-dovecot
fail2ban-client set plesk-dovecot unbanip 203.0.113.50
คำสั่งแรกแสดงจำนวนครั้งที่ผิดและรายการ IP ใน Jail นั้น คำสั่งที่สองปลดบล็อก และจะตอบกลับเป็นเลข 1 เมื่อสำเร็จ
ขั้นตอนที่ 3: แก้ต้นเหตุก่อน ไม่อย่างนั้นจะถูกแบนซ้ำ
การปลดบล็อกเป็นแค่การแก้ปลายเหตุ ถ้าอุปกรณ์ที่ใส่รหัสผ่านผิดยังพยายามเชื่อมต่ออยู่ IP จะถูกแบนอีกภายในไม่กี่นาที ให้ไล่ตรวจตามชื่อ Jail เช่น ถ้าเป็น plesk-dovecot ให้ตรวจทุกเครื่องที่ตั้งค่าอีเมลไว้ ทั้งโทรศัพท์ แท็บเล็ต Outlook บนคอมพิวเตอร์เก่า และเครื่องพิมพ์ จากนั้นแก้รหัสผ่านให้ตรงกัน ดู Log เพื่อหาบัญชีที่ Login ผิดได้จาก
grep "auth failed" /var/log/maillog | tail -n 20 # AlmaLinux / Rocky
grep "auth failed" /var/log/mail.log | tail -n 20 # Ubuntu
ข้อความใน Log จะมีชื่อผู้ใช้ เช่น user=<[email protected]> ทำให้รู้ว่าต้องแก้ที่บัญชีใด