Truy cập về nhà là một dịch vụ riêng, không phải lối ra internet thứ hai. WireGuard kết thúc trên một máy Linux sau bộ định tuyến, bộ định tuyến giữ nhiệm vụ hiện tại, và máy tính xách tay chỉ gửi tiền tố của nhà qua đường hầm. Thiết bị nào chuyển tiếp và thiết bị nào kết thúc là quyết định mà mọi quy tắc sau đó dựa vào. Nếu chia sai, bạn sẽ gỡ lỗi NAT mà bạn không hề định thêm vào.

Quyết định ai chuyển tiếp và ai kết thúc

Bộ định tuyến sở hữu cửa vào công cộng: nó nhận gói UDP và chuyển cho máy chủ Linux. Máy chủ đó sở hữu bộ lắng nghe WireGuard và quyết định chuyển tiếp vào LAN. Trên thực tế, ánh xạ gửi UDP 51820 đến 192.168.50.10, và cổng riêng của ứng dụng vẫn đóng. Tách vai trò giúp tường lửa ngắn gọn.

Viết kế hoạch địa chỉ trước khi tạo giao diện. Bộ định tuyến 192.168.50.1, cổng 192.168.50.10, dịch vụ 192.168.50.20, đường hầm 10.77.0.0/24 với cổng .1 và máy tính xách tay .2. Dải của đường hầm không được chồng lên mạng mà máy tính xách tay đã đến được, nếu không các đích trở nên mơ hồ. NAT cấp nhà mạng hoặc bộ định tuyến phía trên có thể chặn truy cập vào, và không việc chuyển tiếp cổng cục bộ nào sửa được điều đó.

Trao đổi khóa, rồi định cỡ AllowedIPs

Tạo một cặp khóa riêng cho mỗi đầu và chỉ chuyển khóa công khai qua kênh đã xác minh. Mục peer của cổng chỉ cho phép nguồn đường hầm của máy tính xách tay, vì LAN của nhà nằm sau cổng chứ không nằm sau máy tính xách tay. Đặt LAN vào mục đó mô tả một cấu trúc mà bạn không xây.

[Interface]
Address = 10.77.0.2/32
PrivateKey = LAPTOP_PRIVATE_KEY_BASE64

[Peer]
PublicKey = HOME_PUBLIC_KEY_BASE64
Endpoint = home-vpn.example.com:51820
AllowedIPs = 192.168.50.0/24, 10.77.0.1/32

AllowedIPs là tiền tố của nhà cộng địa chỉ đường hầm của cổng, không bao giờ là 0.0.0.0/0, để việc duyệt web thông thường giữ đường đi cục bộ. Giữ một chủ sở hữu cấu hình, và không bao giờ gắn cùng giao diện vào trình quản lý mạng thứ hai.

Tuyến quay về là phần mà người ta bỏ qua

Thiết kế này giữ nguồn 10.77.0.2 của máy tính xách tay thay vì che nó thành cổng, nên các thiết bị trong nhà phải biết cách trả lời. Thêm tuyến tĩnh trên bộ định tuyến của nhà cho 10.77.0.0/24 với 192.168.50.10 là chặng kế tiếp, và đọc xem wg-quick suy ra gì từ AllowedIPs trong tài liệu tham chiếu của nó. Không có tuyến đó, một cuộc bắt tay đã hoàn tất vẫn tồn tại cùng với các phản hồi ứng dụng không bao giờ đến.

Nếu bộ định tuyến không mang được tuyến đó, hãy chọn một thiết kế quay về đã được ghi lại. Thêm NAT một cách lặng lẽ thay vào đó lại thay đổi mô hình nguồn mà bạn vừa viết.

Chỉ cho phép một dịch vụ, không phải cả mạng con

Bật chuyển tiếp IPv4 trên cổng và giữ ba nhiệm vụ của tường lửa tách biệt: cho bộ lắng nghe WireGuard đi qua, chuyển nguồn của máy tính xách tay chỉ đến 192.168.50.20, và để phần còn lại của mạng nhà đóng với peer đó. Tích hợp các quy tắc vào trình quản lý tường lửa đang dùng thay vì xóa sạch nó. Một tuyến cho toàn bộ tiền tố của nhà không phải là quyền dùng mọi thiết bị bên trong.

Xác thực của chính ứng dụng và tường lửa của máy chủ là một cổng riêng. Hãy nêu tên dịch vụ mà bộ quy tắc cho phép, để người đánh giá tiếp theo có thể đối chiếu với nhiệm vụ dự định.

Kiểm tra từ bên ngoài, rồi gỡ bỏ gọn gàng

Đưa các hồ sơ lên qua chủ sở hữu của chúng, xác nhận bắt tay, rồi chạy ứng dụng dự định từ một mạng bên ngoài đã được phê duyệt và kiểm tra phản hồi. Hãy thử một dịch vụ trong nhà phải tiếp tục bị từ chối, vì một quy tắc dễ dãi là vô hình cho đến khi có thứ gì đó dùng nó. Với HTTPS, dùng tên trên chứng chỉ và để quá trình xác thực chạy; gõ địa chỉ thô và bỏ qua cảnh báo không chứng minh được gì về đường đi. PersistentKeepalive là tùy chọn: nó giúp một peer bị NAT sau thời gian rảnh, nhưng nó không phải tuyến bị thiếu hay bản sửa quyền.

Địa chỉ công cộng động cần cập nhật DNS, và máy tính xách tay phải phân giải lại điểm cuối sau khi thay đổi; các bản ghi DNS mới không di chuyển điểm cuối đã cấu hình. Gỡ máy tính xách tay bằng cách xóa peer của nó khỏi cấu hình đã lưu và đang hoạt động; chỉ xóa hồ sơ máy tính xách tay không thu hồi ủy quyền của cổng.

Bài viết liên quan