Thursday, November 12, 2015

How to manage a DDoS or DoS attempt directed at your linux server

พอดีอ่านใน facebook ของรุ่นพี่คนนึง แล้วบังเอิญตรงกับเหตุการณ์ที่กำลังพบอยู่พอดีเลยเอามาแบ่งกันนะครับ ยังไงก็ขออนุญาตพี่ด้วยนะครับ

วิธีการตรวจจับ 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.facebook.com/hackandsecbook/photos/a.314873568541354.90859.308570299171681/1149404378421598/?type=3&fref=nf&pnref=story