Zum Inhalt springen

VPN unter NixOS

Aus Helpdesk
Version vom 26. Januar 2026, 10:19 Uhr von Schmidhuber (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= VPN unter NixOS = Diese Anleitung beschreibt die Einrichtung des FernUni Hagen VPN unter NixOS mit vpnc. == Voraussetzungen == * NixOS mit NetworkManager * FernUni Hagen Zugangsdaten * 2FA-Token (z.B. Authenticator-App) == Installation == Füge folgende Pakete zur <code>environment.systemPackages</code> in deiner <code>configuration.nix</code> hinzu: <syntaxhighlight lang="nix"> environment.systemPackages = with pkgs; [ networkmanager-vpnc vpn…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

VPN unter NixOS

Diese Anleitung beschreibt die Einrichtung des FernUni Hagen VPN unter NixOS mit vpnc.

Voraussetzungen

  • NixOS mit NetworkManager
  • FernUni Hagen Zugangsdaten
  • 2FA-Token (z.B. Authenticator-App)

Installation

Füge folgende Pakete zur environment.systemPackages in deiner configuration.nix hinzu:

environment.systemPackages = with pkgs; [
  networkmanager-vpnc
  vpnc
];

Grundkonfiguration

Erstelle die VPN-Konfigurationsdatei über NixOS:

environment.etc."vpnc/fernuni.conf".text = ''
  IPSec gateway vpn.fernuni-hagen.de
  IPSec ID IPsec
  IPSec secret IPsec
  IKE Authmode psk
  Xauth username DEIN_BENUTZERNAME
'';

Verbindung herstellen

sudo vpnc fernuni

Wichtiger Hinweis zur Passwort-Eingabe

Vorlage:Warnung

Die Eingabereihenfolge ist:

  1. Erste Aufforderung "Enter password": Dein Passwort
  2. Zweite Aufforderung "Enter password": Nur der 6-stellige 2FA-Token (nicht Passwort+Token!)

Der Server sendet zwar die korrekte Nachricht ("Bitte jetzt den Token-Code eingeben:"), aber vpnc ignoriert diese und zeigt stattdessen die generische Passwort-Aufforderung an.

Vorlage:Hinweis

Verbindung trennen

sudo vpnc-disconnect

Passwort speichern (optional)

Es ist möglich, das Passwort in der Konfiguration zu hinterlegen:

environment.etc."vpnc/fernuni.conf".text = ''
  IPSec gateway vpn.fernuni-hagen.de
  IPSec ID IPsec
  IPSec secret IPsec
  IKE Authmode psk
  Xauth username DEIN_BENUTZERNAME
  Xauth password DEIN_PASSWORT
'';

Vorlage:Warnung

Split Tunneling

Standardmäßig wird der gesamte Netzwerkverkehr durch das VPN geleitet. Um nur FernUni-Traffic über das VPN zu routen:

Automatische Konfiguration

Erstelle ein Wrapper-Script für vpnc-script:

environment.etc."vpnc/fernuni.conf".text = ''
  IPSec gateway vpn.fernuni-hagen.de
  IPSec ID IPsec
  IPSec secret IPsec
  IKE Authmode psk
  Xauth username DEIN_BENUTZERNAME
  Script /etc/vpnc/vpnc-script-split
'';

environment.etc."vpnc/vpnc-script-split" = {
  mode = "0755";
  text = ''
    #!/bin/sh
    # Force split tunneling for FernUni network only
    export CISCO_SPLIT_INC=1
    export CISCO_SPLIT_INC_0_ADDR=132.176.0.0
    export CISCO_SPLIT_INC_0_MASK=255.255.0.0
    export CISCO_SPLIT_INC_0_MASKLEN=16
    export CISCO_SPLIT_INC_0_PROTOCOL=0
    export CISCO_SPLIT_INC_0_SPORT=0
    export CISCO_SPLIT_INC_0_DPORT=0

    exec ${pkgs.vpnc-scripts}/bin/vpnc-script "$@"
  '';
};

Manuelle Konfiguration

Alternativ nach dem Verbinden manuell ausführen:

# VPN-Default-Route entfernen
sudo ip route del default dev tun0

# Nur FernUni-Netzwerk über VPN routen
sudo ip route add 132.176.0.0/16 dev tun0

Überprüfung

# Sollte normale Schnittstelle zeigen (z.B. enp0s31f6)
ip route get 1.1.1.1

# Sollte tun0 zeigen
ip route get 132.176.1.1

# Öffentliche IP prüfen (sollte NICHT 132.176.x.x sein)
curl ifconfig.me

Fehlerbehebung

PAYLOAD_MALFORMED Fehler

Dieser Fehler kann auftreten, wenn:

  • Der 2FA-Token falsch eingegeben wurde
  • Der Token abgelaufen ist (zu lange gewartet)
  • Copy & Paste Probleme verursacht hat

Lösung: Erneut verbinden und Token manuell eintippen.

Debug-Ausgabe

Für detaillierte Fehleranalyse:

sudo vpnc --debug 99 fernuni

Siehe auch