Shell chống DOS đơn giản dạng SYN attack
Đoạn mã này mình đã dùng và thấy hiệu quả tương đối tốt, tuy nhiên là còn nhiều sai sót, tuy nhiên trong một mức độ nào đó thì nó cũng có tác dụng. 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:
File này 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 $SPAMLISTfor 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/iptablesnetstat -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
Đây là shell mà tôi đã dùng và đã chống được khá tốt, mọi người dùng thử và cho ý kiến nhé.


One Comments to “Shell chống DOS đơn giản dạng SYN attack”
Em thấy bảo là firewall ngày nay đều có cơ chế chống SYN flood rồi mà :”>