Chống Syn Flood attacks sử dụng Iptables

Chống Syn Flood attacks sử dụng Iptables

Syn flood là 1 dạng tấn công từ chối dịch vụ, kẻ tấn công gửi các gói tin kết nối SYN đến hệ thống. Đây là 1 loại tấn công rất phổ biến. Loại tấn công này sẽ nguy hiểm nếu hệ thống cấp phát tài nguyên ngay sau khi nhận gói tin SYN từ kẻ tấn công và trước khi nhận gói ACK. Các bạn có thể xem thêm về thiết lập 3 way handshake TCP connection.

Nếu việc thiết lập kết nối chưa hòan tất 3 bước đây đủ (gọi là half-open connection) mà buộc hệ thống server phải cấp tài nguyên để quản lý thì kẻ tấn công có thể lấy hết tài nguyên của hệ thống server bằng các "flooding" vào server với các gói tin SYN. Syn flood là 1 dạng tấn công phổ biến và nó có thể được ngăn chặn bằng đoạn lệnh iptables sau:

Code:

Mã:

iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN

Tất cả các kết nối đến hệ thống chỉ được phép theo các thông số giới hạn sau:

* --limit 1/s: Tốc độ truyền gói tin trung bình tối đa 1/s (giây)
* --limit-burst 3: Số lương gói tin khởi tạo tối đa được phép là 3

Dùng iptables, thêm rule sau vào:
Code:

Mã:

# Limit the number of incoming tcp connections
# Interface 0 incoming syn-flood protection
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

* ‐‐limit rate n
* ‐‐limit‐burst number m


Giải thích 1 cách dễ hiểu là như thế này "Rule trên giới hạn số kết nối tối đa đến hệ thống là n trên mỗi 1 giây sau khi đã có m kết nối được thiết lập"
Bạn cần điều chỉnh thông số -limit-rate và -limit-burst tùy theo yêu cầu và traffic của mạng của bạn.