<![CDATA[Latest posts for the topic "Test iptables trước SYN Flood"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Test iptables trước SYN Flood Code:
0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x12/0x12 state NEW reject-with tcp-reset
0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW
Ngoài ra thì mình tạo rule NAT Inbound cho phép truy cập web từ bên ngoài đã thành công. Mong mọi hướng dẫn cách demo thiết lập rule trên iptables chống SYN Flood và kiểm tra tính hiệu quả của các rule đó. Cách mình đã làm là như sau, tuy nhiên không thấy được hiệu quả của các rule nên mạo muội xin góp ý của mọi người. Trước khi thiết lập rule: 1. Ở máy Attacker mình sử dụng BackTrack với command: $hping3 --flood -S -p 80 111.11.1.10 với 111.11.1.10 là địa chỉ là địa chỉ ip mặt ngoài của iptables. 2. Ở máy web server mình chạy top để theo dõi + với tcpdump ($tcpdump -w http.pcap -i eth0 port 80) để kiểm tra số lượng packet đi vào hệ thống. Thì kiểm tra đc số packet mà tcpdump đã capture, số packet bị lọc bởi kernel và packet filter. 3. Ngoài ra mình thử command $time wget -o /dev/null 111.11.1.10 --> để kiểm tra thời gian đáp ứng của hệ thống. Sau đó mình thiết lập các rule chống SYN Flood như sau. Code:
# Stop SYN Flooding
iptables -N syn_flood
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP
Sau đó mình flood lại và kiểm tra bằng các cách ở phần 1, 2, 3. Nhưng mình không thấy rõ sự khác biệt lắm. Vì web mình để test nên cũng không có gì, khi mình Flood thì user bên ngoài vẫn "có khả năng" truy cập web được. Vì vậy mong được sự hướng dẫn của mọi người để kiểm tra tính hiệu quả của rule. Thân]]>
/hvaonline/posts/list/40818.html#251178 /hvaonline/posts/list/40818.html#251178 GMT
Test iptables trước SYN Flood /hvaonline/posts/list/40818.html#251188 /hvaonline/posts/list/40818.html#251188 GMT Test iptables trước SYN Flood Code:
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
10    3788  152K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID 
11       0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x12/0x12 state NEW reject-with tcp-reset 
12       0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
6     2653  159M ACCEPT     tcp  --  eth0   *       0.0.0.0/0            10.0.0.2            tcp dpt:80 

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 11      12  1344 ACCEPT     all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain drop-lan (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0
Code:
Chain PREROUTING (policy ACCEPT 2056 packets, 97M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1    24971 1499M DNAT       tcp  --  *      *       0.0.0.0/0            111.11.1.10         tcp dpt:80 to:10.0.0.2
Một số rule không liên quan mình xoá bỏ bớt cho dễ nhìn. Mình vẽ lại mô hình cho dễ nhìn Attack---------------------(eth0)(Firewall)(eth2)-------------------------------Web server Vấn đề cốt lõi mà mình vẫn chưa hiểu đó là với mô hình như vậy, Rule chống SYN Flood nên đặt ở chain nào?[b]]]>
/hvaonline/posts/list/40818.html#251339 /hvaonline/posts/list/40818.html#251339 GMT
Test iptables trước SYN Flood

quangteospk wrote:
Attack---------------------(eth0)(Firewall)(eth2)-------------------------------Web server Vấn đề cốt lõi mà mình vẫn chưa hiểu đó là với mô hình như vậy, Rule chống SYN Flood nên đặt ở chain nào? 
Bạn có thể đặt rule tại chain INPUT của eth0 Cho cái hình để bạn dễ hình dung.
Và thêm rule đưa gói tin vi phạm vào blackhole. Bạn có thể xem lại các bài viết trên forum về ngăn chặn Syn-flood để hiểu rõ hơn. - Ky0 - ]]>
/hvaonline/posts/list/40818.html#251344 /hvaonline/posts/list/40818.html#251344 GMT
Test iptables trước SYN Flood Code:
iptables -N syn_flood
iptables -I FORWARD -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
ptables-A syn_flood -m limit --limit 3/s --limit-burst 1 -j LOG --log-prefix "SYN_Flood..:"
iptables -A syn_flood -j DROP
thì mọi gói tin có cờ syn đi vào FORWARD sẽ đẩy vào syn_flood, và khi chạm đỉnh là 3 thì mỗi giây nó chỉ cho phép một gói đi vào. Vậy nếu kẻ tấn công cứ tiếp tục flood hệ thống thì người dùng bt đâu thể truy cập website được. Bởi khi hệ thống cấp cho một vé nào đều bị kẻ tấn công dành mất rồi]]>
/hvaonline/posts/list/40818.html#251346 /hvaonline/posts/list/40818.html#251346 GMT
Test iptables trước SYN Flood

quangteospk wrote:
Mình quên mất, cám ơn Kyo về tấm hình. Lần trước mình đặt ở chain INPUT nhưng ở web server vẫn ko có thay đổi gì, có lẽ mình đã làm sai ở một chỗ nào đó. Mình sẽ thử lại. blackhole ý Kyo có phải là đầy vô LOG không nhỉ.  
Blackhole có thể là /dev/null hoặc dscard service. Nếu bạn có theo dõi các bài viết chống DDOS trên diễn đàn thì sẽ thấy tác dụng của nó :P ]]>
/hvaonline/posts/list/40818.html#251349 /hvaonline/posts/list/40818.html#251349 GMT