DDoS - Phát hiện và chống DDoS

Cơ chế hoạt động của nó chỉ đơn giản là tìm xem có những IP nào đang thực hiện kết nối dạng SYN_RECV thì sẽ được đưa vào blacklist và khóa lại, cứ 2 phút 1 lần hệ thống sẽ gọi đến file này, nếu như ip đó không thực hiện tấn công SYN Flood nữa thì IP đó sẽ được xóa ra khỏi danh sách cấm.

Shell này gồm 3 file:
Files blocked.ips, đây chỉ đơn giản là 1 file text bạn chỉ việc tạo ra nó bằng lênh vi bình thường, nội dung trắng, nó được dùng để làm nơi lưu những IP bị nghi ngờ đang DOS.
File iptables.sh, có nội dung:

#!/bin/bash
# Ban quyen thuoc ve Hanh_bk
IPT=/sbin/iptables
SPAMLIST=”spamlist”
SPAMDROPMSG=”SPAM LIST DROP”
BADIPS=$(egrep -v -E “^#|^$” /root/iptables/blocked.ips)
# create a new iptables list
$IPT -N $SPAMLIST
for ipblock in $BADIPS
do
$IPT -A $SPAMLIST -s $ipblock -j LOG –log-prefix “$SPAMDROPMSG”
$IPT -A $SPAMLIST -s $ipblock -j DROP
done
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST

Tác dụng của file này là đọc các IP bị cấm trong file blocked.ips và thực hiện cấm đối với những IP này và đưa vào log để tiện theo dõi.
Cuối cùng là file autoblock.sh, Nội dung của file này:

#!/bin/bash
# Ban quyen thuoc ve Hanh_bk
/etc/init.d/iptables start
cd /root/iptables
netstat -atun | grep SYN_RECV | awk ‘{print $5}’ | cut -d: -f1 |sort | uniq -d | sort -n > blocked.ips
sh ./iptables.sh

Tác dụng của file này là tìm xem có những IP nào đang gửi các gói tin dạng SYN_RECV, và đưa những IP này vào file blocked.ips, sau đó gọi file iptables.sh để khóa IP.
Cách triển khai: Tất cả 3 file này chúng ta lưu vào một thư mục, ở đây tôi lưu vào /root/iptables và được chmod cho phép thực thi, thường mọi người hay chmod 777
Sau đó chúng ta khai báo vào Crontab
*/2 * * * * /root/iptables/autoblock.sh
Chúc các bạn luôn giữ ổn định cho hệ thống của mình

Bài viết này có ích cho bạn không? 1 phiếu cảm nhận dễ hiểu & thực hiện (6 Phiếu)