Điểm:1

Làm cách nào để đưa địa chỉ ip vào danh sách trắng từ khối IP cụ thể hoặc từ một giao diện trong iptables?

lá cờ cn

Tôi có một hộp nhảy mà tôi sử dụng để truy cập hai cơ sở dữ liệu của mình, giả sử cơ sở dữ liệu A và cơ sở dữ liệu B của nó, mỗi cơ sở dữ liệu nằm trong địa chỉ IP riêng biệt.Tôi có một người khác chuyên làm việc trên cơ sở dữ liệu B, vì vậy tôi muốn hạn chế quyền truy cập chỉ vào DB đó. Chúng tôi sử dụng bộ bảo vệ dây để kết nối với hộp nhảy và chúng tôi có cấu hình bộ bảo vệ dây riêng để kết nối để mỗi người chúng tôi có giao diện khác nhau và nguồn IP khác nhau.

Tôi đã thử điều này nhưng điều này vẫn cho phép kết nối với cả DB:

*lọc
-A FORWARD -i eth0 -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A PHÍA TRƯỚC -i my-wg -j CHẤP NHẬN
-A VỀ PHÍA TRƯỚC -i other-person-wg ! -d XXX.XXX.XXX.XXX -j CHẤP NHẬN # cơ sở dữ liệu B ip
LÀM

* tự nhiên
:CHẤP NHẬN TRƯỚC [0:0]
:INPUT CHẤP NHẬN [0:0]
:CHẤP NHẬN ĐẦU RA [1:88]
:CHẤP NHẬN SAU ĐÓ [1:88]
-A POSTROUTING -s XXX.XXX.XXX.XXX -j MASQUERADE #đây là khối ip wireguard mà tôi và người khác sử dụng
LÀM

Đây là đầu ra của iptables -L -v:

Chuỗi INPUT (chính sách CHẤP NHẬN 0 gói, 0 byte)
 pkts byte đích prot chọn không tham gia đích nguồn         

Chuỗi FORWARD (chính sách CHẤP NHẬN 0 gói, 0 byte)
 pkts byte đích prot chọn không tham gia đích nguồn         
60374 7581K DOCKER-USER all -- mọi nơi mọi nơi            
60374 7581K DOCKER-ISOLATION-STAGE-1 tất cả -- mọi nơi mọi nơi mọi nơi            
22156 1788K CHẤP NHẬN tất cả -- bất kỳ docker0 nào ở bất cứ đâu ở bất kỳ đâu ctstate LIÊN QUAN, THÀNH LẬP
   93 5580 DOCKER all -- mọi docker0 mọi nơi mọi nơi            
22083 1169K CHẤP NHẬN tất cả -- docker0 !docker0 mọi nơi mọi nơi            
    0 0 CHẤP NHẬN tất cả -- docker0 docker0 mọi nơi mọi nơi            
 7799 3947K CHẤP NHẬN tất cả -- eth0 bất kỳ ở bất kỳ đâu ở bất kỳ đâu trên ctstate LIÊN QUAN,THÀNH LẬP
 8238 672K CHẤP NHẬN tất cả -- my-wg mọi nơi mọi nơi            
    0 0 CHẤP NHẬN tất cả -- other-person-wg mọi nơi !XXX.XXX.XXX.XXX # ip của cơ sở dữ liệu B

ĐẦU RA chuỗi (chính sách CHẤP NHẬN 0 gói, 0 byte)
 pkts byte đích prot chọn không tham gia đích nguồn         

Chuỗi DOCKER (1 tài liệu tham khảo)
 pkts byte đích prot chọn không tham gia đích nguồn         
    0 0 CHẤP NHẬN tcp -- !docker0 docker0 ở mọi nơi 172.17.0.2 tcp dpt:9181
    0 0 CHẤP NHẬN tcp -- !docker0 docker0 ở mọi nơi 172.17.0.4 tcp dpt:5000
   92 5520 CHẤP NHẬN tcp -- !docker0 docker0 ở mọi nơi 172.17.0.3 tcp dpt:9180

Chuỗi DOCKER-ISOLATION-STAGE-1 (1 tài liệu tham khảo)
 pkts byte đích prot chọn không tham gia đích nguồn         
22083 1169K DOCKER-ISOLATION-STAGE-2 tất cả -- docker0 !docker0 mọi nơi mọi nơi            
60374 7581K TRẢ LẠI tất cả -- bất kỳ ở bất kỳ đâu ở bất kỳ đâu            

Chuỗi DOCKER-ISOLATION-STAGE-2 (1 tài liệu tham khảo)
 pkts byte đích prot chọn không tham gia đích nguồn         
    0 0 DROP all -- bất kỳ docker0 nào ở bất kỳ đâu            
22083 1169K TRẢ LẠI tất cả -- bất kỳ bất kỳ nơi nào bất kỳ nơi nào            

Chuỗi DOCKER-USER (1 tài liệu tham khảo)
 pkts byte đích prot chọn không tham gia đích nguồn         
60374 7581K TRẢ LẠI tất cả -- bất kỳ ở bất kỳ đâu ở bất kỳ đâu

Làm cách nào để hạn chế quyền truy cập từ khối IP cụ thể hoặc từ giao diện để chỉ có quyền truy cập vào IP cụ thể trong iptables trên jumpbox?

Nikita Kipriyanov avatar
lá cờ za
Tôi đoán anh ấy đã được chấp nhận bởi chính sách `filter FORWARD` mặc định, chính là `CHẤP NHẬN`, nhưng chúng tôi không thấy chính sách đó trong câu hỏi của bạn. Đặt `iptables -P FORWARD DROP` hoặc `iptables -A FORWARD -j DROP`, sẽ hữu ích trong trường hợp đó. Nếu bạn không muốn chúng tôi đoán, vui lòng hiển thị `iptables-save` hoàn chỉnh, sẽ hiển thị chính sách bạn hiện có.
dennbagas avatar
lá cờ cn
Đó là `iptables-save` hoàn chỉnh mà tôi hiện có
setenforce 1 avatar
lá cờ us
Bạn có thể hiển thị `iptables - L -a -v`
dennbagas avatar
lá cờ cn
Không có tùy chọn `-a`, nhưng tôi đã cập nhật câu hỏi và thêm đầu ra của `iptables -L -v`
Điểm:1
lá cờ fr

Lệnh này cho biết "nếu lưu lượng truy cập mạng đến từ địa chỉ IP X, nhưng không có trên giao diện Y, thì hãy DROP nó." Lưu ý rằng nó nằm trong bảng thô, đây là lần truy cập bảng đầu tiên và nhanh nhất khi lưu lượng truy cập mạng đến với IPtables.

iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j THẢ

Bạn nên có một hoán vị khác của quy tắc này theo hướng ngược lại:

iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j DROP

Bạn có thể ghi nhật ký vi phạm các quy tắc này bằng bốn lệnh sau:

iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j LOG --log-prefix "Sai IP: "
iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j THẢ 
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j LOG --log-prefix "Giao diện sai: "
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j DROP

CHỈNH SỬA: Đã chỉnh sửa sau khi tôi nhận được thông tin rõ hơn trong nhận xét.

Quy tắc này cho biết "nếu lưu lượng truy cập đến từ địa chỉ IP X và không dành cho địa chỉ IP Z, thì hãy hủy lưu lượng truy cập."

iptables -t raw -A PREROUTING -s ${X} ! -d ${Z} -j DROP

Quy tắc này cho biết "nếu lưu lượng truy cập đến trên giao diện Y và không dành cho địa chỉ IP Z, thì hãy loại bỏ lưu lượng truy cập."

iptables -t raw -A PREROUTING -i ${Y} ! -d ${Z} -j DROP 

Đây là sự kết hợp của hai quy tắc đó, có nội dung "nếu lưu lượng truy cập đến từ địa chỉ IP X và đến trên giao diện Y và không dành cho địa chỉ IP Z, thì hãy bỏ lưu lượng truy cập."

iptables -t raw -A PREROUTING -s ${X} -i ${Y} ! -d ${Z} -j DROP.

Chỉ cần một lưu ý: Tôi thích sử dụng thô table nếu các quy tắc không yêu cầu theo dõi kết nối. Các thô table không theo dõi bất kỳ kết nối nào. Trong trường hợp này, không cần theo dõi kết nối cho các quy tắc này. Theo dõi kết nối là cần thiết cho tự nhiên bảng và cho theo dõi mô-đun (-m conntrack). Các thô table có hiệu suất cao hơn nhiều so với các bảng khác vì tính năng theo dõi kết nối chiếm nhiều tài nguyên hơn đáng kể trên máy chủ của bạn. Tuy nhiên, bạn có thể sử dụng bảng bộ lọc và nếu nó đơn giản hơn và có ý nghĩa hơn đối với bạn, thì hãy sử dụng bảng bộ lọc. Các quy tắc sẽ hoàn toàn giống nhau, nhưng chỉ -t thô sẽ trở thành -t bộ lọc

Khi các gói vào IPtables, chúng đi qua các bảng như sau:

raw -> mangle (nơi bắt đầu theo dõi kết nối) -> nat -> filter
dennbagas avatar
lá cờ cn
Tôi có thể thực hiện giới hạn đó bằng cách sử dụng PREROUTING trên bảng tự nhiên, điều tôi hỏi là "nếu lưu lượng truy cập mạng đến từ địa chỉ IP X VÀ không đến địa chỉ IP Z, thì DROP" HOẶC "nếu lưu lượng truy cập mạng đến từ giao diện Y VÀ không đến địa chỉ IP Z thì DROP"
lá cờ fr
Ồ, được rồi Tôi đã hiểu. `iptables -t raw -A PREROUTING -s ${X} ! -d ${Z} -j DROP` và `iptables -t raw -A PREROUTING -i ${Y} ! -d ${Z} -j DROP` nên thực hiện thủ thuật. Không chắc liệu điều này có hữu ích hay không, nhưng đây là sự kết hợp của hai quy tắc: `iptables -t raw -A PREROUTING -s ${X} -i ${Y} ! -d ${Z} -j DROP`.
dennbagas avatar
lá cờ cn
Tất cả các giải pháp của bạn hoạt động! Bạn có thể cập nhật bài đăng của mình để tôi có thể đánh dấu nó là câu trả lời đúng không. Ngoài ra, quy tắc này có thể được đặt trong bảng bộ lọc không? nếu vậy thì tương đương với các quy tắc nếu tôi muốn viết nó trên bảng lọc là gì? và có thể một lời giải thích về điều đó sẽ được đánh giá rất cao!

Đă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.