migrate.sh hinzugefügt
This commit is contained in:
commit
60e0f53029
1 file changed
+70
+70
@@ -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."
|
||||||
Reference in new issue
Block a user