Fail2Ban แบน ip ผู้ที่พยายามสุ่มรหัส login

20 Jun 2016,
Share: 

server ที่ online อยู่บน internet เพื่อเปิดเป็น web server หรือ อื่นๆ จําเป็นจะต้องเปิดใช้งาน SSH เพื่อ remote เข้าไปควบคุมเครื่อง server จากที่ใดก็ได้ผ่านทาง internet ซึ่งจะใช้ user และ password ในการ login เข้าใช้งาน

ปัญหาอยู่ตรงนี้ครับ เมื่อมัน online บน internet ใครๆ ก็สามารถเข้าถึง SSH ของ server เราได้ และแน่นอน ผู้ไม่หวังดีสามารถสุ่มรหัส login เข้า server ของเราไปเรื่อยๆจนเจอรหัสที่ถูกต้อง เรียกการโจมตีแบบนี้ว่า brute force จากรูปจะเห็นว่ามีการ login เข้าเครื่อง server ของเราเป็นจํานวนมาก

Image

เราสามารถเพิ่มความปลอดภัยให้กับ 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

Suggestion blogs

คํานวณความต้านทาน วงจรขนาน

การคํานวณค่าความต้านทานรวม เมื่อนํา R(ตัวต้านทาน) มาต่อกัน แบบขนาน ดังรูป

ปัญหา Login Secure Shell ช้า

เคยไหมเวลา login เข้า Secure Shell แล้ว ช้า สาเหตุเกิดจาก ค่า config default ของ sshd เมื่อมีการ login เข้ามาระบบจะพยายามแปลง ip address เป็นชื่อ host name โดยไปถามจาก DNS Server (reverse hostname lookup) ถ้าเครื่อง ไม่สามารถติดต่อ DNS Server ได้ จะทําให้ ตอน login จะค้างไปซักพัก

พื้นฐานการเขียน JavaScript ES2015 (ES6)

ความเป็นมาของ JavaScriptเมื่อนานมาแล้ว JavaScript เป็นภาษา script ฝั่ง client ของ Netscape ซึ่งเป็น web browser ชื่อดังในสมัยนั้นครับ แล้วหลังจากนั้นไม่นาน Netscape ก็ได้นำเจ้า JavaScript นี้ไปฝากไว้กับ Ecma International ซึ่งเป็นองค์กรที่ก่อตั้งขึ้นเพื่อทำหน้าที่กำหนด standard ให้กับสิ่งต่างๆ โดยเฉพาะ เพื่อจะให้เข้ามาช่วยกำหนด standard ให้กับ JavaScript หลังจากนั้น JavaScript ก็ได้พัฒนาขึ้นมาเรื่อยๆ จนถึง JavaScript ES6


Copyright © 2019 - 2026 thiti.dev | v1.61.0 | Privacy policy | 

Build with ❤️ and Astro.

Github profile Linkedin profile Instagram X profile Nostr Youtube channel Telegram Email contact วงแหวนเว็บ