Điểm:1

Chỉ định tuyến mạng riêng trong VPN bảo vệ dây

lá cờ in

Tôi có một vài máy chủ phía sau bộ định tuyến NAT mà tôi muốn truy cập thông qua VPN bảo vệ dây. Tôi có thể cấu hình thành công mạng riêng, nhưng vẫn có điều gì đó khiến tôi bối rối.

Tôi muốn mỗi người ngang hàng:

  • truy cập lẫn nhau (172.9.9.*) qua VPN (thông qua wg0)
  • truy cập mọi máy chủ khác bên ngoài VPN (thông qua eth0).

Đây là lược đồ của mạng và cấu hình hiện tại:

âââââââ ââââââââââ ââ âââââââ
â S âââââ⤠Internet âââââ⤠A â
âââââââ âââââ¬âââââ ââ âââââââ
               â
               â
          ââââââ´ââââââ
          â NAT DHCP â
       âââ⤠Bộ định tuyến ââââ
       â ââââââââââââ â
       â â
    ââââ´âââ ââââ´âââ
    â X â â B â
    âââââââ âââââââ
  • S là máy chủ VPN và có thể truy cập trên internet thông qua IP tĩnh;
  • X là một "máy chủ tính toán", nó có thể truy cập internet, nhưng đứng sau NAT và IP của nó là động và không được biết trước;
  • Một là một "máy khách từ xa" muốn kết nối với X;
  • b là một "máy khách cục bộ" muốn kết nối với X và nó nằm trong cùng một mạng cục bộ.

tôi muốn cái đó Mộtb có thể kết nối với X xuyên qua S, nhưng tất cả các máy chủ này chỉ nên sử dụng VPN khi liên hệ với nhau chứ không phải khi truy cập internet.

Vì vậy, ví dụ, Một có thể ping trực tiếp tới google.com, nhưng sẽ ping X qua S.

Sau khi tìm kiếm và đọc tài liệu, tôi vẫn chưa rõ liệu có thể thực hiện việc này mà không cần sử dụng iptables và nếu có thể làm như vậy chỉ bằng cách sử dụng cấu hình wireguard.

Cấu hình hiện tại như sau:

## S wg0.conf

[Giao diện]
PrivateKey = S-khóa-riêng
Địa chỉ = 172.9.9.1/24
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
Cổng nghe = 51820

[Ngang nhau]
# MỘT
PublicKey = Khóa công khai
IP được phép = 172.9.9.100/32

[Ngang nhau]
#B
Khóa công khai = B-khóa công khai
IP được phép = 172.9.9.101/32

[Ngang nhau]
# X
PublicKey = X-khóa công khai
IP được phép = 172.9.9.10/32
# Một wg0.conf

[Giao diện]
Địa chỉ = 172.9.9.100/24
PrivateKey = A-khóa-riêng
DNS = 1.1.1.1

[Ngang nhau]
PublicKey = S-khóa công khai
Điểm cuối = S-ip-address:51820
IP được phép = 0.0.0.0/0, ::/0

bcấu hình của nó tương tự như Một, nhưng với IP 172.9.9.101 và khóa riêng khác nhau.

# X wg0.conf

[Giao diện]
Địa chỉ = 172.9.9.10/24
Khóa riêng = X-khóa riêng
DNS = 1.1.1.1

[Ngang nhau]
PublicKey = S-khóa công khai
Điểm cuối = S-ip-address:51820
IP được phép = 0.0.0.0/0, ::/0
PersistentKeepalive = 25 # Để giữ cho máy chủ có thể truy cập được

Cấu hình này hoạt động và tất cả các máy chủ có thể truy cập lẫn nhau thông qua VPN, nhưng tôi muốn lưu lượng truy cập CHỈ đó được hướng đến các máy chủ 172.9.9.* đi qua VPN này. Lưu lượng truy cập khác sẽ được định tuyến bởi cổng mặc định.

Điều khiến tôi bối rối là, nếu tôi thay đổi cấu hình của Một để có thể

IP được phép = 172.9.9.0/24

Sau đó Một, các gói được định tuyến như dự định (ví dụ: tôi có thể cuộn tròn ifconfig.me và lấy MộtIP công khai của tôi), nhưng nếu tôi làm tương tự trên X, nó sẽ không hoạt động và các gói sẽ không hoạt động 172.9.9.0/24 sẽ không được giao.

CHỈNH SỬA#1

Quên đề cập rằng tôi cũng sẽ thích nếu khi kết nối với X, các khách hàng địa phương như b sẽ không gửi các gói bên ngoài mạng cục bộ, vì vậy B -> Bộ định tuyến -> X và không B -> Bộ định tuyến -> S -> Bộ định tuyến -> X.

lá cờ mx
`AllowedIPs` là cách tốt nhất, như Justin đã giải thích rõ ràng trong câu trả lời của họ. Có thể bạn không thể `curl ifconfig.me` khi sử dụng `AllowedIPs = 172.9.9.0/24` do sự cố DNS. Kiểm tra xem bạn có thể `ping 8.8.8.8` không: nếu có thể, hãy sửa độ phân giải DNS của bạn.
Điểm:2
lá cờ cn

Bộ IP được phép đến các địa chỉ IP bạn muốn định tuyến đến/thông qua đồng đẳng.

Trong cấu hình trục và nan hoa thông thường, trên trục (S) của bạn, bạn sẽ định cấu hình IP được phép đối với từng thiết bị ngang hàng giống như bạn, chỉ định tuyến các gói đến từng thiết bị ngang hàng nếu chúng sử dụng địa chỉ IP WireGuard của thiết bị ngang hàng làm địa chỉ đích của chúng; và trên các nan hoa của bạn (A, B và X), bạn sẽ định cấu hình IP được phép đến CIDR của mạng WireGuard của bạn (172.9.9.0/24), chỉ định tuyến các gói đến trung tâm nếu chúng sử dụng địa chỉ IP WireGuard của thiết bị ngang hàng khác làm địa chỉ đích.

Vì vậy, với cấu hình bình thường, bạn sẽ truy cập A từ B hoặc X bằng địa chỉ IP WireGuard của A là 172.9.9.100, B từ A hoặc X với 172.9.9.101, và X từ A hoặc B với 172.9.9.10.

Nhưng nếu bạn cũng muốn có thể truy cập từng nan hoa thông qua địa chỉ IP được liên kết với NIC vật lý của nan hoa (ví dụ: eth0), bạn cần điều chỉnh IP được phép trên cả trung tâm và nan hoa để bao gồm các địa chỉ IP đó.

Ví dụ, nếu A eth0 địa chỉ là 198.51.100.65, B là 192.168.0.66, và X là 192.168.0.88, bạn sẽ điều chỉnh các đồng nghiệp trong cấu hình WireGuard của trung tâm thành:

## S wg0.conf
...

[Ngang nhau]
# MỘT
PublicKey = Khóa công khai
IP được phép = 172.9.9.100/32
IP được phép = 198,51.100,65/32

[Ngang nhau]
#B
Khóa công khai = B-khóa công khai
IP được phép = 172.9.9.101/32
IP được phép = 192.168.0.66/32

[Ngang nhau]
# X
PublicKey = X-khóa công khai
IP được phép = 172.9.9.10/32
IP được phép = 192.168.0.88/32

Và thiết lập IP được phép trong mỗi cấu hình của nói về điều này:

IP được phép = 172.9.9.0/24
IP được phép = 198,51.100,65/32
IP được phép = 192.168.0.66/32
IP được phép = 192.168.0.88/32

(Lưu ý bạn cũng có thể chỉ định tất cả các khối trên một dòng như IP được phép = 172.9.9.0/24, 198.51.100.65/32, 192.168.0.66/32, 192.168.0.88/32 nếu bạn thích.)


Với cấu hình hiện tại của bạn, nơi bạn có IP được phép = 0.0.0.0/0 trên X, khi bạn chạy cuộn tròn 198.51.100.65 từ X, điều đang xảy ra là X đang định tuyến các gói dành cho A (và mọi thứ khác) thông qua đường hầm WireGuard của nó tới S, và sau đó S đang định tuyến các gói không được mã hóa đó qua Internet tới A (được giả mạo bằng địa chỉ IP công khai của chính S); để đáp lại, A gửi các gói không được mã hóa qua Internet tới S, mà S định tuyến qua đường hầm WireGuard của nó tới X.

Nếu bạn muốn chắc chắn rằng S không bao giờ định tuyến các gói được tạo đường hầm qua mạng WireGuard của bạn ra Internet, bạn có thể điều chỉnh các quy tắc iptables của mình để ngăn chặn điều này; một cái gì đó như sau có thể sẽ thực hiện thủ thuật:

PostUp = iptables -A FORWARD -i wg0 -o wg0 -j CHẤP NHẬN; iptables -A FORWARD -i wg0 -o eth0 -j DROP; iptables -A FORWARD -i eth0 -o wg0 -j DROP
ARDVL avatar
lá cờ in
Cảm ơn bạn đã giải thích chi tiết này! Rất rõ ràng, mặc dù liên quan đến quyền truy cập bằng địa chỉ IP `NIC`, nhưng tôi vẫn chưa rõ: vì `X` và `B` đứng sau DHCP và IP của chúng có thể thay đổi (đặc biệt là đối với `B`), tôi không thể biết điều đó trước và đặt IP được phép phù hợp.
ARDVL avatar
lá cờ in
Ngoài ra, tôi đã thử đặt `AllowedIPs` thành `172.9.9.0/24` nhưng không được. Như đã đề cập trong một nhận xét, đó là sự cố DNS.
lá cờ cn
Để sử dụng địa chỉ NIC được gán DHCP, bạn phải định cấu hình máy chủ DHCP của mình để gán địa chỉ IP cố định X và B hoặc cập nhật cài đặt `AllowedIPs` của các đồng nghiệp khác mỗi khi một địa chỉ khác được gán cho X hoặc B. ( Nhưng cũng lưu ý rằng bạn có thể thực hiện kết hợp điều này, trong đó bạn truy cập A thông qua địa chỉ NIC của nó, nhưng X và B thông qua địa chỉ WireGuard của chúng -- trong trường hợp đó, bạn có thể chỉ cần bỏ qua địa chỉ NIC của X và B khỏi cài đặt `AllowedIPs` của mình .)
Điểm:0
lá cờ in

Tôi gặp sự cố với DNS: sử dụng IP được phép = 172.9.9.0/24 cho phép tôi ping 8.8.8.8, nhưng không google.com.

Tôi đã giải quyết bao gồm DNS giao diện trong các IP được phép, vì vậy tôi nhận được độ phân giải DNS qua VPN, nhưng lưu lượng truy cập không có trong VPN:

[Giao diện]
...
DNS = 1.1.1.1

[Ngang nhau]
...
IP được phép = 172.9.9.0/24, 1.1.1.1/32

Điều này không trả lời câu hỏi thứ hai mà tôi có: nếu có thể thực hiện Xb giao tiếp trực tiếp mà không cần thông qua S. Câu trả lời khác giúp hiểu điều đó.

CHỈNH SỬA

Có vẻ như nó cũng hoạt động bằng cách thả DNS trường, vì vậy nó sẽ sử dụng cùng một máy chủ DNS cho cả hai giao diện.

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