Projekt

Allgemein

Profil

Aktionen

Aufgabe #2269

offen

Wireguard auf SSH Jumphost eingerichtet

Von MathisBluemel vor etwa 2 Monaten hinzugefügt. Vor etwa 2 Monaten aktualisiert.

Status:
Gesichtet
Priorität:
Normal
Zugewiesen an:
Kategorie:
-
Beginn:
24.02.2025
Abgabedatum:
28.02.2025 (seit 46 Tagen verspätet)
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Ich habe Wireguard auf dem Jumphost eingerichtet um das konfigurieren unserer Systeme zu erleichtern. Statt einen SSH-Proxy im Hintergrund laufen zu lassen und einen speziell konfigurierten Browser benutzen zu müssen kann man über den Wireguard Tunnel direkt auf die jeweiligen IPs zugreifen. Man muss nur den VPN aktivieren.

Aktionen #1

Von MathisBluemel vor etwa 2 Monaten aktualisiert · Edited

Ich habe folgenden Text an die configuration.nix rangehangen:

#matmel@: Nachfolgend die Wireguard Konfiguration welche ich hier gefunden hab: https://nixos.wiki/wiki/WireGuard

  networking.nat.enable = true;
  networking.nat.externalInterface = "eth0";
  networking.nat.internalInterfaces = [ "wg0" ];
  networking.firewall = {
    allowedUDPPorts = [ 1194 ];
  };

  networking.wireguard.interfaces = {
    # "wg0" is the network interface name. You can name the interface arbitrarily.
    wg0 = {
      # Determines the IP address and subnet of the server's end of the tunnel interface.
      ips = [ "10.8.0.230/24" ];

      # The port that WireGuard listens to. Must be accessible by the client.
      listenPort = 1194;

      # This allows the wireguard server to route your traffic to the internet and hence be like a VPN
      # For this to work you have to set the dnsserver IP of your router (or dnsserver of choice) in your clients
      postSetup = ''
        ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE;
    ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE;
      '';

      # This undoes the above command
      postShutdown = ''
        ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE;
    ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE;
      '';

      # Path to the private key file.
      #
      # Note: The private key can also be included inline via the privateKey option,
      # but this makes the private key world-readable; thus, using privateKeyFile is
      # recommended.
      privateKeyFile = "/var/wg-keys/private";

      peers = [
        # List of allowed peers.
        { #Mathis T480 matmel@
          publicKey = "g8u9+Xe9GX5zjUSTIWHb2Ja38ohbSpv84Xuf2271jl0=";
          # List of IPs assigned to this peer within the tunnel subnet. Used to configure routing.
          allowedIPs = [ "10.8.0.3/32" ];
        }
      ];
    };
  };

Außerdem wurde eine Regel in der OPNsense Firewall erstellt welche den Port 1194 an den Jumphost weiterleitet. Warum 1194 und nicht 51820(Wireguard Standardport)? Im Eduroam ist (meines Wissens) der Port 1194 der einzige Port welcher für UDP IN und OUT freigegeben ist.

Wenn weitere Mitglieder den VPN benutzen möchten müssen sie nur ihren Wireguard Public Key und eine IP Adresse (10.8.0.0/24 Netz) welche noch nicht vergeben ist eintragen (und die logischerweise in ihrer Wireguard Konfig auch vermerken)

Aktionen #2

Von MathisBluemel vor etwa 2 Monaten aktualisiert

  • Status wurde von Neu zu Erledigt geändert
Aktionen #3

Von PaulRiegel vor etwa 2 Monaten aktualisiert

  • Status wurde von Erledigt zu Gesichtet geändert

Bitte erst einmal wieder entfernen! (Ich nehme an, dass das für keinen Menschen stressig ist.) Sorry!

Ich habe den Eindruck, dass das ganz schön "hingerotzt" ist. (Wenn ich was mit eth1 lese und vermuten kann, dass die erklärenden Kommentare nur einfach dumm kopiert wurden, dann bekomme ich ein unangenehmes Gefühl.)

BTW: Warum wurde sich für iptables, und nicht nftables entschieden?

Spoiler: Theoretische Frage: Wenn ein neuer Bereich an nicht öffentlichen Adressen für IP in Gebrauch kommt, dann wird das wo vermerkt? (Frage zum Trollen: Wurde sich bemüht zu prüfen, dass der Bereich nicht bereits schon verwendet wurde?)

Aktionen #4

Von PaulRiegel vor etwa 2 Monaten aktualisiert

  • Abgabedatum wurde auf 28.02.2025 gesetzt

Also damit wir uns nicht falsch verstehen: Grundsätzlich kann - wenn das wem was bringt - die Anwendung WireGuard installiert und benutzt werden.

Aber bitte erst einmal - damit so nicht einfach so "deployt" wird - erst einmal vermerken die Zeilen der Konfiguration (verstehen und) erklärend dokumentieren.

Aktionen #5

Von MathisBluemel vor etwa 2 Monaten aktualisiert · Edited

Okay, ich stelle die Kopie der alten config wieder her und speichere die jetzige configuration.nix als Arbeitskopie im selben Ordner unter wg.configuration.nix.

Ich habe auch noch gleich alle Kommentare(der Wireguardsektion) gegen meine Kommentare ersetzt.

Ich habe iptables benutzt weil es im Beispiel im Nix Wiki auch so gemacht wurde und ich habe es bei vielen anderen Wireguard Server Konfigs auch gesehen. Da Göran aber meinte, dass nftables Regeln besser zu lesen sind, werde ich demnächst versuchen diese zu übersetzen.

Ich habe in der Netbox nachgeschaut und wir haben keine Einträge, welche den Adressbereich 10.8.0.0/24 benutzen.
Ich denke wir können in dem Fall einfach die Peers welche wir der Nixconfig hinzufügen in die Netbox eintragen. So sieht man dass der Adressbereich vergeben ist.

Aktionen

Auch abrufbar als: Atom PDF