Giả sử chúng ta có thiết lập Wireguard như trong sơ đồ bên dưới (xem liên kết imgur, không thể đăng hình ảnh nếu không có danh tiếng) với PostUp & PostDown sau:
PostUp = iptables -A FORWARD -i wg0 -j CHẤP NHẬN; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j CHẤP NHẬN; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
https://i.stack.imgur.com/nXEmF.png
Nơi khách hàng có thể truy cập mạng riêng của chúng tôi thông qua Wireguard (máy chủ không phải là máy khách Wireguard mà chỉ có giao diện mạng thứ hai được kết nối với mạng riêng của chúng tôi. Trong trường hợp này, nếu chúng tôi xem nhật ký truy cập trong các dịch vụ đang chạy trên máy chủ của mình, chúng tôi sẽ thấy rằng IP máy khách là địa chỉ IP của máy chủ Wireguard (172.16.2.1). Điều này đúng vì MASQUERADE được sử dụng để thay thế IP nguồn trong khi chuyển tiếp. Kết quả ưa thích của chúng tôi là xem các IP máy khách trong các dịch vụ đang chạy trên máy chủ của chúng tôi (tức là 172.16.2.2 hoặc 172.16.2.3). Có cách nào để đặt định tuyến trên máy chủ Wireguard theo cách sao cho IP nguồn được giữ nguyên khi chuyển tiếp yêu cầu qua Wireguard không? Vì vậy, chúng tôi có thể chặn và cho phép ứng dụng khách dựa trên IP máy khách trong chính các máy chủ và có nhật ký truy cập có thể theo dõi được đối với các máy khách cụ thể không?
Tái bútTôi biết cách định cấu hình iptables theo cách sắp xếp quyền kiểm soát truy cập từ đó, nhưng đó không phải là giải pháp ưa thích nhất vì không có cách nào để truy xuất xem ai đã làm gì trên mạng.