วิธีเช็ึค และ บล๊อก ip DDOS Attack Slowloris

เข้า root พิมพ์ตามนี้ครับ
netstat -nat | awk ‘{print $6}’ | sort | uniq -c | sort -n

จากนั้นพิมพ์ดู IP ที่ Attack เข้ามาครับ
netstat -tuna | grep :80 | grep SYN_RECV

บล็อคลง iptables เลยครับ คาดว่าน่าจะโดน ddos slowloris ครับ

Credit : Mr.taJi #THT

ตรวจสอบว่าเครื่องถูกยิง และวิธีแก้ไขสถานการเบื้องต้น

bunyiam:
สืบเนื่องจากวันนี้ server ของน้องคนหนึ่งถูกกระหน่ำยิงจนไม่สามารถทำงานได้ แล้วผมก็เคยเห็นหลายๆ คนเคยตั้งคำถามไว้ว่าจะรู้ได้อย่างไรว่าเครื่องเราโดนยิงเข้าให้แล้ว วันนี้ก็ถือเป็นโอกาสอันดีที่จะนำความรู้เท่าหางอึงอันน้อยนิดนี้มาแบ่งกัน

การตรวจสอบว่าเราถูกยิงหรือไม่ผ่านคำสั่ง netstat
หลายๆ คนคงรู้วิธีใช้งาน netstat กันบ้างแล้ว คราวนี้จะมาดูวิธีการใช้งาน netstat อย่างประยุคๆ หน่อย
— การใช้ netstat ตรวจสอบการถูกยิงด้วย syn
คำสั่ง netstat -ntu | grep SYN_RECV | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr  อันนี้จะบอกว่า ณ ขณะเวลานั้นๆ มีคนส่ง syn เข้ามาเพื่อขอเชื่อมกับ server ของเรา โดยปกติไม่ควรเกิน 10 ครั้งต่อ 1 IP หากเกินกว่านั้นท่าน Block ได้เลย
— การใช้ netstat นับจำนวน connetion ของแต่ละ IP
คำสั่ง netstat -ntu | grep ESTABLISHED | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr  อันนี้จะบอกว่า ณ ขณะเวลานั้นๆ แต่ละ IP มีการเชื่อมต่อกับเรากี่ connetion  โดยปกติไม่ควรเกิน 10-20 ครั้งต่อ 1 IP หากเกินกว่านั้นท่าน Block ได้เลย

การใช้ netstat ตรวจสอบได้กับ tcp จะง่าย แต่ถ้าเป็น udp icmp ผมจะใช้โปรแกรม iptraf ช่วยอีกแรง ดูง่ายหน่อย
ติดตั้ง yum -y install iptraf
วิธีใช้พิมพ์คำสั่ง iptraf จากนั้นดูว่ามี packet udp icmp วิงผิดปกติหรือเปล่า ถ้ามีก็ดู ip นั้นๆ แล้วนำมา block

การ Block ก็ง่ายๆ ไม่ยากด้วย iptables
ตัวอย่าง

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP ความหมาย -A = เพิ่ม (add), -s = IP ต้นทาง, -j DROP = Block IP นั้นซ่ะ

Block เป็น class

iptables -A INPUT -s xxx.xxx.xxx.xxx/xx -j DROP
Block เป็น Protocal

iptables -A INPUT -p udp –dport 80 -j DROP ความหมาย -p = เลือก Protocal ที่ต้องการ (udp,tcp) , –dpoprt = Port ปลายทาง, –spoprt = Port ต้นทางทาง

แล้ว ก็ฝากเตือนทุกๆ คนที่ server โดยยิง ไม่ว่าจะอย่างไรห้ามยิงกลับเป็นอันขาดนะครับ ต้องป้องกันให้ดีที่สุด เก็บ log แล้วก็แจ้งความเท่านั้นนะครับ เพราะถ้าเรายิงกลับเราจะเป็นฝ่ายที่โดนจับเสียเอง

from : http://www.thaihosttalk.com

IPTABLES เซฟไว้อ่านเอง

iptables -A OUTPUT -p udp -m owner –uid-owner `cat /etc/passwd|grep apache: |cut -d: -f3` –dport ! 53 -j DROP

iptables -A OUTPUT -d 202.65.158.84 -j DROP

พอซักพักผมรู้สึกเครื่องหน่วงๆไปอีกจนใช้งานแทบไม่ได้ ไปตรวจสอบดูดันกลายเป็นมี icmp package จำนวนมาก
ผมใช้คำสั่ง block ICMP ทั้ง in และ out
iptables -A OUTPUT -p icmp -j DROP
iptables -A INPUT -p icmp -j DROP
(ไอซ์บอกไม่ค่อยดีนัก)

iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP  +++ ของไอซ์