43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# 1. Prüfen, ob das Skript als root ausgeführt wird
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Fehler: Bitte führe dieses Skript als root (oder mit sudo) aus."
|
|
exit 1
|
|
fi
|
|
|
|
echo "--- Starte Netmaker NAT-Setup ---"
|
|
|
|
# 2. Backup der alten nftables-Konfiguration anlegen (falls vorhanden)
|
|
if [ -f /etc/nftables.conf ]; then
|
|
BACKUP_FILE="/etc/nftables.conf.bak_$(date +%F_%H-%M-%S)"
|
|
cp /etc/nftables.conf "$BACKUP_FILE"
|
|
echo "Backup der alten nftables.conf unter $BACKUP_FILE gespeichert."
|
|
fi
|
|
|
|
# 3. Neue Basiskonfiguration mit eth0 Masquerading schreiben
|
|
echo "Schreibe neue nftables.conf..."
|
|
cat << 'EOF' > /etc/nftables.conf
|
|
#!/usr/sbin/nft -f
|
|
|
|
flush ruleset
|
|
|
|
table inet nat {
|
|
chain POSTROUTING {
|
|
type nat hook postrouting priority srcnat; policy accept;
|
|
oifname "eth0" masquerade
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 4. nftables aktivieren und neu starten
|
|
echo "Aktiviere und starte nftables-Dienst..."
|
|
systemctl enable nftables
|
|
systemctl restart nftables
|
|
|
|
# 5. netclient neu starten, damit er seine dynamischen Regeln einfügt
|
|
echo "Starte netclient neu..."
|
|
systemctl restart netclient
|
|
|
|
echo "--- Setup erfolgreich abgeschlossen! ---"
|
|
echo "Die Masquerade-Regel für eth0 ist nun dauerhaft aktiv." |