ระดับ 1: DOS ช้า ๆ ง่าย ๆ
เพื่อค้นหาที่อยู่ ip ของผู้โจมตี slowloris ฉันใช้บรรทัดคำสั่งต่อไปนี้:
netstat -ntu -4 -6 | awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' | sort | uniq -c | sort -n
นี่จะทำให้คุณมีจำนวนการเชื่อมต่อที่ใช้งานอยู่สำหรับ IP ที่เชื่อมต่อแต่ละรายการ
หากคุณอยู่ภายใต้การจู่โจมของ DOS ง่าย ๆ ตัวเล็ก ๆ ที่มี IP หนึ่งหรือสองสามตัวที่มีการเชื่อมต่อ 50-100 (หรือมากกว่า) นั้นน่าจะเป็นผู้โจมตีที่ช้าที่สุดที่คุณสามารถปล่อยได้
นี่คือการตรวจจับและวาง (ด้วย iptables หรือ hlfw ที่คุณต้องการ) พวกเขา "เรียลไทม์" หากคุณเชื่อมต่อบนเซิร์ฟเวอร์ในระหว่างการโจมตี
การเพิ่มเวลาประมวลผล (อาร์กิวเมนต์% D หรือ% T) ในบันทึก apache ของคุณอาจช่วยตรวจจับการโจมตีช้า "postmortem" โดยการวิเคราะห์บันทึกหากคุณไม่มีข้อมูลนี้ในบันทึกของคุณคุณจะไม่พบสิ่งที่น่าสนใจ . ดูhttp://httpd.apache.org/docs/current/mod/mod_log_config.htmlสำหรับบันทึกการกำหนดค่า
ระดับ 2: DDOSL ขนาดใหญ่จริง ๆ
netstat (ใช้ watch netstat เพื่อรีเฟรช) ยังคงช่วยให้คุณเห็นว่า IP บางตัวเชื่อมต่ออยู่เสมอ
ในการต่อสู้กับ slowloris บน apache ให้ติดตั้งโมดูล reqtimeout และตั้งค่าตัวอย่าง:
http://pastebin.com/3BNNwfyb
หลังจากนั้นทุก 408 ที่คุณเห็นใน access_log คือ 99.999% แน่ใจว่า ip ของผู้โจมตีช้า
ด้วยการใช้ reqtimeout apache module คุณสามารถยืนหยัดต่อสู้กับหลายพัน ips และหลายพันแพ็กเก็ต / วินาทีบนเซิร์ฟเวอร์เฉพาะที่เหมาะสม
Iptables สามารถช่วยเล็กน้อยกับสิ่งที่ชอบ:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP