lệnh linux để ngăn chặn cuộc tấn công dos bằng cách sử dụng netstat và iptables


11

Tôi muốn DROP hơn 200 yêu cầu cho mỗi ip để ngăn chặn cuộc tấn công ddos. đây là lệnh mà tôi đã sử dụng để phát hiện số lượng yêu cầu trên mỗi ip:

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

bây giờ tôi muốn thêm tất cả các địa chỉ IP đã thực hiện hơn 200 yêu cầu vào IPtables vào đầu vào DROP và đặt ra.


Như @dawud đã đề cập, đảm bảo rằng bạn biết rằng bạn chỉ có thể "giảm thiểu" và không thực sự ngăn chặn hoàn toàn cuộc tấn công DDOS đến máy chủ của bạn.
kaptan

Câu trả lời:


12

Bạn cũng có thể sử dụng iptables để giới hạn tốc độ kết nối đến. Ví dụ: nếu bạn không muốn có hơn 200 kết nối mỗi phút từ một nguồn:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


1
Nó sẽ là tuyệt vời để có một lời giải thích về điều này là tốt.
ffledgling

18

Bạn có thể tạo một ipset. Bằng cách này, bạn có thể thêm bao nhiêu IP vào tập hợp mà bạn cần mà không cần sửa đổi iptablesquy tắc.

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

Hoặc, trong trường hợp của bạn, hãy sử dụng đầu ra của tập lệnh của bạn và đọc nó với nội dung như:

while read a; do ipset -A myset "$a"; done < <(your script here)

Và tham chiếu nó trong các iptablesquy tắc của bạn :

iptables -A INPUT -m set --set myset src -j DROP

Đọc trang hướng dẫn để biết thêm chi tiết và các tùy chọn.

Cũng có những cách khác để giảm thiểu một cuộc tấn công DDOS bằng cách sử dụng iptablestrực tiếp. Đọc phần iptablesmanpage về connlimitrecentcác mô-đun.


Điều này là tuyệt vời vì ipsets nhanh hơn nhiều so với các lựa chọn thay thế như hashtables.
isuldor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.