Ubiquiti UniFi Dream Machine Pro (UDM-PRO) – NAT deaktivieren
Die Ubiquiti UniFi Dream Machine Pro (UDM-PRO) bietet ein gutes Preis-Leistungs-Verhältnis, weshalb sie oft im Privatgebrauch oder in kleinen Firmen zum Einsatz kommt. Idealerweise wird das Gerät direkt oder über ein Modem mit dem Internet verbunden. Hierfür stehen an der UDM-PRO die beiden WAN-Ports 9 (RJ45) und 10 (SFP) zur Verfügung. Auf beiden Ports ist die Network Address Translation (NAT) standardmäßig aktiviert. Innerhalb der Konfigurationsoberfläche besteht keine Möglichkeit NAT zu deaktivieren.
Falls die UDM-PRO unter bestimmten Voraussetzungen hinter einem Router, z.B. einer FRITZ!Box betrieben werden muss, dann hat man zwangsweise den Nachteil von doppeltem NAT. In vielen Fällen kann dieses Setup ohne weitere Einschränkungen genutzt werden. Doppeltes NAT führt aber oftmals bei Onlinespielen, Xbox, PlayStation und Co zu Problemen. Diese Probleme können jedoch behoben werden, indem die UDM-PRO in der FRITZ!Box als “Exposed Host” konfiguriert wird. Das doppelte NAT ist dann aber trotzdem noch vorhanden.
Lange Rede kurzer Sinn: In diesem Artikel möchte ich euch zeigen, wie ihr NAT auf den WAN-Ports der UDM-PRO deaktivieren könnt.
SSH aktivieren und verbinden
Zunächst müsst ihr den SSH-Zugang aktivieren und ein Passwort setzen. Dies erfolgt über die Einstellungen der UDM-PRO unter dem Punkt “Console Settings”. Bei älteren Versionen von UniFi OS sieht die Weboberfläche ein wenig anders aus.
Anschließend könnt ihr euch z.B. mit PuTTY via SSH auf die UDM-PRO verbinden. Der Username ist “root”.
Mit folgendem Befehl können wir die aktuelle NAT-Konfiguration einsehen:
ab UniFi OS 3.x:
xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
UniFi OS 2.x und älter:
xtables-legacy-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
Standardmäßig sieht die NAT-Konfiguration folgendermaßen aus:
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
1 481K 66M MASQUERADE all -- any eth8 anywhere anywhere
2 0 0 MASQUERADE all -- any eth9 anywhere anywhere
Hier ist ersichtlich, dass auf Port 9 (eth8) und Port 10 (eth9) NAT aktiviert ist.
“UDM / UDMPro Boot Script” installieren
Voraussetzung für das Deaktivieren von NAT ist das “UDM / UDMPro Boot Script“, welches auch nach einem Neustart oder Firmwareupdate bestehen bleibt.
Für die Installation wird das Boot Script heruntergeladen und installiert. Je nach Version von UniFi OS kann noch die alte Version des Skripts verwendet werden, welche bis UniFi OS 2.4.x funktionieren sollte.
curl -fsL "https://raw.githubusercontent.com/unifi-utilities/unifios-utilities/HEAD/on-boot-script/remote_install.sh" | /bin/sh
Alternativ ab UniFi OS 2.5.x und höher dann folgende Variante. Hier ist etwas mehr manuelle Handarbeit zu erledigen:
# Download package
curl -L https://github.com/unifi-utilities/unifios-utilities/raw/main/on-boot-script-2.x/packages/udm-boot-2x_1.0.1_all.deb -o /tmp/udm-boot-2x_1.0.1_all.deb
# Install it
dpkg -i /tmp/udm-boot-2x_1.0.1_all.deb
# Patches for 'udm-boot-2x_1.0.1_all.deb' package
sed -i 's/Description=Run On Startup UDM 2.x/Description=Run On Startup UDM 3.x/g' /lib/systemd/system/udm-boot.service
sed -i '/Restart=on-failure/d' /lib/systemd/system/udm-boot.service
sed -i '/RestartSec=5s/d' /lib/systemd/system/udm-boot.service
# Enable reload and start
systemctl enable udm-boot
systemctl daemon-reload
systemctl start udm-boot
Zum Schluss sollte geprüft werden, ob das Skript auch läuft:
systemctl status udm-boot.service
Sofern “Run On Startup UDM 3.x” angezeigt wird, passt alles.
NAT deaktivieren
Jetzt könnt ihr eigene Shell Scripte in “/data/on_boot.d” hinterlegen, die bei jedem UDM-PRO Start bzw. Reboot ausgeführt werden.
cd /data/on_boot.d
Dort erstellt ihr euer Skript zur Deaktivierung von NAT:
touch /data/on_boot.d/delete-nat.sh
Das Skript funktioniert ab UniFi OS 3.x und bekommt folgenden Inhalt:
#!/bin/bash
# Check if script runs directly after boot. If so, wait for 10 seconds.
uptimeMinutes=`cat /proc/uptime | awk '{print $1}'`
if [ ${uptimeMinutes::-3} -lt 300 ]
then
logger NAT-Script: Script zum 1. Mal nach Boot ausgefuehrt
sleep 10
else
logger NAT-Script: Script via Cron-Job ausgefuehrt
fi
# Check if default NAT rules exist
if iptables -t nat -S UBIOS_POSTROUTING_USER_HOOK | grep -e "UBIOS_POSTROUTING_USER_HOOK -o eth8 -m comment --comment 00" -e "UBIOS_POSTROUTING_USER_HOOK -o eth9 -m comment --comment 00" > /dev/null
then
xtables-legacy-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 1
if iptables -t nat -S UBIOS_POSTROUTING_USER_HOOK | grep -e "UBIOS_POSTROUTING_USER_HOOK -o eth8 -m comment --comment 00" -e "UBIOS_POSTROUTING_USER_HOOK -o eth9 -m comment --comment 00" > /dev/null
then
xtables-legacy-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 1
if iptables -t nat -S UBIOS_POSTROUTING_USER_HOOK | grep -e "UBIOS_POSTROUTING_USER_HOOK -o eth8 -m comment --comment 00" -e "UBIOS_POSTROUTING_USER_HOOK -o eth9 -m comment --comment 00" > /dev/null
then
logger NAT-Script: NAT-Regel gefunden, Loeschen nicht erfolgreich \(Fehler!\)
else
logger NAT-Script: NAT-Regel gefunden und geloescht
fi
else
logger NAT-Script: NAT-Regel gefunden und geloescht
fi
else
logger NAT-Script: Keine NAT-Regel vorhanden
fi
# Check if cron job exists
if ls /etc/cron.d/delete-nat > /dev/null 2>&1
then
logger NAT-Script: Cron-Job vorhanden
else
echo "*/15 * * * * /data/on_boot.d/delete-nat.sh" > /etc/cron.d/delete-nat
logger NAT-Script: Cron-Job nicht vorhanden und erstellt
/etc/init.d/cron restart
fi
Es überprüft, ob die standardmäßig gesetzten NAT-Regeln vorhanden sind und entfernt diese. Außerdem wird ein rudimentäres Logging geboten.
Bei jeder Änderung im Routing oder in den Firewall-Regeln der UDM-PRO werden die beiden NAT-Policies wiederhergestellt. Aus diesem Grund wird ein Cronjob erstellt, welcher dafür sorgt, dass das Skript alle 15 Minuten ausgeführt wird. Somit wird sichergestellt, dass die Standard-NAT-Regeln wieder entfernt werden, sofern diese automatisch generiert werden.
Das Skript muss anschließend noch ausführbar gemacht werden:
chmod +x delete-nat.sh
Bei Bedarf könnt ihr das Skript direkt starten und prüfen, ob es funktioniert.
bash delete-nat.sh
Eine Überprüfung mit
xtables-legacy-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
zeigt, dass beide NAT-Regeln entfernt wurden:
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
Das Logging des Skripts könnt ihr folgendermaßen einsehen:
grep NAT /var/log/messages
Statische Route in der FRITZ!Box
Standardmäßig ist das FRITZ!Box Subnetz 192.168.178.0/24 und das Netz der UDM-PRO 192.168.1.0/24.
Damit Clients aus dem UDM-PRO-Subnetz auf das Internet oder die FRITZ!Box zugreifen können, wird noch eine statische Route auf der FRITZ!Box benötigt.
Diese könnt ihr unter “Heimnetz –> Netzwerke –> Netzwerkeinstellungen” anlegen. Dazu ganz nach unten scrollen und auf den Button “IPv4-Routen” klicken (siehe Bild).
Dort erstellt ihr eine neue Route und gebt folgende Daten ein:
- Netzwerk: das Netz der UDM-PRO, standardmäßig 192.168.1.0
- Subnetzmaske: die Subnetzmaske des vorher eingetragenen Netzes, standardmäßig 255.255.255.0
- Gateway: die Adresse der UDM-PRO im FRITZ!Box Subnetz, diese kann unter “Heimnetzwerk” in Erfahrung gebracht werden
Mit Klick auf “Übernehmen” ist dieser Schritt erledigt.
Optional: Firewall-Regel in der UDM-PRO
Dieser Schritt ist nur notwendig, wenn ihr vom Subnetz der FRITZ!Box auf ein Subnetz “hinter” der UniFi Dream Machine Pro zugreifen möchtet. Anders herum funktioniert es ohne weitere Konfiguration.
Die Kommunikation wird nämlich noch durch die Firewall der UDM-PRO blockiert. Um dies zu ändern, muss eine neue Regel erstellt werden. Zunächst muss der UniFi Network Controller auf der UDM-PRO geöffnet werden. Anschließend unter “Einstellungen –> Security –> Internet Threat Management –> Firewall” auf den Button “Create new Rule” klicken.
Exemplarisch habe ich jeglichen Traffic aus dem Subnetz der FRITZ!Box freigegeben. Sofern möglich solltet ihr die Freigabe jedoch spezifischer gestalten, z.B. auf einzelne IP-Adressen einschränken und nicht ganze Subnetze freigeben.
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
Hallo Thomas,
Danke für den tollen Blog.
Ich selbst nutze aktuell noch das USG hinter eine Fritz.Box.
Will aber eigentlich auf die UDM-Pro wechseln, aber das Doppelte NAT ist echt ein Problem.
Du schreibst, bei jeder FR Regel die geändert oder neuerstellt wird, werden die NAT Regeln wieder neuerstellt?
Das wäre ja Mist, wenn man jedes Mal das Script wieder ausführen müsste.
Bitte sage mir, dass ich das Falsch verstehe ;-)
Gruß Stefan
Hallo Stefan, nein das ist leider so. Ja ist echt Mist :(
Allerdings ist das nur in der Anfangszeit ein Problem, während man die UDM-Pro einrichtet. Danach werden die Firewall-Regeln ja nicht mehr täglich angepasst, zumindest bei mir.
Eventuell existiert noch eine Methode, um das Skript automatisch nach Änderungen in der Firewall zu triggern. Ich bleibe auf jeden Fall dran an diesem Thema.
Hallo Tobi,
sorry für das Thomas. War gestern wohl doch zu spät ;-)
Danke für deine schnelle Rückmeldung. Wäre super, wenn du auch an dem Thema dran bleibst.
Darf ich dich noch was anderes fragen?
1. Gibt es eine Möglichkeit die Backup Config vom CloudKey G2 zu übertragen, so dass ich nicht alle neuerstellen muss?
2. Hast du Erfahrungen mit Entertain und der UDM-Pro?
Gruß
Stefan
Kein Problem, hatte ich bis eben gar nicht bemerkt ;-)
1. Müsste laut UniFi so klappen: https://help.ui.com/hc/en-us/articles/360008976393 Selber kann ich dazu nichts sagen, da ich keinen CloudKey besitze.
2. Nein leider nicht. Ubiquiti ist bei neuen Features auch immer recht langsam und äußert sich auch sehr wenig. Folgendes habe ich noch gefunden, wobei das natürlich nur eine Notlösung wäre:
https://ubiquiti-networks-forum.de/board/thread/690-udm-pro-und-magentatv-iptv/
https://community.ui.com/questions/UDM-Pro-Switch-Pro-POE-IPTV-magentaTV/42c55ea2-cfac-4b2f-9d93-2396e78a3b1e?page=3
Hi Tobi,
habe die UDM-Pro hier und echt entäuscht.
Kann meine Config nicht umziehen, da FW 1.8.6 der UDM nur den Netzwerk Controller 6.0.43 hat. der CK2+ hat bereits 6.0.45 mit der FW 2.0.27.
Ein Downgrade ist scheinbar auch nicht so einfach…
Nicht mal der Support kann mir eine Lösung anbieten. Kann mir nicht mal sagen, wann ein neuer FW relase kommt… Glaube ich bleibe bei der alten FW und verzichte auf dem UDM.
Ich danke dir Vielmals für deine Hilfe, die war echt Super!
Ja das ist das große Problem bei Ubiquiti. Allerdings ist das Preis-Leistungs-Verhätlnis echt top, da kann man ein paar Dinge verschmerzen, aber nicht alles ;-)
Versuch mal die neue 1.9.2, vielleichts klappts ja damit.
https://community.ui.com/releases/UniFi-Dream-Machine-Firmware-1-9-2/48f39402-bb51-4cc7-9a42-83e298289ec6
Funktioniert das ganze auch mit der “normalen” Dream-Machine?
Und wie setzt man die NAT-Config wieder auf Default zurück?
Danke!
Für die normale UDM sollte es bei der neuesten Firmware 1.8.6 genauso funktionieren.
Default wird automatisch gesetzt, sobald etwas an den Firewallregeln geändert wird.
Hey Tobi. Danke für den Beitrag, der mich erstmalig darauf gebracht hat, das SNAT auszuschalten. Sehr gut!
Ich wollte es bei meiner vorhandenen USG so einrichten, aber die Chains der IPTABLES hießen anders. Nach etwas googlen bin ich dann auf das hier gestoßen, welche einfacher zu konfigurieren ist und sogar persistent bleibt, auch wenn man selbst später etwas an Firewallregeln ändert: https://www.matthewschacherbauer.com/wp/guides/ubiquiti-unifi-security-gateway-disable-nat/
Von UniFi ist das mit der json Datei auch explizit erklärt: https://help.ui.com/hc/en-us/articles/215458888-UniFi-How-to-further-customize-USG-configuration-with-config-gateway-json
Hat es einen Grund, dass du hier die komplexere Methode gewählt hast?
Ciao
Johannes
Hallo Johannes, bei der UDM und UDM-PRO funktioniert “config.gateway.json” schlicht und ergreifend nicht mehr ;-)
https://community.ui.com/questions/UDM-Pro-Confirm-no-config-gateway-json-allowed-possible/b451feeb-9e67-4cc4-8344-b2c8759c8bd7
Ansonsten hättest du natürlich absolut recht.
So, nach meinem Wechsel von der USG hin zur DreamMachine habe ich jetzt heute dein Tutorial umgesetzt und erfolgreich das NAT rausgeschossen. Vielen Dank dafür!!
Hallo Tobi
“NAT auf den WAN-Ports der UDM-Pro deaktivieren”
Klappt das auch mit einer UDM-Pro hinter meinem Sophos Router/FireWall? Ist vergleichbar mit einer “pfsense”( hatte ich früher ). Kenn mich nicht so aus, möchte aber irgendwann auf Unifi umstellen, da ich bereits Switch und APs im Netzwerk nutze.
Klar das ist unabhängig davon, welcher Router davor verwendet wird.
Evtl. wäre es ja auch eine Möglichkeit die Sophos komplett zu entfernen und alles über die UDM-Pro laufen zu lassen?
Hallo Tobi,
danke für die Anleitung funtioniert ! ist aber so das einer Änderung und Neustart alles wieder auf default setzt, ich muss händisch wieder das cd /mnt/data/on_boot.d
sh delete-nat.sh ausfühen ! ? was mache ich falsch ? danke!
Nein das “delete-nat.sh”-Skript wird nach einem Neustart automatisch ausgeführt. Wenn das bei dir nicht der Fall ist einfach nochmal alle Schritte durchführen und schauen ob es jetzt funktioniert. Falls du immer noch Probleme hast am besten bei Github den Entwickler fragen: https://github.com/boostchicken/udm-utilities/tree/master/on-boot-script
hello Tobi & Alfredo,
looks like this doesnt work anymore after the latest UDM pro firmware update
do you mean starting with firmware 1.9.0 or 1.9.3?
Das kann ich leider bestätigen.
Ich habe das Paket auch bereits runter geworfen und neu installiert.
Das Paket udm-onboot erzielt im Moment tatsächlich keinen Effekt mehr.
Es liegt nicht am NAT-Script an sich, sobald das ausgeführt wird ist die Regel weg und man geht auch ungenatted wieder raus.
Leider greift das Boot-Script von boostchicken im Moment jedoch nicht mehr.
In den “Issues” auf Github auch bereits erwähnt.
Ein Lösung ist mir bislang leider auch noch unbekannt.
Lese ich das richtig, dass das deaktivieren von NAT bei der UDM Pro nicht mehr funktioniert?
Funktioniert es bei der UDM noch?
Würde es demnächst deaktivieren wollen.!?
Ergänzung zu meinem Kommentar:
Udm Boot Script mit Version 1.0.5 läuft dann wieder.
Das Script crashed aber wegen dem nat Script und der Service hängt sich dann auf. Liegt also doch an dem Zusammenspiel dieses nat bash scripts und dem udm boot script, aber nicht (wie von mir anfangs angenommen) daran, dass das udm Boot script selbst nicht mehr läuft. Es crashed nur WEGEN dem nat Script.
Das liegt daran, weil die NAT Regel zu früh versucht wird zu löschen, ich vermute sie existiert in der Sekunde noch nicht.
Morgen baue ich mal einen Delay ein, dann sollte es wieder gehen.
Hier die Lösung in meinem Falle.
Das Script prüft zum Einen, ob es in den ersten 5 Minuten eines Neustartes ausgeführt wurde. Dann wartet es 10 Sekunden bis es die NAT-Regel löscht. Das funktioniert nun zuverlässig.
Darüber hinaus schreibe ich alle Vorgänge in /var/log/messages, was man dann immer einfach über ‘grep NAT /var/log/messages’ nachvollziehen kann, ob alles funktioniert.
Darüber hinaus hat mich eh schon immer genervt, dass nach einer Anpassung an der UDM die NAT-Regel wieder drin war und ich selbst daran denken musste. Das Script prüft nun jedes Mal auch ob ein Cron-Job für selbiges vorhanden ist und wenn nicht, dann erstellt es diesen.
Alle 15 Minuten wird somit ressourcenschonend kurz gecheckt, ob die NAT-Regel wieder da ist. Wenn ja, dann nimmt er sie direkt wieder raus.
Hier das Script, bei Datei-Namen drauf achten diese anzupassen:
Hi Tobi,
danke für die tolle Arbeit. Habe den Code in deinem Kommentar für eine bessere Lesbarkeit hervorgehoben und werde meinen Artikel anpassen und auf deinen Code verlinken.
Viele Grüße Tobi
Hey Namensvetter!
Ich danke dir für den Blog, hatte mir den Einstieg erleichtert und mir überhaupt erst ermöglicht ein wenig weiter daran zu schreiben. Deine Anleitung ist super strukturiert und hat mir wirklich sehr geholfen, da gibt man gerne etwas zurück!
Viele Grüße Tobi
Danke nochmals für das Skript! Ich habe es ein wenig optimiert (Uptime auslesen sowie Erkennung und Löschung der NAT-Regeln verbessert) und direkt im Artikel eingebaut.
Vielen Dank für die Änderung des Skripts.
Ist der Skript für die UDM oder UDM Pro abgestimmt?
Weil hier wird ja in dem Skript die NAT Regel von einem Port entfernt? :
Bei der UDM Pro müssen ja die Regeln beider Ports (eth8 & eth9) entfernt werden.
Wäre cool wenn du mir den Skript gegebenenfalls auf die UDM anpassen könntest oder deine Gesamtanleitung oben. :)
Bin da leider dann nicht so ganz tief im Skripting drin.
Danke schonmal vorab.
Hi Eddi,
ja, stimmt. Gut erkannt, das ist nur für die normale UDM.
Der Delete ‘xtables-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 1’ entfernt einfach immer die Regel an erster Position. Die normale UDM hat nur ein Interface, deshalb reicht dieser Befehl.
Wenn du dem noch einen weiteren Befehle ‘xtables-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 2’ vorneran stellst, dann entfernt er bei der UDM Pro beide Einträge.
Beachte die Reihenfolge, erst den 2. dann den 1.
Denn wenn du den 1. zuerst löschst ist der ehemalige 2. der neue 1. Eintrag :P
Was dazu führt, dass mein Script bei der 2. Ausführung auch bei der Pro die 2. Regel raushauen würde, weil er immernoch einen Eintrag erkennt und den dann entfernt. Ist aber natürlich unschöner – müsste aber zufällig klappen.
Hallo Tobi,
vielen Dank…damit hast du mir schon weitergeholfen. :)
Oben bei deinem Komentar von gestern hast du noch erwähnt, dass die Dateinamen ersetzt werden müssen beim neuen Script. Ich habe jedoch keine stelle im Quellcode gefunden wo man einen Dateinamen angleichen muss? Kannst du mir dabei noch weiterhelfen?
Und kann man das NAT dauerhaft wieder aktivieren wenn es mal deaktiviert war? Wenn ja wie?
Frage nur so viel weil ich demnächst das NAT bei meiner UDM deaktivieren werde/muss.
Will dass der Script ordentlich durchläuft. :)
Kein Problem, Eddi.
Schau mal in die dritt-letzte Zeile. Dort wo der cronjob angelegt wird, wenn er nicht vorhanden ist.
Das gesamte Script heißt bei mir delete-nat.sh
Darauf beruft sich dieser cronjob eben genau, um dieses Script dann auch auszuführen. Benenne in Script also auch einfach delete-nat.sh oder bedenke es dort anzupassen.
Zu deinem bedenken bezüglich rollback, dass das nat wieder ginge, diese sind unbegründet. Du kämpft eigentlich non-stop dagegen an, ddass die udm die Regel nicht wieder rein nimmt. Das macht sie nämlich bei jedem Neustart und jeder Änderung am Regelwerk oder dergleichen direkt im Betrieb wieder. (deshalb der cronjob, der alle 15min prüft, ob nat weiterhin deaktiviert ist)
In dem Moment wo du das Script deaktivierst ist spätestens nach einem Neustart alles wieder beim alten!
Thank you very much Tobi and Tobi!
I am using a UDM Pro behind a Peplink Balance 20X. I expanded the script to deactivate NAT on both WAN ports, but then devices reaching out to the Internet were not working for me. For me, the solution ended up being configuration in the UDM Pro.
Settings > Services > DHCP > DHCP Relay
and then add the IP address of the Peplink as a DHCP server.
NOPE! My fault. The change above seems to do nothing useful except re-enable the NAT until the next time the script runs. Once the script runs, the UDM Pro can reach the Internet, but devices connected to the UDM Pro cannot. There is some kind of additional routing issue, perhaps something that I have introduced.
Hallo Tobi,
ich versuche Deine tolle Anleitung zur Umgehung des doppelten NAT umzusetzen und eigentlich klappt auch alles soweit, bis auf die statische Route in der FB. Meine UDM-Pro hat auf WAN 1 eine IP (78.94.248.xxx), welche vom Provider Vodafone vorgegeben wurde und die kann ich als Gateway nicht eintragen.
Was läuft hier falsch?
Moment, da muss ich genauer nachfragen. In meinem Artikel ist es ja so, dass das NAT an der FRITZ!Box weiter zum Einsatz kommt und an der UDM-Pro deaktiviert wird. In diesem Fall müsstest du auf der UDM-Pro eine RFC 1918 Adresse haben.
Oder hast du evtl. eine FRITZ!Box 6591 von Vodafone mit einem externen /30 Subnetz?
Er hat eine öffentliche IP, daher läuft die Fritzbox im Bridge Mode (Buissenes Tarif) und die UDM Pro bekommt diese.
Damit wird das NAT der Fritzbox umgangen und er hat kein doppeltes NAT.
Jetzt noch in der UDM das NAT deaktiviert und nix geht mehr.
Irgendwie bin ich verwirrt. Wenn du an der UDM-Pro eine öffentliche IP vom Provider hast, dann hast du doch sowieso kein doppeltes NAT!? Warum möchtest du es dann deaktivieren?
Bzw. generell gefragt, was möchtest du erreichen?
Hallo Tobi und Marcus,
lieben Dank für Eure schnelle Rückmeldung, welche ich leider nicht gleich mitbekommen habe.
Ja, ich habe von (mittlerweile) Vodafone den 1000er Business Anschluß, für welchen lt. Internet und lt. Vodafone kein Bridge Modus geht. Deshalb habe ich die Box auf Port 2 in den Exposed Host geschaltet und lt. Vodafone die zwei IP-Adressen hinterlegt, einmal in der Fritz und einmal in der UDM.
Zuerst war mein Zugang grützelangsam, hat sich aber nach einem Tag und Neustart der UDM gefangen. Nun habe ich Ping von 12-18 und bis zu 930 Mbits Down.
Wie Marcus schon sagt, ging nach der Abschaltung des NAT in der UDM nix mehr. Ist das dann sicher, dass meine Fritz kein NAT hat oder wie kann ich das prüfen?
Danke für die weiteren Infos. Ja in diesem speziellen Fall sollte das NAT an der FRITZ!Box deaktiviert sein. Bei anderen Providern oder FRITZ!Boxen ohne angepasste Software kommt bei Verwendung der “Exposed-Host”-Funktion weiterhin double NAT zum Einsatz.
Verifizieren kannst du das ganz einfach, indem du mit einem Gerät, welches hinter der UDM-Pro hängt, die Webseite https://www.whatismyip.com besuchst. Wird dort die gleiche IP angezeigt, welche in der UDM-Pro konfiguriert wurde, dann passt es. Andernfalls taucht dort die IP der FRITZ!Box auf. Alternativ kannst du auch einen Paketmitschnitt auf der UDM-Pro machen, was aber ein wenig Erfahrung erfordert.
Die statische Route aus meinem Artikel brauchst du in deinem Fall dann auch nicht. Aus dem lokalen Netz der FRITZ!Box lässt sich nicht direkt auf das lokale Netz der UDM-Pro zugreifen. Umgekehrt funktioniert es auch nicht.
Hallo Tobi, nochmals danke für Deine schnelle und ausführliche Antwort.
Ja, ich bekomme die UDM-Pro IP-Adresse, das ist mir selbst noch nicht aufgefallen.
Darf ich Dich noch Fragen: Wie komme ich aus dem internen Netz auf die Fritzbox?
Ich las diese bisher über meine Smarthome-Steuerung aus und kann das aktuell nicht mehr. Kann ich das über die WAN-Verbindung routen oder benötige ich einen zweiten Zugang zur FB (norm.Switchport zu FB Port, z.B. 3)?
Du könntest entweder direkt via Internet auf die FRITZ!Box zugreifen (das Benötigte muss dann natürlich via Portforwarding freigegeben werden) oder besser, du stellst eine zweite Verbindung zwischen FRITZ!Box und UDM-Pro her. Hier kannst du wie beschreiben z.B. Port 3 nutzen. Dieser Link sollte dir bei der Konfiguration helfen: https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/581_Statische-IP-Route-in-FRITZ-Box-einrichten/
Moin,
danke für dein TUT, sehr verständlich aber ich habe da noch eine Frage.
Meine Konfig: ISP->FB7590->UDM-Pro->Cam
Ich habe bis jetz keine spürbaren Probleme trotz des aktiven NAT’s.
Mich macht es jedoch kirre nicht auf meine CAMs Zugriff zu haben in dem UI-Netzwerk per FB-VPN.
Wenn ich das richtig verstehe benötige ich eigentlich nur den letzten “Optional: Firewall-Regel in der UDM-PRO” Punkt um über einen VPN-Zugang (FB-Benutzer) der FB und der WAN-Eingehend Regel in der UDM-Pro mit der Zulassung dessen IP, Zugriff zu bekommen?
Grüße
Ja genau.
Moin,
das funktioniert leider nicht, komme nicht einmal auf die UDM-P trotz der sichtbaren Adresse dessen auf der FB7590.
Mal zur Konfig:
FB-Netz: 192.168.188.0/24
VPN in FB Netz: 192.168.188.201/24
UDM-P (WAN1-Port) in FB Netz: 192.168.188.35/24 an Port 5 (WAN als LAN5 eingestellt)
UDM-P-Netz: 192.168.1.0/24
UDM-P: 192.168.1.1/24
CAM: 192.168.1.116/24
Regel in UDM-P:
WAN-Eingehend
-Aktionen akzeptieren
-Protokolle alle
-Quelle VPN-IP 192.168.188.201
-Ziel Netzwerk Lan (192.168.1.0/24) Typ IPv4 Subnetz
Habe ich etwas übersehen oder vergessen oder denke ich falsch?
Grüße
Die statische Route in der FRITZ!Box wird natürlich auch benötigt. Hast du diese eingerichtet?
Ich habe es mal mit einer reinen Portweiterleitung probiert, dies funktioniert ohne NAT abschalten wunderbar.
Nachdem ich die Portweiterleitungen wieder gelöscht habe und die statische Route in der FB eingetragen sowie die WAN-Eingehend Regel angelegt habe, komme ich auch ohne Probleme auf meine Geräte hinter der UDM.
Danke für den Hinweis.
Noch zu bewältigen wäre der Zugiff auf die UDM-Pro selbst.
Weder über die FB-IP noch über die eigene UDM-Pro-IP, ist diese zu erreichen.
Muss man dazu noch etwas Einstellen/Freischalten?
Hey Toni,
eine ursprüngliche Frage die mir gleich in den Sinn kam war, weshalb du deine VPN-Verbindung zur Fritzbox und nicht zur UDM terminieren lässt.
Dein letztes beschriebenes Problem hier könnte eventuell auch daran liegen. Wenn du die VPN-Verbindung weiterhin zur Fritzbox selbst aufbauen möchtest, so muss dir klar sein, dass auch das Netz der Fritzbox aus Sicht der UDM im WAN liegt – also alle eingehenden Firewallregeln aus dem aus Sicht der UDM bösen Internet kommen. Auch wenn du dich schon auf der Fritzbox befindest, denn du hast nun mit der VPN Verbindung eine IP aus dem Fritzbox-Netz (da du diese dorthin, anstatt zur UDM aufbaust wie ich das verstanden habe).
Lange Rede kurzer Sinn:
Meine Empfehlung wäre die VPN-Verbindung direkt zur UDM aufzubauen, dann bist du wirklich IN deinem Netz.
Oder du checkst mal die Firewall-Regeln auf der UDM. Du müsstest die von dir gewollte Verbindung mit Quelle “Fritzbox-VPN-Netz” eingehend in das UDM WAN Interface erlauben.
-> So habe ich dein Problem und deinen Aufbau jedenfalls verstanden :)
Nachtrag:
Uuups… jetzt habe ich erst deinen Post davor gesehen – du hast das ja bereits alles berücksichtigt :-)
Meine Frage bzgl VPN, warum dieser zur Fritzbox und nicht zur UDM terminiert, bliebe allerdings.
Wenn ich deinen Post so auswerte, könnte der Zugriff auf die UDM deshalb nicht funktionieren, weil sie vermutlich mit ihrer WAN-IP (192.168.188.35/24) angesprochen wird, wenn es um keinen Transit-Verkehr geht, sondern du direkt auf diese möchtest.
In deinem Post gilt deine Regel eingehend allerdings immer nur wenn man auf das UDM LAN zugreift (192.168.1.0/24).
Hallo Zusammen,
ich habe mir das neue Script angesehen und für die UDM-Pro angepasst. An sich funktioniert alles, nur löscht der die einzelenen Subnetze/ VLAns auch nur einzeln raus. D.h. das Script muss 11 Mal laufen, bis alle Source NAT Einträge entfernt sind.
Hat jemand eine DIee, wie ich das noch weiter anpassen kann?
Muss aber auch dazu sagen, dass ich jetzt das Script deaktiviert habe, da es Probleme machte mit der Bandbreite. Soblad das Script einlal lief und dabei ist es egal, ob noch SNAT Einträge vorhanden sind oder nicht, lag der Speed Test bei nur 20 bis 30 Mbit anstatt die Vollen 220Mbit.
Verstehen tu ich das nicht aber es ist irgend ein Zusammenhang.
Die notwendige Anpassung für die UDM-Pro ist hier erklärt: https://www.antary.de/2021/02/07/ubiquiti-unifi-dream-machine-pro-udm-pro-nat-deaktivieren/#comment-79396
Aber ich denke ich werde das direkt in meinen Artikel integrieren, dann ist es einfacher.
Wie du auf elf Einträge kommst ist mir schleierhaft. Es sind zwei WAN-Interfaces, also auch zwei Einträge.
NACHTRAG:
Wegen der “Exposed Host” Funktion hatte ich bei AVM Nachgefragt, die sagen, das Doppelte NAT wäre dann inaktiv für diesen Port.
Hallo Tobi,
die 11 Einträge sind für das Interface 8.
Pro Ausführung des Scripts wurde bei mir immer noch ein VLAN entfernt, anstatt alle 11 VLANs für SNAT zu entfernen.
In einem Ubiquiti Forum habe ich gestern gelesen, man könnte mit dem Parameter -F arbeiten anstatt mit -D, dann wären alle auf einem entfernt aber ich hatte gestern ehrlich geasagt keine Lust mehr das zu testen.
Gruß
Stefan
Nein das stimmt nicht. Ein Exposed Host ist einfach nur eine Portfreigabe für alle Ports, mehr nicht. D.h. alles wird via NAT an eine lokale IP weitergeleitet.
Doppeltes NAT wäre nur im Bridge Modus inaktiv, bei dem das WAN direkt an einem Port durchgeleitet wird. Dies bietet AVM aber schon sehr lange nicht mehr offiziell an. Lediglich bei den FRITZ!Boxen mit Vodafone-Firmware wird das noch angeboten, siehe die Kommentare von Rainer.
Kann dir nur sagen, was der AVM Support zu mir gesagt hat.
ich nutze die Funktion auch nicht.
Ich stimme Tobi ebenfalls zu und widerspreche dem AVM Support hier. Da hat der Mitarbeiter Quatsch erzählt. Sieht man auch im Traffic-Mitschnitt.
Exposed-Host ist einfach eine durchgängige Freigabe aller Ports für dieses Gerät.
Würde hier plötzlich kein NAT mehr erfolgen, so könnten Verbindungen von dem Gerät ja gar nicht mehr ohne weiteren Konfigurationsaufwand ins WAN betrieben werden.
Hallo Tobi,
guter Blog- Artikel. Danke !
Habe es so bei meiner UDM-Pro implementiert und funktioniert fast perfect.
Alle 15 Minuten wenn der Cron Job laeuft habe ich Probleme mit ‘Teams’ Konferenzen.
Teams meetings werden unterbrochen und muessen sich neu verbinden… und dass 4 mal in der Stunde ;)
Lasse den Cron job jetzt einmal am Tag mitten in der Nacht laufen.
Cheers,
Hmm das ist seltsam. Wenn die Regeln einmal entfernt wurden, macht das Skript eigentlich nichts mehr. Bei mir gibts keine Probleme.
Hallo Tobi,
an dem Tag hatter der VPN ‘dial in’ Router bei mir in der Firma Probleme.
Kann also daran liegen.
Habe nun das scrip neu installiert und auch etwas angepasst.
Wenn ich es jetzt in der Shell ausfuehre bekomme ich folgende Fehlermeldung:
—–
# sh delete-nat.sh
sh: 21:22,: bad number
#
—–
Laut Log funktioniert alles eigentlich… siehe weiter unten.
Hier mein Script mit einer hinzugefuegten Zeile um beide NAT Eintraege zu entfernen:
#!/bin/sh
# Check if Script runs directly after boot. If so, wait for 10 seconds.
uptimeMinutes=`uptime | awk ‘{print $3}’`
if [ $uptimeMinutes -lt 5 ]
then
logger NAT-Script: Script zum 1. Mal nach Boot ausgefuehrt # log entry to /var/log/messages
sleep 10
else
logger NAT-Script: Script gem. Cron-Job ausgefuehrt # log entry to /var/log/messages
fi
# Check if NAT rule is there
if iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK | grep MASQUERADE > /dev/null
then
xtables-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 2 # delete second NAT rule for UDM Pro
xtables-multi iptables -t nat -D UBIOS_POSTROUTING_USER_HOOK 1 # delete first NAT rule
if iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK | grep MASQUERADE > /dev/null # successful delete?
then
logger NAT-Script: NAT-Regel gefunden, Loeschen nicht erfolgreich \(Fehler!\) # log entry to /var/log/messages
else
logger NAT-Script: NAT-Regel gefunden und geloescht # log entry to /var/log/messages
fi
else
logger NAT-Script: Keine NAT-Regel vorhanden # log entry to /var/log/messages
fi
# Check if cron job exists
if ls /etc/cron.d/delete-nat > /dev/null 2>&1
then
logger NAT-Script: Cron-Job vorhanden # log entry to /var/log/messages
else
echo “*/15 * * * * /mnt/data/on_boot.d/delete-nat.sh” > /etc/cron.d/delete-nat
logger NAT-Script: Cron-Job nicht vorhanden und erstellt # log entry to /var/log/messages
fi
Log Eintraege:
# grep NAT /var/log/messages
Jul 11 01:39:12 MSP-HQ user.notice root: NAT-Script: Script gem. Cron-Job ausgefuehrt
Jul 11 01:39:12 MSP-HQ user.notice root: NAT-Script: NAT-Regel gefunden und geloescht
Jul 11 01:39:12 MSP-HQ user.notice root: NAT-Script: Cron-Job nicht vorhanden und erstellt
Jul 11 01:40:36 MSP-HQ user.notice root: NAT-Script: Script gem. Cron-Job ausgefuehrt
Jul 11 01:40:36 MSP-HQ user.notice root: NAT-Script: Keine NAT-Regel vorhanden
Jul 11 01:40:36 MSP-HQ user.notice root: NAT-Script: Cron-Job vorhanden
Jul 11 01:54:57 MSP-HQ user.notice root: NAT-Script: Script gem. Cron-Job ausgefuehrt
Jul 11 01:54:57 MSP-HQ user.notice root: NAT-Script: NAT-Regel gefunden und geloescht
Jul 11 01:54:57 MSP-HQ user.notice root: NAT-Script: Cron-Job vorhanden
#
Nimm das Skript oben aus meinem Artikel. Habe es auch entsprechend angepasst und die Abfragelogik optimiert. Im unoptimierten Fall würden auch von Hand hinzugefügte NAT-Regel gelöscht werden.
Hallo,
vielen Dank für die Beschreibung und das aktualisierte Script für die UDM Firmware ab 1.9.3.
Ich habe dazu eine Frage: Als Laie habe ich nicht verstanden, wo ich das Script aus Tobis Kommentar einbinden soll? Erstelle ich dazu einfach ein neues Script im Ordner /mnt/data/on_boot.d über die Kommandozeile, genau so wie man es für das delete-nat.sh gemacht hat?
Vielen Dank :)
Hallo Markus, ich habe den Artikel mit einem leicht angepasstem Skript ergänzt. Sollte jetzt klar sein, wie du vorgehen musst. Falls nicht, einfach nochmal fragen.
Vielen Dank, Tobi! Damit ist es nun auch für mich klar.
Ich habe noch eine weiterführende Frage: Ich habe eine Nextcloud auf einer FreeNAS Box installiert, mit einem Reverse Proxy. Nun muss ich für den Zugang darauf Ports freigeben. Bevor ich meine UDM Pro hatte, habe ich das direkt in der FritzBox gemacht und alles lief ohne Probleme.
Nun steckt ja die UDM Pro mit drin und wenn ich das NAT darin deaktiviere, übernimmt ja die FritzBox dies allein. Nun kann ich aber in der FritzBox nicht mehr die Ports für die IP meines Reverse Proxy anlegen, da die IP Range ja die der UDM Pro ist und nicht die der FritzBox – FB akzeptiert diese IPs logischerweise nicht.
Jetzt frage ich mich, ob ich für meinen Case nicht eher das NAT in der UDM Pro belassen muss, um dort die Ports weiterzuleiten, und NAT in der Fritz Box deaktivieren muss? Ich finde dazu bei meiner FB allerdings keine Möglichkeit (7581). Einen “Bridge” Mode gibt es hier scheinbar gar nicht. Weißt du zufällig irgendwas darüber?
Du bist auf dem richtigen Weg. Du musst die Portfreigabe nach wie vor an der FRITZ!Box machen. Allerdings nicht mit der IP des Reverse Proxys, sondern mit der WAN-IP der Firewall, also der IP aus dem FRITZ!Box-Netz.
Darüber hinaus benötigst du eine weitere Portweiterleitung auf der UDM-PRO und ebenso eine passende Firewall-Regel unter der Kategorie “WAN eingehend”.
@Markus – hier ein Beispiel wie von Tobi schon erläutert:
WAN-IP deiner Fritbox: 66.66.66.66
Transportnetz zw. Fritzbox & UDM: 10.10.10.0/30
WAN-IP deiner UDM: 10.10.10.1
Reverseproxy IP: 10.10.50.50/24
Angebotener Dienst am RevProxy auf bspw. TCP Port: 444
Rufst du nun den Dienst auf 66.66.66.66:444 auf um dorthin zu gelangen müsste eine Portweiterleitung auf der Fritzbox für Port 444 zur 10.10.10.1 eingerichtet werden.
Auf der UDM brauchst du die eingehende Firewall-Regel die das zunächst einmal zulässt. Außerdem brauchst du dann dort die Weiterleitung von TCP Port 444 auf 10.10.50.50.
So sollte es klappen.
Tobi hatte es ja schon genau so erläutert, wollte es nur mit einem Beispiel etwas greifbar für dich machen.
Erst einmal vielen Dank an Tobi & Tobi für die Erklärung. Mit dem Beispiel bekomme ich es bestimmt hin, versuche mich gleich mal dran!
Nun habe ich allerdings doch noch ein Problem beim Einfügen des Scripts. Sorry, ich stelle mich wahrscheinlich total blöd an; aber nach dem “touch /mnt/data/on_boot.d/delete-nat.sh” Befehl, copy & paste ich einfach den kompletten Script-Block in die Kommandozeile? Oder muss ich das Zeile für Zeile machen? Wenn ich es komplett einfüge, werden scheinbar irgendwelche Befehle dort erkannt und mir werden Listenweise Befehle ausgegeben …
Danach ist es auch so, dass das Script nicht zu funktionieren scheint, denn wenn ich testweise eine Port-Weiterleitung anlege sind die NAT-Einträge sofort wieder da.
Danke nochmal für eure Hilfe.
Der touch erstellt dir nur eine leere Datei.
Gehe danach mit
nano /mnt/data/on_boot.d/delete-nat.sh
in die Datei. Du öffnest sozusagen den Befehlszeilen Editor “nano” auf diese Datei hin.
Dort fügst du dann den Inhalt (also die ganzen Skript-Zeilen) ein.
Das dann speichern und einfach nochmal mit dem gleichen Befehl im Nachgang reingucken, ob auch alles drin ist.
Sobald du das Skript ausführbar gemacht hast (einfach Tobis Anleitung weiter folgen), kannst du testen ob es funktioniert, in dem du dir vorher mal die Nat-Regeln anzeigen lässt (dort sollte die Regel dann ja noch vorhanden sein) und dann das Skript mal händisch ausführst (einfach ‘/mnt/data/on_boot.d/delete-nat.sh’ eingeben und ENTER) und dann schaust ob zum einen Fehlermeldungen kommen und zum Anderen, ob die NAT-Regel auch nun weg ist.
Wie weiter oben beschrieben kannst du auch über ‘grep NAT /var/log/messages’ die Logs checken, da das Skript recht gesprächig in die Logs schreibt.
Ah! Vielen Dank. nano kenne ich, aber ich habe immer eine “command not found” bekommen … habe jetzt verstanden, dass ich nano erstmal installieren muss:
# unifi-os shell
# apt update
# apt install nano
um dann (nach wie vor im shell) nano auf der Datei ausführen zu können. Was gelernt!
Mhmpf, jetzt komme ich trotzdem nicht weiter; ich kann nano jetzt zwar im shell ausführen, darüber komme ich aber nicht in das /mnt/data/on_boot.d Verzeichnet. Und in root kann ich nano nicht ausführen. Mhm!
Du bist in der falschen Umgebung :-)
Nicht zuvor unifi-os shell eingeben.
Verbinde dich per SSH und dann bist du bereits richtig.
Dann mache ein ‘cd /mnt/data/on_boot.d/’. Wenn das klappt, bist du schonmal im richtigen Verzeichnis.
Dort mal ein kurzes ‘ls -l’ machen, dann siehst du, ob dein Script schon da ist.
Wenn du darüber lokalisiert hast, dass du in der richtigen Umgebung bist, dann kannst du nochmal loslegen!
Aber ich kann nano nur im Shell installieren, wenn ich es auf root ebene ausführe passiert folgenddes:
# cd /mnt/data/on_boot.d/
# ls -l
total 0
-rw-r–r– 1 root root 0 Jul 7 11:06 delete-nat.sh
# nano delete-nat.sh
-sh: nano: not found
nano ist dort also gar nicht verfügbar, das heißt ich komme nicht in die Datei …
Oh, das hatte ich nicht auf dem Schirm! Dann nutze ‘vi’, das ist ein anderer Editor. Habe gerade nachgesehen, der ist vorhanden.
Bevor du in den Unweiten der Steuerung dieses Editors verloren gehst google kurz wie du dort eine Eingabe machst und speicherst und wieder rauskommst aus dem Editor – der ist für Nicht-Unixler etwas ungewohnt.
VI habe ich grad versucht, damit komme ich rein, habe jetzt alles eingefügt und gespeichert. Ich kann das Script jetzt auch ausführen und die NAT-Regeln werden gelöscht. Sobald ich eine Port-Weiterleitung testweise einrichte, sind sie aber nach wie vor sofort wieder da :( In die Logs wird auch nichts geschrieben …
Ok, es scheint nun doch zu funktionieren, ich habe den Punkt überlesen, dass das Script ja “nur” alle 15 Minuten ausgeführt wird und nicht instantan. Dementsprechend ist das NAT nach einer Änderung natürlich noch eine Weile drin. Vielen Dank euch!
Jetzt mache ich mich mal an das Forwarding zu meinem Reverse Proxy … :D
So, nun noch einmal zum Reverse-Proxy Thema.
Ich habe nun in der FritzBox eine Port-Freigabe eingerichtet für die IP, die die UDM-Pro von der FritzBox erhalten hat (als Beispiel: 192.168.178.01) auf Port 443.
In der UDM Pro habe ich nun eine Port Weiterleitung von 443 auf die IP des Reverse Proxy angelegt (bspws. 10.0.0.99). Von “überall” ist korrekt, oder muss ich das auf die IP der FritzBox (also dann 192.168.178.1) beschränken?
Jedenfalls wird mir der Port nun auch als offen angezeigt, wie ich über ein Online-Tool überprüft habe. Soweit so gut.
Nun scheitere ich bei der Firewall-Regel. Was genau muss ich da erlauben? Tobi, du hast ja geschrieben:
“Rufst du nun den Dienst auf 66.66.66.66:444 auf um dorthin zu gelangen müsste eine Portweiterleitung auf der Fritzbox für Port 444 zur 10.10.10.1 eingerichtet werden.
Auf der UDM brauchst du die eingehende Firewall-Regel die das zunächst einmal zulässt”
Ich verstehe nicht ganz, was ich hier nun in der Regel bei Source und Destination eintragen muss.
Nein du müsst “überall” aktiv lassen, denn die UDM-PRO sieht die externe IP-Adresse des Geräts, welches zugreifen möchte. Außer du hättest eine feste externe IP bzw. IP-Range die du freigeben möchtest. Für Smartphones etc. trifft das aber nicht zu und du musst “überall” aktiv lassen.
Bei der Firewall-Regel habe ich gerade gesehen, dass durch das Port-Forwarding automatisch eine entsprechende Firewall-Regel erstellt wird. Hier musst du also gar nichts mehr von Hand hinzufügen.
Juhu! Jetzt klappt alles. Vielen vielen Dank für eure Geduld und die Hilfe!
Hallo Tobi,
zunächst großes Lob für Deine Mühe und Deine Hilfsbereitschaft, das ist nicht immer selbstverständlich.
Ich konnte Deine Anleitung umsetzen, vieles klappt auch schon richtig gut. Jedoch: ich hatte an der FritzBox die 4 DVB-C Tuner genutzt, um diese über TV-Headend anzusprechen. Nun ist ja nach dem Unstellung dir Fritte in einem anderen Netz (bei mir 192.168.178.1) und mein TV Headend auf meinem Synology NAS unter 192.168.17.6. Gibt es überhaupt eine Möglichkeit, die Fritzbox Tuner noch zu nutzen?
Danke und Gruß
Wolfgang
Hallo Wolfgang,
danke für Dein Lob :)
Wenn du alles nach Anleitung eingerichtet hast, müsstest du von deinem NAS mit 192.168.17.6 ohne Probleme auf die FRITZ!Box zugreifen können.
Hallo Tobi,
ich lese gerade mit begeisterung deinen Blog. Hast du dich eigentlich schon mal mit UDM und Magenta TV von der Telekom beschäftigt?
Viele Grüße und schönes Wochenende
Stefan
Hallo Stefan,
nein nicht direkt, da ich selber kein MagentaTV nutze. Ich weiß nur, dass die UDM-PRO aktuell immer noch kein IGMPv3 unterstützt und es daher nicht Out-of-the-Box funktioniert.
Eine mögliche Lösung wäre einen Switch oder einen IGMP-Proxy vor der UDM-Pro zu platzieren, welcher den IPTV-Stream direkt zu den Endgeräten durchleitet. Hier findest du detaillierte Infos dazu: https://community.ui.com/questions/UDM-Pro-Switch-Pro-POE-IPTV-magentaTV/42c55ea2-cfac-4b2f-9d93-2396e78a3b1e?page=1
IGMPv3
Hi!
Erstmal großes Lob an Tobi und alle anderen Mitwirkenden!
Ich benötige die NAT Deaktivierung nur temporär, bis meine neue Leitung gelegt wurde.
Wie kann das Ganze wieder in den Werkszustand zurück gesetzt werden?
Ich meine, das dass der komplett Originalzustand der Software wiederhergestellt ist.
Viele Grüße
Ingo
Hallo Ingo, die Anleitung findest du direkt bei Github: https://github.com/boostchicken/udm-utilities/wiki/Uninstall-UDM-Utilities-and-Containers
Ich möchte das Script auch wieder entfernen, allerdings funktionieren die Schritte in der Anleitung nicht. Kann es jemand für einen Dummy wie mich erklären, wie ich die Änderungen wieder rückgängig mache, bitte? :-)
Hi, ich schon wieder :)
Bei mir hat sich nun folgendes Problem ergeben:
Ich habe vor der UDM Pro aktuell (noch) einen Telekom Speedport Hybrid Router (DSL+LTE Tunnel).
Sobald ich das NAT deaktiviere, komme ich aus dem internen Netz der UMD Pro nicht mehr ins Internet.
Das Problem ist, dass ich in dem Telekom Speedport Hybrid Router keine Route zum internen Netz der UDM Pro eintragen kann. Es gibt keine Eingabemöglichkeit im Webinterface für Routen. Hat scheinbar etwas mit dem Bonding für den DSL/LTE-Tunnel zu tun.
Hat jemand eine Idee, wie man das Ganze dennoch zum Laufen bringen kann?
Aktuelle Konfiguration:
Telekom Speedport Hybrid Router
WAN: DSL/LTE Tunnel
Intern: 192.168.2.1
UDM Pro
WAN: 192.168.2.2
Intern: 192.168.100.0/24 (div. Clients und APs)
Viele Grüße
Ingo
Hallo Ingo,
hier wäre eine mögliche Lösung mit einem weiteren Router: https://telekomhilft.telekom.de/t5/Telefonie-Internet/Statische-Route-mit-im-Speedport-Hybrid-einrichten-Neuauflage/m-p/2888545/highlight/true#M850007
Ist aber für eine temporäre Lösung vermutlich zu aufwendig.
Wenn es aber sowieso nur eine temporäre Lösung sein muss, würde ich die Clients direkt an den Speedport hängen bzw. die Verbindung vom Speedport zur UDM-PRO vom WAN- auf einen LAN-Port umstecken.
Viele Grüße
Tobias
Hi Tobi!
Danke für die schnelle Antwort.
Den Artikel von Telekom hilft hatte ich auch gesehen.
Finde ich aber auch etwas aufwendig und bin mir auch nicht zu 100% sicher, ob das dann funktioniert. Wenn es die Zeit zu lässt, versuche ich das vielleicht doch mal.
Aktuell habe ich es wie du vorgeschlagen hast, den Speedport auf einen LAN-Port gesteckt und dann Gateway und Nameserver auf den Speedport umgebogen. Dadurch sind aber leider die ganzen schönen Funktionen der UDM Pro ausgehebelt und die UDM Pro fungiert eigentlich nur noch als WLAN-Controller.
Viele Grüße
Ingo
Hi Tobi,
wollte eben mit Deiner Anleitung Nat auf meiner UDM-Pro deaktivieren. Leider bekomme ich einen Fehler “Could not resolve host: udm-boot.boostchicken.dev” und ich kann das boot script gar nicht installieren.
Hab mir erlaubt das zu ersetzen:
wget https://github.com/boostchicken/udm-utilities/releases/download/1.0.5-fix/udm-boot_1.0.5_all.deb
dpkg -i udm-boot_1.0.5_all.deb
exit
Jetzt hat es funktioniert…
Gruß
Udo
Ja der bisherige Link scheint offline zu sein. Danke für den Hinweis, ich ersetze ihn in meinem Artikel.
Hallo Tobi,
ist das noch aktuell? wenn ich schritt für schritt durchgehe, ist das NAT zwar kurz mal aus, jedoch bald wieder an. Oder ist es inzwischen nicht mehr möglich?
Ja ist es noch. Bei jeder manuellen Änderung der Firewallregeln ist das NAT wieder aktiv. Es wird aber dann automatisch wieder deaktiviert, sofern der Cron-Job sauber läuft.
Ok, dann muss ich nochmals prüfen. Besten Dank.
Eine andere Frage hätte ich noch.
Ich habe die udm pro hinter einer FRITZ!Box hängen. Auf der FRITZ!Box auch eine statische Route angelegt.
Jedoch komme ich aus dem Netz der FRITZ!Box auf kein Gerät im Netz der udm(Ping)
Was könnte hier noch fehlen ?
Die Firewall-Regel auf der UDM-PRO. Ist im letzten Absatz des Artikels (Optional: Firewall-Regel in der UDM-PRO) beschrieben.
Hi! Wenn du in dem Script die Zeile zum Anlegen des Cron-Jobs noch durch
echo “*/15 * * * * “$(readlink -f $0) > /etc/cron.d/delete-nat
ersetzt, funktioniert es auch noch automatisch, wenn man das script umbenennt (bei mir z.B. 30-delete-nat.sh)
@Tobi, danke für deine Anleitung und das Wissen das du teilst, hat mir sehr geholfen.
Grüße
Bud Spencer
Funktioniert das script mit UniFi OS UDM 1.10.4.3702
Wenn ich mit der Anleitung fertig und und einen Test mache:
Steht immer noch:
# xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v –line-number
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
1 76616 8296K MASQUERADE all — any eth4 anywhere anywhere /* 00000001095216660481 */
Fehler gefunden, für die UDM (nicht Pro) müssen die Interfaces im script angepasst werden.
Statt eth8 / eth9 , wird eth4 genutzt.
hallo!
..kann die Fritz Box dann hinter die UDM-Pro ins Netz zugreifen?
zb. für das Live Bild auf den DECT Telefonen?
Ja, das geht. Für dein Szenario sogar ohne weitere Konfiguration, da du die DECT-Telefone nicht über IP ansprichst und damit gar kein Weg über die UDM führt, sondern direkt vom Phone zur Fritzbox bzw. zurück.
Für alles Weitere musst du nur in der UDM Regeln zur Erlaubnis anlegen und abgeht’s. Wobei du berücksichtigen solltest, dass du dann dein Netz nach außenhin öffnest und das so restriktiv wie möglich halten. Im besten Falle wird von Innen auf die Fritzbox zugegriffen, dann ist der Rückweg sowieso durch die Stateful Inspection immer kurzzeitig offen – sprich, dafür musst du gar nichts tun.
Hallo Tobi,
Eine exzellente Anleitung und Thread zum Thema doppeltes NAT.
Auch die Lösung mit BOOSTCHICKEN ist ein prima Hinweis.
Wie sieht es mit IPv6 configuration aus?
Funktioniert dein script auch mit ipv6
Mein Ziel ist es kein doppeltes NAT zu betreiben und ipv6 mit Geräten an der UDM zu betreiben.
Meine config = FritzBox 7490 -> UDM Pro -> Unify Switch – UniFi AP’s
Ich bin kein Profi im IPv6-Bereich, aber soweit ich weiß war bei IPv6 offiziell kein NAT vorgesehen. Es kamen dann trotzdem NAT-Implementierungen raus, die aber nicht in Consumer-Produkten unterstützt werden. Kurz gesagt, die FRITZ!Box macht kein NAT bei IPv6.
Tobi hat absolut Recht.
Es gibt zwar die Möglichkeit bei IPv6 zu natten, allerdings sollte man dafür gute Gründe haben. Das bedeutet auch, dass der Standard-Fall eben genau kein NAT ist.
Dir wird ein Prefix (/64er Netz) des Providers aus dem öffentlichen Adressraum zugeordnet, was bei dir an der Fritzbox ankommt. Solange du das NAT nicht aktiv dort aktivierst, nattet die diesen nicht, sondern wird genau diesen Adressraum an die IPv6-Clients verteilen. Du müsstest sehen, dass deine UDM genau aus dem Bereich eine IPv6-Adresse von der Fritzbox zugeordnet bekommt.
Um meine Behauptung auf Seiten der UDM zu beweisen, dass kein NAT aktiv ist, gebe mal dort in der Shell ein:
ip6tables -nvL -t nat
Du wirst sehen, dass dort kein NAT stattfindet. Die im Artikel genannten Implementierungen in iptables gelten nur für IPv4. Da es dort standardmäßig aktiv ist, müssen hier diese Anstrengungen gemacht werden es zu deaktivieren.
—
Was mich vielmehr interessieren würde, ob dein IPv6 ohne Probleme läuft und welche IPv6-Adressen deine Clients besitzen? Das oben genannte zugeteilte Prefix deines Providers an deine Fritzbox müsste durch diese nämlich delegiert werden, damit deine UDM das in deinem LAN verteilen könnte – und das wüsste ich nicht, wie das mit der Fritzbox geht.
Wenn es bei dir also funktioniert, müsste da irgendeine andere Lösung aktiv sein. Aufschluss bekäme man zunächst darüber, ob bspw. ein Client im UDM-Netz eine IPv6-Adresse aus dem zugeteilten Prefix des Providers an die Fritzbox bekommt. (Prefix kannst du einsehen in der Fritzbox)
Würde mich interessieren wie das bei dir funktioniert, bzw. welche Mechanismen da im Gange sind. Man lernt immer dazu! :-)
Hallo,
sehr interessanter Artikel – bin in dem Thema recht neu und hätte dazu eine Frage. Ich betreibe die UDM Pro an einem Deutsche Glasfaser Anschluß und habe das folgende Problem:
Ich sehe beim Surfen im Netz eine IP Adresse, auf der UDM Pro Seite eine andere WAN Adresse – also doppeltes NAT!? Ich kann auf dem NT vor der UDM Pro natürlich keine Route setzen, was habe ich hier für Möglichkeiten?
Gruß Seppl
Mit Deutsche Glasfaser habe ich keine Erfahrung, aber ich habe folgendes gefunden:
D.h. ja du hast zwangsweise doppeltes NAT und beim CGNAT von Deutsche Glasfaser auch keine Möglichkeit das zu entfernen.
Vielen Dank für den Artikel,sollte das ganze auch auf der UDR laufen? Nach meinem Verständnis wird auf der UDR das BootScript nicht mehr benötigt, und das Script auf Bash angepasst werden ?
Vielen Dank für den tollen Artikel. Habe eine FritzBox die per DHCP eine IP vom ISP kriegt, eine UDM-Pro und hinter UDM-Pro läuft PiHole mit Stubby als DNS Resolver.
Gerne würde ich Double NAT umgehen, aber nicht wegen der Geschwindigkeit, sondern um meinen eigenen DNS Resolver zu nutzen.
PiHole + Stubby laufen als VM auf einem Intel NUC, wo noch weitere VMs laufen – ich habe (derzeit) keine separate Hardware, die ich direkt an die Fritzbox hängen könnte, um dort PiHole + Stubby laufen lassen zu können.
Konkrete Frage wäre: ist es sicher, double NAT gemäss deiner Anleitung zu deaktivieren, die UDM-Pro-FW für die FB zu öffnen, damit die FB die PiHole-Stubby VM als DNS Resolver nutzen kann.
Vielen Dank!
Hallo,
danke für die Anleitung. Ich glaube es klappt bei mir nicht richtig.
Ich hatte Fritz!Box als Modem und USG dahinter gehabt. Da hatte ich Doppeltes NAT mit eine json Script unterbunden.
Jetzt habe ich USG durch UDM Pro ersetzt. Bei xtables wird bei mir nur eth8 angezeigt.
# xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v –line-number
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
1 105K 8669K MASQUERADE all — any eth8 anywhere anywhere /* 00000001095216660481 */
Ich habe versucht nach deiner Anleitung vorzugehen aber wenn ich sh Befehl ausführe bekomme ich:
“root@ubnt:/mnt/data/on_boot.d# sh delete-nat.sh
delete-nat.sh: 5: delete-nat.sh: Bad substitution”
und dann spuckt xtabels genau die selbe Antwort:
# xtables-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v –line-number
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
1 105K 8669K MASQUERADE all — any eth8 anywhere anywhere /* 00000001095216660481 */
Was mache ich denn falsch?
Danke im Voraus
Viele Grüße
Andreas
Hallo Tobi,
ich brauche mal wieder Deine Untersützung:
Netz Standort A
FritzBox 192.168.178.1
UDM-PRO
WAN-IP 192.168.178.3
Gateway-IP 192.168.17.1
Local tunnel IP-Adresse 192.168.255.1 Port 1194
Netz Standort B
FritzBox 192.168.179.1
UDM
WAN-IP 192.168.179.8
Gateway-IP 192.168.34.1
Local tunnel IP-Adresse 192.168.255.2 Port 1194
Beide Standorte sind über ein Unifi Site-to-Site VPN mit dem Protokoll OpenVPN verbunden. Das klappt auch alles wunderbar.
Wenn ich jedoch versuche, aus dem Netz A auf die FritzBox im Netz B zuzugreifen (und vice versa), klappt das nicht. In den lokalen Netzen kann ich auf die jeweilige FritzBox zugreifen.
Kannst Du mir sagen, was noch zu tun ist um das zu beheben? Bin leider weder allzu Netzwerk- noch Unifi erfahren.
Danke und Gruß
Wolfgang
Hallo Wolfang,
du musst auf jeden Fall die VPN-IP-Range 192.168.255.0/24 an den FRITZ!Boxen als statische Route eintragen. Am Standort A mit Gateway 192.168.178.3 und am Standort B mit Gateway 192.168.179.8 und jeweils 255.255.255.0 Subnetz. Das sollte schon ausreichend sein.
Vielen Dank für die tolle Anleitung.
Kann man bei der UDM-Pro nur NAT auf Port 9 (eth8) deaktivieren, so das NAT auf Port 10 (eth9) noch aktiv ist?
Klar, einfach die entsprechenden Zeilen weglassen.
Moin Tobi,
vielen Dank für Deine Anleitung.
Ich muss zwar kein doppeltes NAT eliminieren, möchte aber einen NTP-Server starten und ein DDNS-Update nach dem Start ausführen.
Die Skripte habe ich in /mnt/data/on_boot.d/ installiert und ausführbar gemacht.
Wenn ich die UDM-Pro neustarte werden die Skripte aber nicht automatisch ausgeführt.
Nach dem Neustart kann ich diese aber manuell ausführen und sie starten ordnungsgemäß.
Hast Du eine Idee, woran das liegen könnte?
Vielen Dank und viele Grüße
Hast du denn das “UDMPro Boot Script” richtig installiert?
Hallo Tobi,
vielen Dank für die tolle Anleitung. Habe es vor einiger Zeit damit konfiguriert und es hat alles geklappt.
Nun wollte ich den optionalen Part nachholen, sprich Zugriff aus dem Fritzbox Netz ins UDM Netz.
Leider funktioniert es bei mir nicht trotz der eingetragenen Firewall Regel.
Der Zugriff aus dem UDM Netz ins Fritz Netz ist problemlos möglich. Anders herum geht gar nichts egal welche Regel ich wo eintrage.
Aktuell habe ich unter “Internet In” die IP-Group 192.168.178.0/24 eingetragen mit Destination zum Network “Default” (ja kein besonders einfallsreicher Name) als Accept Action.
Ich habe aber auch schon diverse Quellen und Ziele durchprobiert, nichts funktioniert. Kann es noch einen anderen Grund geben warum das nicht klappt?
Vielen Dank und einen schönen Gruß
Nein sieht gut aus.
Hast du bedacht, dass bei einer Änderung der Firewall-Regeln die NAT-Policies in der UDM-PRO wiederhergestellt werden?
Habe ich tatsächlich nicht bedacht. habe es dann aber nachgeholt.
Leider ohne Erfolg. Ich hab jetzt zwar kein doppeltes NAT, aber funktionieren will der Zugriff aus dem Fritz-Netz trotzdem nicht.
Servus Tobi,
habe grade erfolgreich meinem DREAMROUTER das NATen ausgetrieben, hab dein script etwas angepasst da das Ding nur einen WAN-Port hat und der eth4 heisst.
Da NATen hat ein Eine, nur in der Zeile 3 schmeckt ihm was nicht:
if [ ${uptimeMinutes::-3} -lt 300 ]
er sagt mir “Bad substitution”
Kannst du mir hier evtl. unter die Arme greifen?
Die UDR läuft mit Debian 9 und nicht mehr mit dem “unifi-os” Container wie die UDM-PRO.
Mit dieser Info und etwas Hilfe von Google solltest du das Skript ohne Probleme anpassen können.
Hallo Tobi,
auch ich habe dieses Problem und kriege es gerade leider nicht gelöst. Ich finde den Syntaxfehler nicht, ich habe schon diverses versucht. Ich nutze eine UDM-SE
Ich bekomme das Skript auf meiner UDM-SE nicht installiert. Ich bekomme immer den folgenden Fehler “Error while cleaning up”, wenn ich die Anleitung befolge und die folgende Befehlssyntax über Putty ausführe: curl -fsL “https://github.com/unifi-utilities/unifios-utilities/tree/main/on-boot-script/remote_install.sh” | /bin/sh
Ich habe lediglich den Github Link für den Abruf des Skripts aktualisiert. Ich komme aber nicht weiter. Was mache ich falsch?
Nachfolgend der Verlauf, was ich über Putty eingegeben hatte bzw. was für Meldungen kamen.
UDR/UDMSE detected, installing on-boot script…
Removed /etc/systemd/system/multi-user.target.wants/udm-boot.service.
Creating systemctl service file
Enabling UDM boot…
Created symlink /etc/systemd/system/multi-user.target.wants/udm-boot.service → / etc/systemd/system/udm-boot.service.
UDM Boot Script installed
Downloading CNI plugins script…
CNI plugins script installed
Executing CNI plugins script…
Downloading https://github.com/containernetworking/plugins/releases/download/v1. 1.1/cni-plugins-linux-arm64-v1.1.1.tgz.sha256
Downloading https://github.com/containernetworking/plugins/releases/download/v1. 1.1/cni-plugins-linux-arm64-v1.1.1.tgz
Pouring /mnt/data/.cache/cni-plugins/cni-plugins-linux-arm64-v1.1.1.tgz
Downloading CNI bridge script…
CNI bridge script installed
Executing CNI bridge script…
/mnt/data/on_boot.d/06-cni-bridge.sh
On boot script installation finished
You can now place your scripts in `/mnt/data/on_boot.d`
root@Dream-Machine-Special-Edition:~# curl -fsL “https://github.com/unifi-utilit ies/unifios-utilities/tree/main/on-boot-script/remote_install.sh” | /bin/sh
/bin/sh: 9: Syntax error: newline unexpected
root@Dream-Machine-Special-Edition:~# curl -L https://udm-boot.boostchicken.dev -o udm-boot_1.0.5_all.deb
dpkg -i udm-boot_1.0.5_all.deb
systemctl enable udm-boot
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
100 3364 100 3364 0 0 4964 0 –:–:– –:–:– –:–:– 4964
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: n ot found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
root@Dream-Machine-Special-Edition:~# curl -L https://udm-boot.boostchicken.dev -o udm-boot_1.0.5_all.deb
dpkg -i udm-boot_1.0.5_all.deb
systemctl enable udm-boot
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
100 3364 100 3364 0 0 7182 0 –:–:– –:–:– –:–:– 7182
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: not found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
root@Dream-Machine-Special-Edition:~# UDR/UDMSE detected, installing on-boot script…
Removed /etc/systemd/system/multi-user.target.wants/udm-boot.service.
Creating systemctl service file
Enabling UDM boot…
Created symlink /etc/systemd/system/multi-user.target.wants/udm-boot.service → / etc/systemd/system/udm-boot.service.
UDM Boot Script installed
Downloading CNI plugins script…
CNI plugins script installed
Executing CNI plugins script…
Downloading https://github.com/containernetworking/plugins/releases/download/v1. 1.1/cni-plugins-linux-arm64-v1.1.1.tgz.sha256
Downloading https://github.com/containernetworking/plugins/releases/download/v1. 1.1/cni-plugins-linux-arm64-v1.1.1.tgz
Pouring /mnt/data/.cache/cni-plugins/cni-plugins-linux-arm64-v1.1.1.tgz
Downloading CNI bridge script…
CNI bridge script installed
Executing CNI bridge script…
/mnt/data/on_boot.d/06-cni-bridge.sh
On boot script installation finished
You can now place your scripts in `/mnt/data/on_boot.d`
root@Dream-Machine-Special-Edition:~# curl -fsL “https://github.com/unifi-utilit ies/unifios-utilities/tree/main/on-boot-script/remote_install.sh” | /bin/sh
/bin/sh: 9: Syntax error: newline unexpected
root@Dream-Machine-Special-Edition:~# curl -L https://udm-boot.boostchicken.dev -o udm-boot_1.0.5_all.deb
dpkg -i udm-boot_1.0.5_all.deb
systemctl enable udm-boot
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
100 3364 100 3364 0 0 4964 0 –:–:– –:–:– –:–:– 4964
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: n ot found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
root@Dream-Machine-Special-Edition:~# curl -L https://udm-boot.boostchicken.dev -o udm-boot_1.0.5_all.deb
udm-boot_1.0.5_all.deb while processing:ned error exit status 127n/ssh-proxy: not foundndt_1.0.5_all.deb
-bash: UDR/UDMSE: No such file or directory
-bash: Removed: command not found
-bash: Creating: command not found
-bash: Enabling: command not found
-bash: Created: command not found
-bash: UDM: command not found
-bash: Downloading: command not found
-bash: CNI: command not found
-bash: Executing: command not found
-bash: Downloading: command not found
-bash: Downloading: command not found
-bash: Pouring: command not found
-bash: Downloading: command not found
-bash: CNI: command not found
-bash: Executing: command not found
-bash: On: command not found
-bash: /mnt/data/on_boot.d: Is a directory
-bash: You: command not found
-bash: root@Dream-Machine-Special-Edition:~#: command not found
-bash: /bin/sh:: No such file or directory
-bash: root@Dream-Machine-Special-Edition:~#: command not found
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: not found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
-bash: fg: %: no such job
-bash: Dload: command not found
-bash: 0: command not found
-bash: 100: command not found
-bash: Reading: command not found
-bash: Preparing: command not found
-bash: /var/lib/dpkg/tmp.ci/preinst:: No such file or directory
-bash: syntax error near unexpected token `(‘
-bash: subprocess: command not found
-bash: /var/lib/dpkg/tmp.ci/postrm:: No such file or directory
-bash: dpkg:: command not found
-bash: subprocess: command not found
-bash: Errors: command not found
-bash: udm-boot_1.0.5_all.deb: command not found
-bash: root@Dream-Machine-Special-Edition:~#: command not found
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: not found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
-bash: fg: %: no such job
-bash: Dload: command not found
-bash: 0: command not found
-bash: 100: command not found
-bash: Reading: command not found
-bash: Preparing: command not found
-bash: /var/lib/dpkg/tmp.ci/preinst:: No such file or directory
-bash: syntax error near unexpected token `(‘
-bash: subprocess: command not found
-bash: /var/lib/dpkg/tmp.ci/postrm:: No such file or directory
-bash: dpkg:: command not found
-bash: subprocess: command not found
-bash: Errors: command not found
-bash: udm-boot_1.0.5_all.deb: command not found
-bash: UDR/UDMSE: No such file or directory
-bash: Removed: command not found
-bash: Creating: command not found
-bash: Enabling: command not found
-bash: Created: command not found
-bash: UDM: command not found
-bash: Downloading: command not found
-bash: CNI: command not found
-bash: Executing: command not found
-bash: Downloading: command not found
-bash: Downloading: command not found
-bash: Pouring: command not found
-bash: Downloading: command not found
-bash: CNI: command not found
-bash: Executing: command not found
-bash: On: command not found
-bash: /mnt/data/on_boot.d: Is a directory
-bash: You: command not found
-bash: root@Dream-Machine-Special-Edition:~#: command not found
-bash: /bin/sh:: No such file or directory
-bash: root@Dream-Machine-Special-Edition:~#: command not found
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: not found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
Errors were encountered while processing:
udm-boot_1.0.5_all.deb
-bash: fg: %: no such job
-bash: Dload: command not found
-bash: 0: command not found
-bash: 100: command not found
-bash: Reading: command not found
-bash: Preparing: command not found
-bash: /var/lib/dpkg/tmp.ci/preinst:: No such file or directory
-bash: syntax error near unexpected token `(‘
-bash: subprocess: command not found
-bash: /var/lib/dpkg/tmp.ci/postrm:: No such file or directory
-bash: dpkg:: command not found
-bash: subprocess: command not found
-bash: Errors: command not found
-bash: udm-boot_1.0.5_all.deb: command not found
-bash: root@Dream-Machine-Special-Edition:~#: command not found
(Reading database … 97190 files and directories currently installed.)
Preparing to unpack udm-boot_1.0.5_all.deb …
/var/lib/dpkg/tmp.ci/preinst: 19: /var/lib/dpkg/tmp.ci/preinst: /sbin/ssh-proxy: not found
dpkg: error processing archive udm-boot_1.0.5_all.deb (–install):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 24: /var/lib/dpkg/tmp.ci/postrm: /sbin/ssh-proxy: not found
dpkg: error while cleaning up:
Läuft auf deiner UDM-SE bereits UniFi OS 2.x? Falls ja dürfte das das Problem sein.
Hallo Tobi,
ersteinmal vielen Dank für die tolle Anleitung!
Ich habe alles nach deiner Anleitung auf der UDM-Pro installiert und NAT erfolgreich deaktiviert. Das funktionierte auch lange Zeit gut. Jetzt ist mir aber aufgefallen, das unter der Version (vielleicht auch schon früher) v. 1.12.30 das NAT wieder aktiviert ist ??? Ich habe nichts weiter geändert…und trozdem hat es sich wieder aktiviert. Hast du eine Idee dazu? Wie kann das sein?
Hast du schonmal geprüft, ob dein Cronjob sauber läuft und funktioniert?
vielen Dank Tobi für die schnelle Rückmeldung. Ja, habe total übersehen. Der Cronjob lief nicht sauber. Jetzt ist alles behoben und das NAT ist wieder erfolgreich deaktiviert :-D Danke nochmals!
Hi Tobi,
auch von mir vielen Dank für die super ausführliche Beschreibung!
Ich habe das jetzt alles erfolgreich so eingerichtet, die Standard NAT Regeln sind auch erfolgreich gelöscht.
Ich klenne mich leider mit der Materie nicht so aus, es gibt noch weitere NAT Regeln, welche auf eine gewisse lokale IP Adresse gehen.
Was es damit auf sich hat weiß ich allerdings leider nicht. (Ich vermute evtl hat das mit einer Port-Freigabe zu tun?)
In jeden Fall scheint meine UDM Pro immer noch doppeltes NAT zu verursachen, wenn ich tracert nutze, sehe ich zwei lokale Hops (UDM Pro und FritzBox).
Bin auf Version 1.12.33
Könntest du mir hier weiter Helfen?
Vielen Dank nochmal,
Jan
Genau die anderen NAT-Regeln kommen von der Port-Freigabe.
Ein Traceroute zeigt nur die einzelnen Hops an und kann nicht pauschal beantworten, ob doppeltes NAT vorliegt oder nicht. Dies kann erst zusammen mit dem Wissen der lokalen IPs beantwortet werden. Wenn die UDM-PRO nur routet aber kein NAT aktiv hat, siehst du nämlich trotzdem zwei Hops.
Also am besten einfach via CLI prüfen, ob die besagten NAT-Regeln existieren oder nicht.
Ah okay.
Ich habe im Internet überall gelesen, dass wenn tracert zwei Hops mit lokalen IPs anzeigt, dass dann doppeltes NAT besteht.
Dann gehe ich einfach einmal davon aus, dass das alles soweit geklappt hat, aktuell funktinoiert alles anderre auch einwandfrei :)
Vielen Dank noch einmal!
Hallo Tobi
Kann es sein, das das Script nicht mehr funktioniert auf UDM-Pro 2.x?
Führt man das Script aus, gibts einen Fehler in Zeile 5: delete-nat.sh: 5: delete-nat.sh: Bad substitution
Gibt man obigen Code in einen Shell Checker (shellcheck.net) wird für Zeile 5 eine Warnung ausgegeben: ^– SC3057 (warning): In POSIX sh, string indexing is undefined.
Vielen Dank
Hallo Manfred,
das Boot Skript wurde für Firmware 2.4.x angepasst. Habe auch meinen Artikel entsprechend aktualisiert. Also einfach mal die neue Version probieren. Falls du schon Version 2.4.27 oder neuer hast, dann versuche mal diesen Hinweis: https://github.com/unifi-utilities/unifios-utilities/issues/501#issuecomment-1481328322
Moin,
das Script konnte ich erfolgreich in meine UDM Pro implementieren. Die NAT-Regeln werden brav gelöscht. Nun habe ich, bevor ich die Einstellungen an der Fritz!Box durchführen wollte, geschaut, ob an die UDM angeschlossene Geräte weiterhin Zugriff auf das Internet haben. Das haben sie auch weiterhin. Ich hatte mit dem Gegenteil gerechnet, denn im Tutorial steht:
“Damit Clients aus dem UDM-PRO-Subnetz auf das Internet oder die FRITZ!Box zugreifen können, wird noch eine statische Route auf der FRITZ!Box benötigt.”
Es wird durch die Maßnahme doch nur das Doppel-NAT deaktiviert. Die Fritz!Box nattet somit weiter an die UDM. Ist der Exposed Host dann überhaupt nötig?
Gruß
Simon
Vergesst es! Irgendwas war falsch eingestellt. Nachdem ich alles nochmal durchgegangen bin, war kein Zugriff auf das Internet mehr möglich, sondern erst nachdem die statische Route konfiguriert war. Passt also. ;-)
Hallo Tobi,
ich schliesse mich der Frage von Manfred an: Nach dem Update auf 2.5.17 läuft das script nicht mehr. Kannst Du vielleicht einen Blick darauf werfen? Ich habe mich zwar daran versucht, scheitere jedoch aufgrund mangelnder Kentnisse.
Danke und lieben Gruß
Wolfgang
Bitte mal folgendes versuchen: https://github.com/unifi-utilities/unifios-utilities/issues/501#issuecomment-1481328322
Hi Tobi, thanks for publishing this script. This was really helpful. I was able to tweak it and make it work on 3.x. However I don’t understand the purpose of these lines, are they really needed?
# Check if script runs directly after boot. If so, wait for 10 seconds.
uptimeMinutes=`cat /proc/uptime | awk ‘{print $1}’`
if [ ${uptimeMinutes::-3} -lt 300 ]
then
logger NAT-Script: Script zum 1. Mal nach Boot ausgefuehrt
sleep 10
else
logger NAT-Script: Script via Cron-Job ausgefuehrt
fi
There was an issue since UDM-PRO firmware 1.9.3 that the script did not work anymore and some other services crashed after restart. This occured due to the fact that the script ran to fast after starting and tried to delete the NAT rules even if they didn’t exist yet.
These lines check if the script is running directly after booting and if yes intrudocues a 10 second delay which fixes the issue.
Hallo Tobi.
Wie bekomme ich das script auf 3.0.20 zum laufen?
1. xtables-multi:
Der Befehl heisst jetzt xtables-legacy-multi
2./mnt/data/on_boot.d/
das Verzeichnis wird jetzt unter /data/on_boot.d/ eingebunden.
Nach den Ändereungen bekomme ich beim ausführen des scripts einen bad substitotion.
mit bash delete-nat.sh funktioniert es.
aber halkt nicht mit sh delete-nat.sh bzw ./delete-nat.sh
Deshalb wird das script auch nicht ausgeführt beim booten.
Vielen Dank für deine Hilfe.
Tobi hat scheinbar kein Interesse mehr.
Das ist nicht ganz richtig. Bin nur nicht auf 3.0.20 und kann daher noch nicht helfen.
Hi, zusätzlich zu den benannten Änderungen, musste ich noch ändern:
3. /etc/init.d/crond restart durch /etc/init.d/cron restart ersetzen
4. uptimeMinutes=`cat /proc/uptime | awk ‘{print $1}’` durch die zwei Zeilen:
uptimeMinutes=`cat /proc/uptime`
uptimeMinutes= awk ‘{print $ uptimeMinutes}’
vielleicht nicht besonders schön. Aber das Skript läuft
Hi, bei 4. war ich falsch. Es wird eine Float-Zahl erzeugt. Die muss zu Int umgewandelt werden. Statt uptimeMinutes=`cat /proc/uptime | awk ‘{print $1}’` habe ich uptimeMinutes=`cat /proc/uptime | awk ‘{print $1}’ | awk ‘{ V=$1+0 ; printf(“%.0f\n”, V); }’` . Dann musste noch die If-Anweisung angepasst werden. Statt if [ ${uptimeMinutes::-3} -lt 300 ] nutze ich if [ $uptimeMinutes -lt 300 ].
Mit dem Eintrag bei cron habe ich noch Herausforderungen. Die Datei wird angelegt, aber sie wird nicht alle 15 min ausgeführt. Vielleicht hat noch jemand eine Idee…
Hallo, ich bin durch Zufall jetzt erst auf diesen Beitrag gestoßen und finde es klasse.. leider habe ich schon die neuste Version auf der udm pro , ist glaub die 3.1.15 kann gerade nicht nachsehen.
Und da funktioniert das Script ja wohl nicht mehr…
Wírd es da eine Lösung geben? Und wird die dann ganz vorn im Beitrag verlinkt oder findet man die dann hier Zwischen den ganzen Beiträgen ?
Ich würde gern das NAT auf Port 9 (wan Port) und Port 10 wan Port 1 glaube ich ausschalten
Danke für diesen Beitrag hier
Ich hoffe mir kann jemand helfen
Mfg
Reiter
Na hallo, wie ich oben schon schrieb… die neuste Version ist die 3.1.15
Wird es da auch eine Lösung für geben
Die FRITZ!Box hängt davor als exposed Host und wenn ich da einmal NAT einsparen könnte wäre das klasse
Danke schonmal
Das skript hat bei mir funktioniert (vielleicht wird das jetzt komplet angezeigt?!):
#!/bin/bash
# Check if script runs directly after boot. If so, wait for 30 seconds.
uptimeMinutes=$(awk ‘{print $1}’ /proc/uptime)
if (( ${uptimeMinutes%.*} /etc/cron.d/delete-nat
/etc/init.d/crond restart
fi
Versuche das Skript mal zwischen folgende HTML-Tags zu stecken:
<\pre><\code class="language-*">
<\/code><\/pre>
Dabei natürlich die “\” entfernen.
Das skript hat bei mir funktioniert bei mir (UDM-Pro v. 3.1.16)
#!/bin/bash
# Check if script runs directly after boot. If so, wait for 27 seconds.
uptimeMinutes=$(awk '{print $1}' /proc/uptime)
if (( ${uptimeMinutes%.*} =1; i-- ))
do
iptables -t nat -D $chain $i
done
fi
# Check if cron job exists, if not create it and restart cron daemon
if [[ ! -e /etc/cron.d/delete-nat ]]; then
echo "*/26 * * * * /data/on_boot.d/delete-nat.sh" > /etc/cron.d/delete-nat
/etc/init.d/crond restart
fi
@Tobi Danke für den Hinweis mit den HTML-Tags, zum Code einfügen…
Das skript hat bei mir funktioniert bei mir (UDM-Pro v. 3.1.16), das ist nur der Mittelere Teil aus meinem Script (kriege nicht alles reinkopiert?!):
# NAT Regeln loeschen zu überprüfende Kette
chain="UBIOS_POSTROUTING_USER_HOOK"
# Überpruefen Sie, ob es Regeln in der Kette gibt
if iptables -t nat -L $chain | grep -E 'MASQUERADE.*eth[89]'; then
# Anzahl der Regeln in der Kette holen
num_rules=$(iptables -t nat -L $chain --line-numbers | grep -E 'MASQUERADE.*eth[89]' | wc -l)
# Jede Regel einzeln von hinten nach vorne löschen
for (( i=$num_rules; i>=1; i-- ))
do
iptables -t nat -D $chain $i
done
fi
@Tobi Danke für den Hinweis mit den HTML-Tags, zum Code einfügen…
Am besten du stellst den Code via Link zur Verfügung, z.B. hier: https://www.toptal.com/developers/hastebin
Alternativ kannst du mir auch ne Mail bzw. via Kontaktformular schreiben, dann ergänze ich den vollständigen Code in deinem Kommentar.
Auf jeden Fall schonmal vielen Dank für deine Mühe!
Hey Tobi, vielen Dank für deine Hinweise. Nach deinem Rat probiere ich jetzt einmal den gesamten code in nachfolgenden Link zu stecken.
Das NAT-Skript im nachfolgenden Link funktioniert bei mir wunderbar (UDM-Pro v. 3.1.16):
https://hastebin.com/share/erexegudih.bash
Wer erst noch „UDM / UDMPro Boot Script“ installieren muss, hier meine von antary (Tobi) und github zusammengesuchte und erstellte Zusammenfassung:
# Überprüfen, ob NAT aktiviert oder deaktiviert ist:
xtables-legacy-multi iptables -t nat -L UBIOS_POSTROUTING_USER_HOOK -v --line-number
# NAT Aktiviert:
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 MASQUERADE all -- any eth9 anywhere anywhere /* 00000001095216660481 */
2 34914 4137K MASQUERADE all -- any eth8 anywhere anywhere /* 00000001095216660482 */
# NAT Deaktiviert:
Chain UBIOS_POSTROUTING_USER_HOOK (1 references)
num pkts bytes target prot opt in out source destination
# SSH Verbindung aufbauen:
Username: root
IP: xxx.xxx.xxx.xxx
Passwort:
# Kontrollieren ob Boostchicken läuft (sollte anzeigen: Run On Startup UDM 3.x)
systemctl status udm-boot.service
# Boostchicken Installieren [1]
# Download package
curl -L https://github.com/unifi-utilities/unifios-utilities/raw/main/on-boot-script-2.x/packages/udm-boot-2x_1.0.1_all.deb -o /tmp/udm-boot-2x_1.0.1_all.deb
# Install it
dpkg -i /tmp/udm-boot-2x_1.0.1_all.deb
# Patches for ‘udm-boot-2x_1.0.1_all.deb’ package [2]
sed -i 's/Description=Run On Startup UDM 2.x/Description=Run On Startup UDM 3.x/g' /lib/systemd/system/udm-boot.service
sed -i '/Restart=on-failure/d' /lib/systemd/system/udm-boot.service
sed -i '/RestartSec=5s/d' /lib/systemd/system/udm-boot.service
# Enable reload and start
systemctl enable udm-boot
systemctl daemon-reload
systemctl start udm-boot
# NAT Skript erstellen:
cd /data/on_boot.d/
ls (Dateien Auflisten: Wenn Skript „delete-nat.sh“ vorhanden, weiter zum Bearbeiten. Ansonsten erstellen: touch /data/on_boot.d/delete-nat.sh)
# Konsolenbefehle zum Bearbeiten der „delete-nat.sh“ Datei (Inhalt, siehe NAT-Skript Link)
vim delete-nat.sh (Öffnen der Datei)
dd (Drücken, zum Löschen von Zeilen)
SHIFT + A (Bearbeitungsmodus, Code Einfügen oder Ändern)
ESC (Bearbeitungsmodus Beenden)
SHIFT + ZZ (Speichern und Beenden)
# Skript ausführbar machen:
chmod +x delete-nat.sh
# Skript manuell ausführen:
./delete-nat.sh
[1] https://github.com/unifi-utilities/unifios-utilities/tree/main/on-boot-script-2.x
[2] https://github.com/unifi-utilities/unifios-utilities/issues/523#issuecomment-1733527918
@ Tobi, wenn du Zeit hast, kannst du dieses Skript gerne nochmal testen und wenn’s ebenfalls funktionsfähig ist, in einem weiteren Teil deiner Webseite als Anleitung für die UDM-Pro v. 3.x.x ergänzen. Danke für deine bisherigen Bemühungen.
Im nat-Skript hat sich ein fehler eingeschlichen:
https://hastebin.com/share/erexegudih.bash
und zwar ist folgender Eintrag im Cron-Job nicht mehr aktuell :
echo "*/26 * * * * /data/on_boot.d/delete-nat.sh" > /etc/cron.d/delete-nat
bitte durch folgendes ersetzen (es fehlt ein “root”):
echo "*/26 * * * * root /data/on_boot.d/delete-nat.sh" > /etc/cron.d/delete-nat
Bitte nochmal hochladen, dann ergänze ich es im Artikel!
NAT-Skript für UDM-PRO 3.x
NEU: Optimiert, überprüft und löscht nur eth8 und eth9 alle MASQUERADE-Regeln nacheinander
#!/bin/bash
# Prüft ob das Skript binnen 360 sek. nach Systemstart ausgeführt wird und wartet dann 23 sek.
uptimeSeconds=$(awk '{print $1}' /proc/uptime)
if (( ${uptimeSeconds%.*} =1; i-- ))
do
iptables -t nat -D $chain $i
done
fi
# Create cron job if it doesn't exist every 26 minutes
if ! ls /etc/cron.d/delete-nat > /dev/null 2>&1
then
echo " MAILTO=""
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/26 * * * * root /data/on_boot.d/delete-nat.sh" > /etc/cron.d/delete-nat
/etc/init.d/cron restart
fi
Die nat-Skript Seite geht nicht mehr.
Hi,
der link zum NAT-Script ist leider nicht mehr aktuell, kann jemand den Code in der aktuellen Version evtl. nochmal irgendwo posten und dann hier verlinken?
Grüße
Hi,
der link zum NAT-Script ist leider nicht mehr aktuell, kann jemand den Code in der aktuellen Version evtl. nochmal irgendwo posten und dann hier verlinken?
…
Hallo, ich wollte mal fragen ob es noch eine Möglichkeit gibt mit der momentanen OS Version 3.1.16
Das NAT auszuschalten
So wie ich das mit bekommen habe ist,wohl alles soweit gelöscht worden. Auch das Boot Script.
Wäre super wenn sich jemand bereit erklären würde das nochmal in Angriff zu nehmen da es ja eine wichtige Sache ist
Über Antwort würde ich mich sehr freuen.
Zugriff auf die Shell habe ich.. Aber es hat sich wohl alles geändert.. auch das überprüfen der iptables
Oder kann mir jemand helfen
Danke im vorraus