#การใช้ 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 ได้เลย
#การ Block ก็ง่ายๆ ไม่ยากด้วย iptables ตัวอย่าง
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
ความหมาย -A = เพิ่ม (add), -s = IP ต้นทาง, -j DROP = Block IP นั้นซ่ะ
#Block เป็น IP 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 ต้นทางทาง
ตัวอย่างง่ายๆ ที่อาจช่วยป้องกัน SYN-FLOOD ทำให้ server ยังอยู่ได้ไม่ม่องเท่งก่อน เวลาอันควร เอาคำสั่งนี้ไว้บนๆ สุดหน่อย จะช่วยได้มากครับ
คำสั่งแรกเป็นคำสั่ง Limit syn Packet ให้อยู่ในช่วง 25 Packet ต่อวินาที และไม่เกิน 30 ต่อวินาที
iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 30 -j ACCEPT
คำสั่งที่ 2 ถ้ามันเกินจากนั้นก็จะถูก Drop ด้วยคำสั่งถัดมา
iptables -A INPUT -p tcp --syn -j DROP
ปล. เครดิตเสี่ยโป้ง (Hostparagon.com)
ref: http://www.thaihosttalk.com/index.php?topic=11925.0
Short link: http://taxze.com/?p=38
Canonical link: http://www.taxze.com/%e0%b8%9b%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b1%e0%b8%99%e0%b9%82%e0%b8%94%e0%b8%99%e0%b8%a2%e0%b8%b4%e0%b8%87%e0%b9%80%e0%b8%84%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-server/
Leave a Reply “ป้องกันโดนยิงเครื่อง server”