migrate.sh hinzugefügt

This commit is contained in:
manuel.maier committed 2026-09-29 22:19:18 +02:00
commit 60e0f53029
1 file changed
+70
+70
View File
@@ -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."