Bạn nên có một cái nhìn vào ipset
.
Từ trang web chính thức:
Ipset có thể là công cụ thích hợp để bạn [...] lưu trữ nhiều địa chỉ IP hoặc số cổng và khớp với bộ sưu tập của iptables.
[...] (Ipset) có thể lưu trữ địa chỉ IP, mạng, số cổng (TCP/UDP), địa chỉ MAC, tên giao diện hoặc sự kết hợp của chúng theo cách đảm bảo tốc độ cực nhanh khi khớp một mục nhập với một tập hợp.
Để sử dụng nó, bạn cần tạo một ipset
, thêm IP
và tạo một iptables
quy tắc phù hợp với ipset
:
ipset tạo danh sách đen băm: ip hashsize 1400000
ipset thêm danh sách đen <ĐỊA CHỈ IP>
iptables -I INPUT -m set --match-set danh sách đen src -j DROP
Một ví dụ thực tế về việc sử dụng có thể được tìm thấy đây. Lưu ý rằng nó sử dụng khôi phục ipset
thay vì đi qua từng địa chỉ IP
trong một vòng lặp vì nó nhanh hơn nhiều.
Nếu danh sách của bạn IP
có chồng chéo, bạn có thể muốn xử lý trước nó để chuyển thành dải IP
có thể ở đâu. Đây là một ví dụ về một công cụ để làm điều đó. Nó sẽ không giúp bạn có màn trình diễn tốt hơn với ipset
nhưng nó sẽ làm giảm kích thước danh sách của bạn.
Bên cạnh đó, về mặt biểu diễn, nó rất nhanh và quy mô mà không bị phạt. Như đám mây
blog của đề cập đến, có những cách tiếp cận cấp thấp nhanh hơn; nhưng nó phức tạp hơn nhiều và chỉ thêm vài byte mỗi giây, điều này, trừ khi bạn có quy mô và tham vọng của nhà cung cấp đám mây, nếu không thì không đáng để bỏ công sức.