เซิร์ฟเวอร์ของฉันอยู่ภายใต้การโจมตี DDOS และฉันต้องการบล็อกไอพีที่กำลังทำอยู่ไฟล์ใดที่ฉันควรค้นหาเพื่อตรวจสอบ IP ของผู้โจมตี
เซิร์ฟเวอร์ของฉันอยู่ภายใต้การโจมตี DDOS และฉันต้องการบล็อกไอพีที่กำลังทำอยู่ไฟล์ใดที่ฉันควรค้นหาเพื่อตรวจสอบ IP ของผู้โจมตี
คำตอบ:
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
ดูที่อยู่ IP อันดับต้น ๆ ถ้าสิ่งใดโดดเด่นกว่าสิ่งอื่นใดสิ่งเหล่านั้นก็จะเป็นไฟร์วอลล์
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
สิ่งนี้จะดูที่การเชื่อมต่อที่ใช้งานอยู่ในปัจจุบันเพื่อดูว่ามีการเชื่อมต่อ IP กับพอร์ต 80 หรือไม่คุณอาจต้องเปลี่ยน cut -c 45- เนื่องจากที่อยู่ IP อาจไม่เริ่มต้นที่คอลัมน์ 45 หากมีใครบางคนกำลังทำ UDP เว็บเซิร์ฟเวอร์ของคุณจะรับมันด้วย
ในกรณีที่ไม่มีสิ่งเหล่านี้แสดง IP ใด ๆ ที่เกินกว่ามาตรฐานคุณจะต้องสมมติว่าคุณมี botnet โจมตีคุณและจะต้องมองหารูปแบบเฉพาะในบันทึกเพื่อดูว่าพวกเขากำลังทำอะไร การโจมตีเว็บไซต์เวิร์ดเพรสคือ:
GET /index.php? HTTP/1.0
หากคุณตรวจสอบบันทึกการเข้าถึงสำหรับเว็บไซต์ของคุณคุณอาจทำสิ่งต่อไปนี้
cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more
ซึ่งจะแสดงให้คุณเห็น URL ที่นิยมมากที่สุด คุณอาจพบว่าพวกเขากำลังกดปุ่มสคริปต์มากกว่าที่จะโหลดทั้งไซต์
cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more
จะช่วยให้คุณเห็น UserAgents ทั่วไป เป็นไปได้ว่าพวกเขากำลังใช้ UserAgent เดียวในการโจมตีของพวกเขา
เคล็ดลับคือการค้นหาสิ่งที่เหมือนกันกับทราฟฟิกการโจมตีที่ไม่มีอยู่ในทราฟฟิกปกติของคุณจากนั้นกรองผ่าน iptables, mod_rewrite หรืออัปสตรีมด้วยเว็บโฮสต์ของคุณ หากคุณได้รับผลกระทบจาก Slowloris ตอนนี้ Apache 2.2.15 จะมีโมดูล reqtimeout ซึ่งช่วยให้คุณกำหนดการตั้งค่าบางอย่างเพื่อป้องกัน Slowloris ได้ดียิ่งขึ้น
FYI - คุณควรพยายามทำงานกับ ISP ของคุณเพื่อดูว่าพวกเขาสามารถปิดกั้นต้นน้ำของคุณได้หรือไม่
เคล็ดลับดี ๆ ที่นี่ ฉันต้องการเพิ่มสิ่งนี้:
netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
วางสิ่งนี้ไว้ใต้นามแฝง (ตัวอย่างเช่น nn) สิ่งนี้จะทำให้คุณมีมุมมอง "กราฟิก" ของ ips ที่มีการเชื่อมต่อที่กำหนด
หวังว่านี่จะช่วยได้
สำหรับผู้ที่ไม่สามารถทำงานนี้ฉันได้แก้ไขไวยากรณ์เพื่อให้ทำงานภายใต้ Ubuntu:
netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
ไฟล์บันทึกที่ชื่นชอบเพื่อตรวจสอบการโจมตีของ DOS คือ / var / log / secure (ภายใต้ Redhat / Centos / Fedora .... ) และ /var/log/auth.log (ภายใต้ ubuntu, debian ... ) คุณจะเห็นความพยายามในการเข้าสู่ระบบที่ล้มเหลวจาก IP ต้นทางของผู้โจมตีซึ่งส่วนใหญ่เป็นการโจมตีด้วยพจนานุกรม
เพื่อปกป้องเซิร์ฟเวอร์ของฉันฉันใช้Fail2Banสคริปต์ง่าย ๆ
สแกนไฟล์บันทึกเช่น / var / log / pwdfail หรือ / var / log / apache / error_log และแบน IP ที่ทำให้รหัสผ่านล้มเหลวมากเกินไป มันปรับปรุงกฎไฟร์วอลล์เพื่อปฏิเสธที่อยู่ IP
Distro ไหน?
ฉันคิดว่าบันทึกอยู่ภายใต้ /var/log/apache2/access.log กับ Ubuntu ... อาจเป็น Debian ก็ได้เช่นกัน
เรียกใช้ updatedb เป็น sudo แล้วค้นหา access.log จากบรรทัดคำสั่ง
แก้ไข: ฉันเชื่อว่าสิ่งนี้จะเกิดขึ้นหากพวกเขากำลังโจมตีคุณโดยการร้องขอหน้าเว็บหรือผ่านทางพอร์ต 80 โดยตรงหากพวกเขากำลังกดพอร์ตอื่นคุณจะไม่เห็นข้อมูลที่คุณต้องการที่นั่นคุณจะต้องตรวจสอบและดูว่ากระบวนการใด เรียกใช้บนพอร์ตนั้นและดูที่บันทึกการเชื่อมต่อสำหรับกระบวนการนั้น
คุณสามารถใช้ tcpdump เพื่อดูว่าที่อยู่ใดคือ $ tcpdump -vv port X หากคุณสงสัยว่าพอร์ตใดพอร์ตหนึ่ง
หากคุณอยู่ภายใต้ DOS แบบกระจายมีมากกว่าหนึ่ง IP ที่จะบล็อกและ IP อาจถูกปลอมแปลงคุณควรถาม ISP ของคุณตามที่mfinniพูด นอกจากนี้อาจเป็นมากกว่า DOS ต่อเซิร์ฟเวอร์ของคุณ แต่อุปกรณ์ลวงเพื่อซ่อนการโจมตีที่แท้จริงจากการถูกตรวจพบดังนั้นตรวจสอบว่าบริการที่เปิดเผยทั้งหมดของคุณนั้นทำงานด้วยซอฟต์แวร์ล่าสุด คุณอาจสนใจ mod_dosevasive สำหรับ apache
ก่อนอื่นคุณต้องกำหนดประเภทของ DOS การโจมตีบางครั้งจะหลบ ๆ ซ่อน ๆ แต่มีประสิทธิภาพ (ช้า) ซึ่งบางครั้งก็หนักมากที่สามารถทำให้ ISP ล้มเหลว (ICMP มีน้ำท่วมจากแบนด์วิธที่สูงกว่าแหล่ง ISP ของคุณ)
หลังจากที่คุณกำหนดประเภทของ DOS ให้โทร ISP ของคุณและถามพวกเขาว่าสามารถกรองปริมาณการใช้งานได้หรือไม่
ฉันเห็นน้ำท่วม ICMP หนักมากจนเราต้องขอ ISP อัปสตรีมเพื่อกรอง IP ปลายทางผ่านชุมชน BGP