From 60e0f53029ddd3505efed2c67cef28f52e3d488a Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 29 Sep 2026 22:19:18 +0200 Subject: [PATCH] =?UTF-8?q?migrate.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- migrate.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 migrate.sh diff --git a/migrate.sh b/migrate.sh new file mode 100644 index 0000000..8fef805 --- /dev/null +++ b/migrate.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Prüfen ob das Skript als root ausgeführt wird +if [ "$EUID" -ne 0 ]; then + echo "Bitte als root ausführen (sudo ./migrate.sh)" + exit 1 +fi + +# 1. Abhängigkeiten installieren +echo "[1/5] Installiere iptables und wireguard-tools..." +apt-get update > /dev/null +apt-get install -y iptables wireguard-tools + +# Prüfen, ob das netmaker Interface existiert +if ! ip link show netmaker > /dev/null 2>&1; then + echo "Fehler: Interface 'netmaker' nicht gefunden. Ist Netmaker auf diesem Node aktiv?" + exit 1 +fi + +# 2. IP-Adresse aus dem Netmaker-Interface extrahieren +echo "[2/5] Lese IP-Adresse aus netmaker Interface..." +NM_IP=$(ip -4 addr show dev netmaker | grep -oP '(?<=inet\s)\d+(\.\d+){3}/\d+') + +if [ -z "$NM_IP" ]; then + echo "Fehler: Konnte keine IPv4-Adresse auf dem Interface 'netmaker' finden." + exit 1 +fi +echo " Gefundene IP: $NM_IP" + +# 3. Konfiguration exportieren und anpassen +echo "[3/5] Generiere neue wg0.conf..." +mkdir -p /etc/wireguard +TMP_CONF="/tmp/wg0.conf.tmp" + +# Aktuellen Status aus dem Kernel dumpen +wg showconf netmaker > "$TMP_CONF" + +# IP und iptables Regeln direkt nach dem [Interface] Block einfügen +sed -i "/^\[Interface\]/a Address = $NM_IP\nPostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE" "$TMP_CONF" + +# 4. Vorschau und Bestätigung +echo -e "\n==========================================" +echo "VORSCHAU DER NEUEN /etc/wireguard/wg0.conf" +echo "==========================================" +cat "$TMP_CONF" +echo "==========================================" + +read -p "Sieht die Konfiguration gut aus und soll angewendet werden? (j/N): " confirm +if [[ "$confirm" != [jJ]* ]]; then + echo "Abbruch durch Benutzer. Temporäre Datei wurde gelöscht, System bleibt unverändert." + rm -f "$TMP_CONF" + exit 0 +fi + +# 5. Migration durchführen +echo "\n[4/5] Migration wird durchgeführt..." +mv "$TMP_CONF" /etc/wireguard/wg0.conf +chmod 600 /etc/wireguard/wg0.conf + +echo " Stoppe und deaktiviere Netclient..." +systemctl stop netclient +systemctl disable netclient + +echo " Lösche altes Netmaker-Interface aus dem Kernel..." +ip link delete netmaker 2>/dev/null + +echo "[5/5] Starte reines WireGuard (wg0)..." +systemctl enable --now wg-quick@wg0 + +echo "\nMigration erfolgreich abgeschlossen! Der Node läuft jetzt auf Vanilla WireGuard." \ No newline at end of file