Điểm:0

Wireguard giới hạn quyền truy cập vào các dịch vụ và máy trong mạng cục bộ

lá cờ ua

Tôi đang chạy "Máy chủ" Wireguard trong mạng cục bộ của mình, tôi có thể truy cập từ xa thông qua IP công khai tĩnh của mình. Tôi muốn có thể giới hạn quyền truy cập vào các máy ngang hàng từ xa của Wireguard đối với các dịch vụ/máy trong lan của tôi, nơi tôi lưu trữ máy chủ khác.

Ví dụ: Máy chủ 1 (192.168.1.23 | 10.0.0.1) đã cài đặt Wireguard + Nextcloud + Jellyfin trong cùng một máy Máy chủ 2 (192.168.1.62) với Photoprism

Ngang hàng 1 từ xa (10.0.0.2 | ip động) Ngang hàng từ xa 2 (10.0.0.3 | ip động)

Tôi muốn:

1- Cho phép peer1 (10.0.0.2) truy cập Server 1 Nextcloud + Jellyfin và truy cập Server 2 vào Photoprism.

2- Cho phép Peer2 (10.0.0.3) chỉ truy cập Máy chủ 1 Nextcloud chứ không phải Jellyfin và chặn quyền truy cập Máy chủ 2

Hiện tại tôi có thể truy cập tất cả các máy trong mạng của mình từ tất cả các Máy ngang hàng.

Quy tắc iptables:

PostUp = iptables -A FORWARD -i %i -j CHẤP NHẬN; iptables -A FORWARD -o %i -j CHẤP NHẬN; iptables -t nat -A POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -A POSTROUTING -o wg0
PostDown = iptables -D FORWARD -i %i -j CHẤP NHẬN; iptables -D CHUYỂN ĐI -o %i -j CHẤP NHẬN; iptables -t nat -D POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -D POSTROUTING -o wg0

tôi đã làm theo cái này hướng dẫn, từ Justin Ludwig bởi vì cấu trúc liên kết Site to Point rất giống với cấu trúc liên kết của tôi. Vì vậy, tôi đã cố gắng sao chép các quy tắc Iptables bằng các quy tắc sau:

# giả trang
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x200
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE
PostDown = iptables -t mangle -D PREROUTING -i wg0 -j MARK --set-mark 0x200
PostDown = iptables -t nat -D POSTROUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE

# bảo vệ dây xâm nhập
PreUp = iptables -I INPUT -p udp --dport 2332 -j CHẤP NHẬN
PostDown = iptables -D INPUT -p udp --dport 2332 -j CHẤP NHẬN

# tường lửa trang web
PreUp = iptables -N wg0-filter
PreUp = iptables -N to-photoprism
PreUp = iptables -N to-jellyfin
PreUp = iptables -N to-nextcloud

PreUp = iptables -I INPUT -i wg0 -j wg0-filter
PreUp = iptables -I FORWARD -i wg0 -j wg0-filter
PreUp = iptables -I FORWARD -o wg0 -j wg0-filter
PreUp = iptables -I OUTPUT -o wg0 -j wg0-filter

PreUp = iptables -A trạng thái wg0-filter -m --state ĐÃ THÀNH LẬP, LIÊN QUAN -j CHẤP NHẬN
PreUp = iptables -A wg0-filter -d 192.168.1.63 -p tcp --dport 2342 -j to-photoprism
PreUp = iptables -A wg0-filter -d 192.168.1.23 -p tcp --dport 8096 -j to-jellyfin
PreUp = iptables -A wg0-filter -d 192.168.1.23 -p tcp --dport 80 -j to-nextcloud
PreUp = iptables -A wg0-filter -j TỪ CHỐI

PreUp = iptables -A to-photoprism -s 10.0.0.2 -j CHẤP NHẬN

PreUp = iptables -A to-jellyfin -s 10.0.0.2 -j CHẤP NHẬN
PreUp = iptables -A to-jellyfin -s 10.0.0.3 -j CHẤP NHẬN

PreUp = iptables -A to-nextcloud -s 10.0.0.2 -j CHẤP NHẬN
PreUp = iptables -A to-nextcloud -s 10.0.0.3 -j CHẤP NHẬN

PostDown = iptables -D INPUT -i wg0 -j wg0-filter
PostDown = iptables -D FORWARD -i wg0 -j wg0-filter
PostDown = iptables -D FORWARD -o wg0 -j wg0-filter
PostDown = iptables -D OUTPUT -o wg0 -j wg0-filter

PostDown = iptables -F to-photoprism
PostDown = iptables -F to-jellyfin
PostDown = iptables -F to-nextcloud

PostDown = iptables -X to-photoprism
PostDown = iptables -X to-jellyfin
PostDown = iptables -X tới nextcloud

Điều này đã không làm việc, Peer 1 và Peer 2 có thể kết nối với Server 1, cả hai dịch vụ, nhưng không phải Server 2.

Tôi không hiểu rõ những gì tôi phải thay đổi để làm cho công việc này hoạt động, tôi sẽ rất vui nếu ai đó có thể tham gia.

Cảm ơn trước

Điểm:0
lá cờ cn

Nhìn chung, các quy tắc iptables của bạn có vẻ tốt đối với tôi; Mặc du:

  1. Trong phần mô tả câu hỏi, bạn đề cập đến Máy chủ 2 có địa chỉ IP là 192.168.1.62; nhưng trong quy tắc iptables, có vẻ như bạn đang sử dụng 192.168.1.63 cho nó:

     iptables -A wg0-filter -d 192.168.1.63 -p tcp --dport 2342 -j to-photoprism
    

    Đó có phải là một lỗi đánh máy ở nơi này hay nơi khác?

  2. Trong phần mô tả, bạn đề cập đến Peer 2 (10.0.0.3) không được truy cập vào Jellyfin; nhưng trong quy tắc iptables, bạn cấp cho nó quyền truy cập bằng dòng này:

     iptables -A to-jellyfin -s 10.0.0.3 -j CHẤP NHẬN
    

    Có lẽ bạn có nghĩa là để loại bỏ quy tắc này?

  3. tôi không thấy bất kỳ Đăng Xuống các lệnh để xé xuống bộ lọc wg0 chuỗi, giống như bạn có đối với các chuỗi tùy chỉnh khác; đảm bảo bạn bao gồm chúng:

     PostDown = iptables -F wg0-filter
     PostDown = iptables -X wg0-filter
    

    Không có các lệnh xé nhỏ này, nếu bạn thực hiện các thay đổi và khởi động lại, chuỗi wg0 cuối cùng có thể sử dụng các quy tắc cũ từ các lần thử trước, thay vì các bản cập nhật mới hơn. (Và chắc chắn rằng bạn làm theo Thực hiện thay đổi cấu hình lời khuyên từ bài báo, tắt giao diện WireGuard trước khi thực hiện thay đổi cấu hình và khởi động lại -- chạy Sudo iptables-save khi giao diện ngừng hoạt động, hãy kiểm tra kỹ xem bạn có bất kỳ quy tắc hoặc chuỗi cũ nào chưa được dọn sạch không.)

lá cờ ua
Cảm ơn a lor đã dành sự thuần phục để trả lời cho bài viết cẩu thả của tôi. Tôi thực sự xin lỗi vì đã cẩu thả. IP thực sự sai trong tệp wg0.conf của tôi. "PostDown = iptables -X wg0-filter" chỉ là một lỗi đánh máy khi thực hiện bài đăng. Không phải nó hoạt động như nó nên. Cảm ơn các bài hướng dẫn và bài viết tuyệt vời!

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