Điểm:4

Làm cách nào để thêm nhiều IP vào một dòng lệnh iptables? Sudo iptables -A INPUT -p tcp --dport 22 ! -s 1.2.3.4 -j THẢ

lá cờ my

Cập nhật:

Tôi đã thử Sudo iptables -A INPUT -p tcp --dport 22 ! -s 1.2.3.4,11.22.33.44 -j THẢ, Không hoạt động và nó báo lỗi cho tôi

iptables v1.8.2 (nf_tables): ! không được phép với nhiều địa chỉ IP nguồn hoặc đích


Ví dụ: Mục tiêu của tôi là Chỉ cho phép chỉ cho phép 1.2.3.411.22.33.44 để kết nối ssh (cổng 22) của máy chủ của tôi.

Và tôi thích cách tiếp cận/lệnh này hơn những cách khác.

Sudo iptables -A INPUT -p tcp --dport 22 ! -s 1.2.3.4 -j THẢ

Nhưng tôi không biết cách thêm một IP được phép khác 11.22.33.44 trong lệnh này,

Bạn có thể cho tôi một chút giúp đỡ hoặc lời khuyên?

Cảm ơn.

lá cờ in
Điều này có trả lời câu hỏi của bạn không? [iptables nhiều IP nguồn trong một quy tắc](https://serverfault.com/questions/6989/iptables-multiple-source-ips-in-single-rule)
rm -rf avatar
lá cờ my
@NiKiZe Ồ, điều đó có thể hiệu quả, Cảm ơn bạn rất nhiều.
Michael Hampton avatar
lá cờ cz
Lưu ý: Tường lửa đầu vào cho phép mặc định thường không được coi là thông lệ tốt.
Điểm:5
lá cờ cc

Bạn có thể sử dụng một đặt IP.

Tùy thuộc vào bản phân phối của bạn, bạn có thể cần phải cài đặt ipset tiện ích đầu tiên.

#(Dành cho Debian và các bản phân phối có nguồn gốc từ Debian)
Sudo apt cài đặt ipset-kiên trì

Sau đó, bạn tạo một bộ có tên thân thiện.

sudo ipset tạo ssh_friends iphash

Khi bạn đã có một bộ, bạn có thể thêm IP vào bộ đó.

Sudo ipset thêm ssh_friends 1.2.3.4
Sudo ipset thêm ssh_friends 11.22.33.44

Bây giờ bạn có thể sử dụng tập hợp bạn đã tạo trong một iptables quy tắc thay vì các IP riêng lẻ.

Sudo iptables -A INPUT -p tcp --destination-port 22 -m được đặt! --match-set ssh_friends src -j DROP
Michael Hampton avatar
lá cờ cz
Tôi nghĩ rằng anh ấy muốn trận đấu đảo ngược, mặc dù.
lá cờ cc
Ah, tôi đã trộn nó lên.... và quên giới hạn quy tắc đối với một cổng cụ thể...... đã sửa!
lá cờ in
Ipset đã tạo được lưu trữ trong bộ nhớ và sẽ biến mất sau khi khởi động lại. Có lẽ đáng để trỏ tới gói [ipset-persistent](https://packages.debian.org/bullseye/ipset-persistent) cũng như đối với các bản phân phối giống như debian. Vì vậy, thay vào đó `apt install ipset` có lẽ tốt hơn `apt install ipset-persistent`.
lá cờ cc
Cảm ơn @LutzWillek, đã cập nhật!
Điểm:-1
lá cờ in

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.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.