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

20 Jun 2016

Share to:

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

C++ OOP การสร้าง Pointer Object ของ Class

จากบทความ C++ OOP การสร้าง Class และการใช้งาน Class ผมอธิบายถึงการสร้าง Object แบบ Stack แต่ในบทความนี้ผมจะอธิบายเรื่องการสร้าง Object โดยใช้ Pointer ข้อแตกต่างกันคือ การสร้าง Object แบบ Stack จะคล้ายๆกับเราสร้างตัวแปรขึ้นมาตัวนึงเมื่อใช้งานเสร็จหรือจบโปรแกรม ระบบจะคืน memory หรือทําลาย Object นั้นทิ้งให้โดยอัตโนมัติ แต่ถ้าสร้าง Object แบบ Pointer จะไม่ทําลาย Object ให้เราเมื่อจบโปรแกรม เราจะต้องเป็นคนทําลาย Object เอง ทําสั่งที่ใช้ ทําลาย Object คือ "delete" ตามด้วย Object ที่ต้องการลบ _ถ้าเราไม่ลบ Object ที่เราสร้างขึ้น ระบบจะไม่สามารถเข้าใช้งาน memory ในส่วนนั้นได้ ทําให้เกิด memory leak _

การเขียนโปรแกรม ตรวจสอบ เลขคู่ เลขคี่

การเขียนโปรแกรม ตรวจสอบ เลขคู่ เลขคี่สําหรับการเขียนโปรแกรม เชคว่าเลขใดๆ เป็นเลขคู่หรือเลขคี่นั้น สามารถเขียนได้หลายวิธี ในบทความนี้ผมจะยกตัวอย่างการเขียนอีกแบบนึง โดยตัวอย่างนี้ผมจะเขียนเป็นภาษา javascript ดังนี้

Backup ข้อมูลพร้อมกับ permission, user id และ group id ด้วย tar ใน ubuntu

สวัสดีครับ เนื้อหาในบทความนี้เป็นเรื่องการ Backup แล้ว zip file โดยที่ permission, user id และ group id จะต้องเหมือนต้นฉบับเมื่อ unzip แล้ว


Copyright © 2019 - 2024 thiti.dev |  v1.19.0 |  Privacy policy |  status | 

            วงแหวนเว็บ