Điểm:0

Tường lửa chặn SSH giữa các máy khách trên WireGuard LAN

lá cờ gb

Điều gì cần được cho phép trong tường lửa để các máy khách WireGuard có thể kết nối với nhau thông qua SSH?


thiết lập

Tôi có hai máy khách và một máy chủ trên mạng WireGuard VPN. Tất cả đều đang chạy Debian 11.

KHÁCH HÀNG A -------- MÁY CHỦ -------- KHÁCH HÀNG B
10.0.1.2 10.0.1.1 10.0.1.3

Những gì có thể được thực hiện

  • Tôi có thể SSH từ máy khách đến máy chủ.
  • Tôi có thể SSH từ máy chủ đến một trong hai máy khách.

Vấn đề: Nhưng khi tôi thử SSH máy khách đến máy khách, tôi nhận được "ssh: kết nối với máy chủ 10.0.1.2 cổng 22: Không có đường đến máy chủ"


Xử lý sự cố

  1. Đường dẫn giữa các máy là lên vì tôi có thể ping...
    • máy khách đến máy chủ,
    • máy chủ đến máy khách,
    • và khách hàng đến khách hàng.
  2. Các cổng có thể truy cập được vì tôi có thể telnet...
    • từ máy chủ đến một trong hai máy khách trên cổng 22.
    • từ một trong hai máy khách đến máy chủ trên cổng 22.

Vấn đề: Nhưng khi tôi thử kết nối máy khách telnet với máy khách, tôi nhận được thông báo "telnet: Không thể kết nối với máy chủ từ xa: Không có đường đến máy chủ"


Điều gì đã được xác nhận

  • SSH là một dịch vụ được liệt kê trên tường lửa: tường lửa-cmd --list-services lợi nhuận ssh
  • ip-foward được đặt trên kernel: sysctl -a lợi nhuận net.ipv4.ip_forward = 1
  • Chuyển tiếp được đặt trên iptables: iptables-save lợi nhuận -A VỀ PHÍA TRƯỚC -i wg0 -o wg0 -j CHẤP NHẬN
  • Vô hiệu hóa tường lửa trên máy chủ KHÔNG cho phép kết nối SSH giữa hai máy khách WireGuard.

Cảm ơn sự giúp đỡ và con trỏ của bạn.

lá cờ fr
Cho chúng tôi thấy đầu ra `ip route show` từ các máy khách.
Điểm:1
lá cờ cn

Mặc dù tường lửa nói chung là một công cụ tuyệt vời để định cấu hình tường lửa trên hộp Linux, nhưng đối với trường hợp sử dụng cụ thể này - chuyển tiếp lưu lượng truy cập cho các máy chủ khác - việc sử dụng hơi khó khăn. Tôi khuyên bạn nên tắt nó trên máy chủ của mình và chỉ sử dụng trực tiếp iptables (hoặc nftables).

Tuy nhiên, nếu bạn thực sự muốn sử dụng tường lửa, hãy thử điều này (với quyền root):

1. Tạo vùng tùy chỉnh cho giao diện WireGuard của bạn để chấp nhận tất cả lưu lượng truy cập:
tường lửa-cmd -- Permanent --new-zone=mywg
tường lửa-cmd -- Permanent --zone=mywg --set-target=CHẤP NHẬN
tường lửa-cmd --reload
2. Thêm các quy tắc "rich" vào vùng để từ chối các kết nối gửi đến từ WireGuard đến chính máy chủ:
tường lửa-cmd --zone=mywg --add-rich-rule='rule family="ipv4" priority="30001" giao thức giá trị="tcp" từ chối'
tường lửa-cmd --zone=mywg --add-rich-rule='rule family="ipv4" priority="30002" protocol value="udp" reject'
tường lửa-cmd --zone=mywg --add-rich-rule='rule family="ipv6" priority="30003" giao thức giá trị="tcp" từ chối'
tường lửa-cmd --zone=mywg --add-rich-rule='rule family="ipv6" priority="30004" protocol value="udp" reject'
3. Thêm quy tắc "trực tiếp" để cho phép chuyển tiếp các kết nối IPv4 SSH giữa các máy chủ WireGuard khác và từ chối mọi thứ khác:
tường lửa-cmd --direct --add-rule bộ lọc ipv4 PHÍA TRƯỚC 0 -i wg0 -m state --state ĐÃ THÀNH LẬP, LIÊN QUAN -j CHẤP NHẬN
tường lửa-cmd --direct --add-rule bộ lọc ipv4 PHÍA TRƯỚC 1 -i wg0 -o wg0 -m state --state MỚI -p tcp --dport 22 -j CHẤP NHẬN
tường lửa-cmd --direct --add-rule ipv4 filter FORWARD 2 -i wg0 -j REJECT
tường lửa-cmd --direct --add-rule bộ lọc ipv6 PHÍA TRƯỚC 0 -i wg0 -j TỪ CHỐI
4. Liên kết vùng với giao diện WireGuard của bạn và lưu các thay đổi của bạn:
tường lửa-cmd --zone=mywg --add-interface=wg0
tường lửa-cmd --runtime-to- Permanent

Bạn có thể thêm nhiều quy tắc trực tiếp IPv4 hơn giữa 0 và 2 (đánh số lại TỪ CHỐI là quy tắc cuối cùng) nếu bạn muốn cho phép các loại lưu lượng khác giữa các máy chủ WireGuard của mình (hoặc chỉ thay thế quy tắc 0 và 1 bằng một quy tắc duy nhất như -i wg0 -o wg0 -J CHẤP NHẬN nếu bạn muốn cho phép máy chủ chuyển tiếp bất kỳ và tất cả lưu lượng truy cập giữa các máy chủ WireGuard của bạn).

Xem phần Hub and Spoke của cái này Cách sử dụng WireGuard với Firewalld bài viết để được giải thích đầy đủ (Host C là máy chủ của bạn trong bài viết này).

user371793 avatar
lá cờ gb
Cảm ơn sự giúp đỡ của bạn @JustinLudwig

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