Điểm:0

Cách thiết lập wireguard + nixos để truy cập máy chủ (PostgreSQL, nginx) từ máy trạm?

lá cờ ma

Tôi muốn cấp quyền truy cập cho các nhà khai thác sử dụng wireguard cho các dịch vụ như PostgreSQL, nginx, ssh, v.v. mà không cần cung cấp IP công khai của máy chủ.

Tôi sử dụng nixos, nhưng một thiết lập đơn giản với wireguard + iptables có thể phù hợp với tôi.

Đường hầm được thiết lập và các gói được truyền, như được hiển thị (trên máy chủ):

¯ wg
giao diện: wg0
  khóa công khai: k4lOk+/rXONPolNI...
  khóa riêng: (ẩn)
  cổng nghe: 51820

ngang hàng: VCH3gPI0qu0rUKMR...
  điểm cuối: ...:51820
  IP được phép: 10.100.0.2/32
  cái bắt tay mới nhất: 32 giây trước
  chuyển khoản: 53,11 KiB đã nhận, 1,05 KiB đã gửi

Nhưng không thể kết nối với postgres với psql -h 10.100.0.2 -U postgreshoặc máy chủ web với cuộn tròn 10.100.0.1 từ máy khách (từ máy chủ nó hoạt động).

Tôi có máy chủ (nơi đặt PostgreSQL):

[Giao diện]
Địa chỉ = 10.100.0.1/32
Cổng nghe = 51820
Khóa riêng tư = AIaYgTe...

[Ngang nhau]
Khóa công khai = VCH3gPI0qu...
IP được phép = 10.100.0.2/32
Điểm cuối = x.x.x.x:51820

Tôi có khách hàng (peer1)

[Giao diện]
Khóa riêng tư = cLUTCqLAj2aq...
Cổng nghe = 51820
Địa chỉ = 10.100.0.2/32

[Ngang nhau]
Khóa công khai = k4lOk+/rXONP...
IP được phép = 0.0.0.0/0
Điểm cuối = x.x.x.x:51820
liên tụcKeepalive = 10

Tôi đã thử nhiều cách để thiết lập tường lửa, hiện tại:

  mạng.nat.enable = true;
  mạng.nat.externalInterface = "eth0";
  mạng.nat.internalInterfaces = [ "wg0" ];

  mạng.wireguard.interfaces = {
    wg0 = {
giao diện.
      ips = [ "10.100.0.1/32" ];
      nghePort = 51820;

        # ${pkgs.iptables}/bin/iptables -t nat -A PREROUTING -i wg0 -p tcp --match multiport --destination-ports 22,5432,443,80 -j DNAT --to-destination 192.168.88.1
        # ${pkgs.iptables}/bin/iptables -A INPUT -i wg0 -m state --state NEW -p tcp -m multiport --dports 80,443,22,5432 -j CHẤP NHẬN        
      postSetup = ''
        ${pkgs.iptables}/bin/iptables -I CHUYỂN ĐỔI 1 -i wg0 -j CHẤP NHẬN; 
        ${pkgs.iptables}/bin/iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADE
        ${pkgs.iptables}/bin/iptables -t nat -A PREROUTING -i wg0 -p tcp --match multiport --destination-ports 22,5432,443,80 -j DNAT --to-destination 127.0.0.1
      '';

      # Điều này hoàn tác lệnh trên
      postShutdown = ''
        ${pkgs.iptables}/bin/iptables -D PHÍA TRƯỚC -i wg0 -j CHẤP NHẬN; 
        ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
        ${pkgs.iptables}/bin/iptables -t nat -D PREROUTING -i wg0 -p tcp --match multiport --destination-ports 22,5432,443,80 -j DNAT --to-destination 127.0.0.1
      '';

      privateKeyFile = "/root/wireguard_private";

      đồng nghiệp = [
        # Danh sách các đồng nghiệp được phép.
        { # ngang hàng1
          publicKey = "VCH3gPI0qu0rUK...";
          allowIPs = [ "10.100.0.2/32" ];
        }
      ];
    };
  };

  mạng.firewall = {
    bật = đúng;
    allowPing = true;
    cho phépUDPPorts = [51820];

    allowTCPPorts = [ 80 443 22 ];

    interfaces.wg0.allowedTCPPorts = [ 993 68 80 443 22 5432 ];
  };  

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