Von einem Linux-Host beliebige UPnP-Portfreigaben des Routers anfordern

Um von einem Linux-Host automatische Portfreigaben/Portweiterleitungen per UPnP anzufordern, bietet sich auf der Kommandozeile upnpc an. Das Kommando erhält man unter gängigen Systemen durch die Installation des „miniupnpc“ Paketes.

Eine Portfreigabe kann man dann über

upnpc -a 192.168.188.157 22 2222 TCP

anfordern. Nutzt das eigene Linux-System mehrere Netzwerkinterfaces muss auch noch eine IP auf dem Interface oder ein Interface ansich mit dem Parameter „-m“ definiert werden:

upnpc -m eth2 -a 192.168.188.157 22 2222 TCP

Im Beispiel wird von außen unter angabe der jeweiligen externen IP eine Portweiterleitung für EXTERNEIP:2222 auf den internen Host HOST:22 angelegt.

Welche externe IP zum Einsatz kommt, sieht man mit

upnpc -m eth2 -l

Erscheint im Output eine externe IP mit 100.64.x.x oder aus einem reservierten IP-Netz nach RFC5735, handelt es sich um ein NAT. Im Falle von 100.64.x.x meist um ein CGNAT, ein Carrier-Grade NAT. Euer Internetprovider steckt dann mehrere Kunden hinter eine öffentliche Ausgangs-IP um entsprechend IP-Adressen zu sparen.

In meinem Fall ist das der lokale Energie- und Telekommunikationsversorger. Für 1,90€ brutto im Monat kann man eine eigene richtige öffentliche IP erhalten. Ansonsten wird die UPnP-Freigabe nach extern keinen Effekt haben.

Sollte es absolut nicht möglich sein, eine öffentliche IPv4 zu erhalten, so kann man immerhin nach dem gleichen Schema mit IPv6 verfahren. Hier bringen die Provider in der Regel kein CGNAT zum Einsatz weil es schlicht keinen Sinn macht. Im Gegenteil – hier weisen die Provider normalerweise ein umfassendes eigenes IPv6-Subnetz zu, welches ihr nach eurem belieben nutzen könnt. Die Freigaben sind hier, sofern euer Router das unterstützt, nach dem gleichen Schema anzulegen, aber mit dem Parameter „-6“:

upnpc -6 -m eth2 -a 2a06:34c0:a03:abcd:ef01:203:405:607 22 22 TCP

Hinweis:

Sollte es eine Fehlermeldung geben ist noch zu prüfen ob der Router UPnP vom jeweiligen internen Host erlaubt. Bei einer FRITZ!Box beispielsweise, müssen die „Selbstständigen Portfreigaben“ für den Host unter „Internet“ – „Freigaben“ explizit erlaubt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert