Xác định nhiều chỉ sử dụng địa chỉ một iptables
lệnh sử dụng ! --nguồn
là không thể.
Địa chỉ có thể là tên mạng, tên máy chủ (có thể là tên thực sự
ý tưởng tồi khi sử dụng tên máy chủ), địa chỉ IP mạng (có / mặt nạ) hoặc địa chỉ IP đơn giản.
Mặt nạ có thể là mặt nạ mạng hoặc số đơn giản.
Bạn có thể cân nhắc thay đổi bộ quy tắc mặc định từ cho phép thành bỏ. Điều này sẽ cho phép bạn xác định chỉ dựa trên những gì được phép, tức là tương tự như sau:
iptables -A INPUT -i lo -j CHẤP NHẬN
iptables -A INPUT -m state --state LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
... các quy tắc khác của bạn ở đây ...
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -s 1.2.3.4,11.22.33.44 -j CHẤP NHẬN
iptables -P INPUT DROP
Lợi ích/vẻ đẹp là một bộ quy tắc như vậy sẽ hiệu quả hơn nhiều, vì trạng thái của các gói được xem xét. Thêm vào đó, nó cho phép cú pháp mong muốn. Plus cũng là cách được đề xuất để xác định các quy tắc tường lửa.
Tuy nhiên, hãy nhớ rằng nếu sử dụng cú pháp như hình trên: -s 1.2.3.4,11.22.33.44
vẫn tạo 2 mục bảng riêng lẻ, như bạn có thể thấy bằng cách sử dụng lệnh iptables -L INPUT
. Ngoài ra, nó không hoạt động với tất cả các phiên bản của iptables. Ngoài ra, cá nhân tôi thấy nó khó đọc hoặc khó duy trì. Đó là lý do tại sao tôi cố gắng tránh nó, ủng hộ việc sử dụng 2 lệnh riêng biệt.
Trong trường hợp mong muốn của bạn là giảm thiểu số lượng quy tắc, cách gần nhất bạn có thể làm là sử dụng một iptables
quy tắc sử dụng --trận đấu
thay thế --nguồn
. Tuy nhiên, bạn vẫn phải xác định kết quả khớp bằng cách sử dụng các lệnh bổ sung. Cách thức hoạt động của tính năng này đã được giải thích hoàn hảo trong nhận xét khác liên quan đến ipset.