มาแชร์ประสบการณ์ป้องกันแก้ไขโดน BOTNET โจมตี

mod_qos ครับ ลองศึกษาดู

ข้อมูลที่ request เข้ามาไม่น่าใหญ่ขนาดทำให้ BW เต็มสายได้นะครับ ที่เต็มน่าจะเป็น bw inter หรือเปล่า
หรือไม่ก็เป็นข้อมูลที่ server response หน้าเว็บกลับไป ซึ่งกรณีนี้การ drop request จะช่วยลด bw ได้

B/W Local นี่แหละครับ แค่ Incoming B/W อย่างเดียว มันก็เยอะมากจนเกิน Limit ที่ IDC ตั้งไว้น่ะครับ

mod_qos อ่านแล้ว น่าสนใจมากครับ
ขอบคุณที่แนะนำมา รู้สึกว่าจะมีให้เลือกใน EasyApache ด้วย

ขอสคริปที่กันด้วยได้ไหมที่ แอดไอพีเข้า บล๊อคอัตโนมัติอะครับ

สรุปคือวิธีนี้ใช้ไม่ได้ผลครับ
เครื่องที่ว่าก็ยังโดน botnet ต่อไป

วิธีที่ผมใช้และได้ผลคือการใช้ nginx ร่วมด้วย แต่ไม่สามารถเอามาบอกตรงนี้ได้้เนื่องจากคนทำจะจับไต๋ได้

ก็ไม่ได้ผลเท่าไหร่ครับ แค่หลังจากทำเสร็จวันนั้นก็เข้าเว็บได้ปกติตั้งแต่นั้นมา แต่โหลดอาจจะมีสูงอยู่บ้างช่วงที่มี IP ใหม่ๆเข้ามา แต่ 3-5 วิ ก็โดน block ไป
จริงๆแล้วคุณแบงค์ก็น่าจะเอาวิธีที่ได้ผลทำให้ลูกค้านะครับ เครื่องนี้ก็อยู่ตู้คุณแบงค์ ไม่น่าปล่อยทิ้งให้โดนยิงอยู่หลายวันจนต้องโทรมาหาผม

อันนี้กราฟจาก munin ครับ

ช่วงที่กราฟขึ้นสูงทางซ้ายมือนั่นคือโดนบอทเนตถล่มอยู่ โดยที่ไม่ได้ทำอะไร โดนถล่มอยู่ประมาณ 3 วัน เพราะหาคนแก้ไม่ได้
หลังจากติดตั้ง script และทยอย block IP ไป กราฟก็ลดลงมาตามปกติ เข้าเว็บได้ปกติ แต่ bot ก็ยังถล่มเข้ามาไม่ขาดสาย ก็ block ip มันไปเรื่อยๆ รวมแล้วก็เป็นหมื่น IP
เมื่อคืนโดนอีกรอบเปลี่ยนมาใหม่ แต่ก็ block ไม่ยาก แค่แก้ใน script ตามที่มันเปลี่ยนมา ก็กลับมาปกติ

ส่วนเรื่องที่ยังโดน bot ถล่มไม่เลิก คงไปแก้อะไรไม่ได้ จนมันเบื่อและเลิกไปเอง เพราะถ้าทำให้มันเลิกได้ก็คงไม่ต้องทำอะไรให้วุ่นวายกับ server
ส่วนวิธีที่เอา nginx มาขวางหน้า apache แล้ว drop ทิ้ง ก็เป็นวิธีที่ทำได้ไม่ยาก แต่ถ้าไม่ block ip ใน firewall ด้วย ก็จะมี request เป็นหมื่นวิ่งเข้า nginx ไม่หยุดอยู่ดี
ผมจึงยังไม่เห็นความจำเป็นที่ต้องเอา nginx มาขวางหน้า apache แต่อย่างใด เพราะโดยตัว apache เอง ก็สามารถ drop ทิ้งได้เหมือนกัน และ ip ใหน block ไปแล้วก็ไม่มีทางเข้ามาถึง apache อยู่แล้ว

สรุปวิธีนี้ไม่ได้ผลตามที่คุณแบงค์ว่าครับ เพราะบอทมันก็ยังถล่มไม่เลิก ก็แค่ช่วยให้เข้าเว็บได้ตามปกติแค่นั้นเอง

สาเหตุที่เอา nginx ดักหน้ามันเพราะเจอ req/sec ถี่เกินกว่า apache จะรับไหวครับ ถึง block ip เก่าไปแล้วแต่ ip ใหม่ที่เข้ามาใหม่มันก็ต้อง learn ใหม่ จังหวะนั้นมันจะค้าง ก็เขียน rule ใส่ nginx ดักกรองไว้เลย botnet ก็จบที่ nginx อยากยิงก็ยิงไป (iptables ไม่ต้อง block ก็ยังได้)

โห พี่ เหนื่อยแย่เลย สู้ๆ นะครับๆ

อาทิตย์ที่มีปัญหา ผมไม่ว่างจริงๆครับ
Implement ระบบให้อีกที่นึงอยู่เกือบๆ 2 อาทิตย์ ไม่ได้พักเลย

ส่วนการใช้ nginx ขวางหน้า ก็ตามที่ icez บอกเลยครับ ไม่งั้น request ของ apache จะเต็ม
ส่วนวิธี iptables นี่ผมลองโดยเขียน script ใช้ cfs block แบบออโต้ แล้วครับ แต่ติดปัญหาที่ว่าตัว deny rule ของ cfs นั้นรับได้แค่นิดเดียว

deny IP pool ของ csf กำหนดได้ครับ ค่า default มันให้กำหนดไม่เกิน 1000 IP แต่ก็สามารถใส่ไป 10000 50000 หรือ 0 (ไม่ limit) ก็ได้ครับ

เกลียด CSF/LFD :026:

ไม่เคยทำงานได้อย่างที่อยากให้มันทำได้ และมันชอบแสนรู้ทำงานเกินหน้าที่
iptables เพียวๆ เจ๋งกว่าเยอะ ^^" module ประหลาดๆ เยอะดี

โฮสผมโดนประจำ เหอๆ