server ที่ online อยู่บน internet เพื่อเปิดเป็น web server หรือ อื่นๆ จําเป็นจะต้องเปิดใช้งาน SSH เพื่อ remote เข้าไปควบคุมเครื่อง server จากที่ใดก็ได้ผ่านทาง internet ซึ่งจะใช้ user และ password ในการ login เข้าใช้งาน
ปัญหาอยู่ตรงนี้ครับ เมื่อมัน online บน internet ใครๆ ก็สามารถเข้าถึง SSH ของ server เราได้ และแน่นอน ผู้ไม่หวังดีสามารถสุ่มรหัส login เข้า server ของเราไปเรื่อยๆจนเจอรหัสที่ถูกต้อง เรียกการโจมตีแบบนี้ว่า brute force จากรูปจะเห็นว่ามีการ login เข้าเครื่อง server ของเราเป็นจํานวนมาก
เราสามารถเพิ่มความปลอดภัยให้กับ server ของเราได้ด้วย Fail2Ban
Fail2Ban คืออะไร
Fail2Ban เป็น service ตัวนึงที่คอยตรวจสอบการ login โดยถ้ามีการ login เข้ามาแล้วใส่ password ผิดเกินจํานวนครั้งที่กําหนด Fail2Ban จะทําการ แบน ip นั้นทันที เราสามารถ config ค่าต่างๆได้ เช่น ยอมให้ใส่ password ผิดได้กี่ครั้ง แบนกี่นาที ฯลฯ
วิธีติดตั้ง Fail2Ban
เริ่มติดตั้ง Fail2Ban ด้วยคําสั่ง
sudo apt-get update
sudo apt-get install fail2ban
หลังจาดติดตั้งเสร็จเรียบร้อย จะต้องไป config ค่าต่างๆก่อน โดยใช้คําสั่ง
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
ภายใน file config ผมจะอธิบายในส่วนที่สําคัญๆ ดังนี้ ignoreip คือการบอกว่าไม่ต้องตรวจสอบ ip นี้ ให้ config ตามนี้ครับ
ignoreip = 127.0.0.1/8
bantime คือระยะเวลาในการแบนไอพี หน่วนเป็นวินาที ในตัวอย่างนี้ผม set เป็น 10 นาที
bantime = 600
maxretry คือ จํานวนครั้งที่ยอมให้ใส่ password ผิด
maxretry = 3
backend ให้ config ตามนี้ได้เลย
backend = auto
save file config ให้เรียบร้อย Restart service 1 ครั้ง ด้วยคําสั่ง
sudo service fail2ban restart
เสร็จสิ้นการติดตั้ง ถ้าต้องการจะดูว่า ณ. เวลานี้มี ip ใดบ้างที่ ถูกแบน ให้ใช้คําสั่ง
sudo iptables -L