(Note) วิธีการตรวจจับ DDoS ใน Linux Server

1. Website ช้าลง
2. สังเกตุพบว่า Process แฮงค์
3. มีการเรียกมาจาก IP เดิมๆซ้ำไปซ้ำมาเยอะๆ
4. Resource ของระบบมีการนำไปใช้ใน Process เยอะ
5. ตรวจจับได้ว่ามี Connection มากผิดปกติโดยใช้คำสั่ง
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

ส่งผลให้
1. Web Server down
2. System load สูงมากๆ
3. Server ไม่ตอบสนอง
4. SSH ไป server ไม่ได้
5. เข้าถึงเครื่องไม่ได้เลยจนกระทั่งต้องไป reboot เครื่อง

วิธีป้องกันและแก้ไขปัญหา
1. Enable SYN COOKIES at the kernel level
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
2. Enable and Configure iptables to prevent the attack or at least work to identify the attack
/sbin/iptables -N syn-flood
/sbin/iptables -A syn-flood -m limit –limit 100/second –limit-burst 150 -j RETURN
/sbin/iptables -A syn-flood -j LOG –log-prefix “SYN flood: ”
/sbin/iptables -A syn-flood -j DROP
3. Install APF firewall เพื่อเอาไว้ตรวจสอบพฤติกรรมที่น่าจะเป็นอันตราย
APF ย่อมาจาก Advanced Policy Firewall. สามารถ download ได้จาก http://www.rfxn.com/projects/
4. ติดตั้ง Script DDoS Deflate เพื่อเอาไว้ป้องกัน DoS แบบ Auto
โดย DDoSDflate สามารถทำได้ดังนี้
It is possible to whitelist IP addresses, via /etc/ddos/ignore.ip.list.
It is possible to whitelist hostnames, via /etc/ddos/ignore.host.list.
Simple configuration file: /etc/ddos/ddos.conf
IP addresses are automatically unblocked after a preconfigured time limit (default: 600 seconds)
The script can run as a cron job at chosen frequency via the configuration file (default: 1 minute)
The script can run as a daemon at chosen frequency via the configuration file (default: 5 seconds)
You can receive email alerts when IP addresses are blocked.
Control blocking by connection state (see man netstat).
Auto-detection of firewall.
Support for APF, CSF and iptables.
Logs events to /var/log/ddos.log
โดยสามารถ download และดูข้อมูลเพิ่มเติมได้ที่ https://github.com/jgmdev/ddos-deflate

https://www.liquidcomm.net/how-to-manage-a-ddos-or-dos-attempt-directed-at-your-linux-server.html