OPNsense Forum

International Forums => German - Deutsch => Topic started by: Benqer on June 19, 2018, 06:07:21 pm

Title: VoIP Unitymedia
Post by: Benqer on June 19, 2018, 06:07:21 pm
Hallo,

ich habe noch einige fragen bzw unverständnis bzgl VoIP, ich bin bei Unitymedia und habe ein Gigaset S850A Go.
Nun habe ich die Einstellungen wie folgt festgelegt:

(http://fs1.directupload.net/images/180618/temp/ah95k67e.jpg) (http://www.directupload.net/file/d/5122/ah95k67e_jpg.htm)

(http://fs1.directupload.net/images/180618/temp/cfohci7n.jpg) (http://www.directupload.net/file/d/5122/cfohci7n_jpg.htm)

(http://fs1.directupload.net/images/180618/temp/vviom2q3.jpg) (http://www.directupload.net/file/d/5122/vviom2q3_jpg.htm)

Daraufhin wurde ich hingewiesen, dass das PortForwarden ein Sicherheitsrisiko ist.
Mir wurde daraufhin folgendes empfohlen:
"Was Du brauchst ist bei NAT static port und im Gateway NAT keep alive. "
Ich habe aber noch nicht rausgefunden wie ich NAT keep alive einstelle, dazu habe ich in der OPNsense bzw. im Gigaset nichts gefunden.

Ich bin noch neu in der OPNsense und muss mich noch einarbeiten.
Habe schon einige beitrage gelesen, die es dazu hier gibt z.B.  Siproxd, aber dort wird ja auch Port-Forwarding gemacht?!

Jedenfalls wäre ich euch sehr dankbar, wenn mir jemand noch etwas mit der Konfiguration helfen kann, sodass sie auch sicher ist.

Danke schon mal.

Lg
Benqer
Title: Re: VoIP Unitymedia
Post by: theq86 on June 20, 2018, 07:31:12 am
(Bild 1, Portweiterleitung)

- Bei den Portfreigaben reicht eine Beschränkung auf UDP Traffic.

- Was ist 192.168.1.121 für ein Gerät?

- Diese Adresse sieht mir sehr nach DHCP-vergeben aus. Wenn du eine Portweiterleitung einrichtest solltest du besser die Adresse für das Gerät statisch vergeben. Es ist nie ganz garantiert, dass ein Gerät immer die selbe Adresse vom DHCP Server bekommt.

(Bild 2, Firewallregeln WAN)

- Auch hier reicht das Durchlassen nur von UDP

- Wenn du die SIP und RTP Server IPs oder IP ranges kennst, dann trage sie in einen Alias und verwende sie als Quellbedingung. Es ist immer schlecht alle (*) durchzulassen.

PS: Nicht zu vernachlässigende Kleinigkeit: Deine Descriptions "NAT" sind aussagekräftig wie das Wort Wurst. Wenn später die Anzahl der Regeln wächst hilft es echt, passendere Beschreibungen zu wählen wie: "Allow Inbound SIP Traffic from UnityMedia" - auf die Weise weißt du in nem halben Jahr noch genau was die Regel macht.

(Bild 3, Outbound NAT)

- Analog zu oben: Schränke deine Zielbedingung ein. Willst du wirklich, dass ALLES von dem Gerät mit statischem Port genattet wird? Auch hier, wenn verfügbar, die Provider IPs mit in Betracht ziehen.

- Quelle und Ziel würde ich hier auch wieder auf UDP beschränken

Du kannst dich auch an anderer Leute Einstellungen hier im Forum orientieren. Es gibt Beiträge zu einigen Anbietern ;-)

Zum Keepalive:

Das ist keine Einstellung, die du beim NAT treffen kannst. Das ist ein "Trick" um die Portweiterleitung zu umgehen.
Die Firewall ist stateful und das bedeutet, dass Verbindungen, die ausgehen, auch auf dem Rückweg wieder zugelassen werden. Wenn dein Gerät jetzt ständig auf UDP zu deinem Anbieter rausfunkt lässt OPNsense die Antwort also durch. Da bei UDP im Gegensatz zu TCP keine verbindungsorientierte Übertragung stattfindet (hierzu lies bitte mal etwas über TCP/UDP nach) kann die Firewall nicht bestimmen, wann eine Verbindung "vorbei" ist, also wann die Firewall wieder eingehenden Traffic blocken soll. Deshalb wird bei UDP einfach eine Karenzzeit gegeben, in der eine UDP Gegenstelle durch die Firewall kommt. Wenn du jetzt also ständig das Keepalive sendest, kann der Anbieter dir jederzeit antworten.

Diese Funktion kenne ich definitiv von der FritzBox.
Wie du das mit deinem Sip Gerät machst weiß ich nicht. Aber von dem aus muss die Keepalive Verbindung ausgehen.

Dennoch: Dieser Weg ist nicht sicherer als ein sauber! an die Situation angepasstes Port-Forwarding. Denn der Effekt ist der gleiche: Der Anbieter (und nur der) kommt durch. Ob das jetzt durch Keepalive, Portweiterleitung passiert ist egal.
Title: Re: VoIP Unitymedia
Post by: Benqer on June 20, 2018, 11:11:50 pm
Danke für deine ausführliche Antwort :)

Habe jetzt Aliases erstellt, alles auf UDP und die entsprechenden Aliases bei Quellen und Zielen eingestellt, sowie einen klare Beschriftung  ;D

192.168.1.121 ist mein Gigaset Telefon. Es hat die IP per DHCP bekommen.
Habe static Mapping für die MAC aktiviert, laut meiner vorherigen frage hier im Forum, soll dadurch sicher gestellt werden, das es immer die gleiche IP bekommt.

Übrigens die Beschreibung "NAT" kam dadurch zustande, wenn man erst den PortForward Eintrag macht, er dann automatisch, die Regel bei der Firewall hinzufügt, immer mit der beschreibung "NAT"
Diese kann man auch nicht editieren.
Habe dann beim erstellen der PortFowards die Filter rule association auf None gestellt und die WAN Regeln von hand eingeplegt.

Kannst du mir vielleicht noch etwas zu dem Static Port im Outbound erklären, was diese Funktion genau bewirkt?
Title: Re: VoIP Unitymedia
Post by: theq86 on June 21, 2018, 12:04:25 am
Beim Outbound NAT (Auch S-NAT oder Source NAT genannt) wird die private Quell-IP-Adresse des Pakets auf deine externe IP Adresse umgeschrieben und ein zufällig freier Port des Routers wird gewählt, bevor das Paket den Router verlässt. Diesen Quell-Port merkt sich der Router in einer Tabelle zusammen mit deiner privaten IP.

Die Gegenstelle muss dann die Antwort an deine externe IP und den Port des Routers schicken.
Kommt die Antwort an, weiß der Router anhand des Ports, den er gewählt hat, dass er das Paket an genau den anfragenden Rechner zurückschicken muss.

Der ganze HickHack ist also nötig, weil das private Netz ja via NAT vom öffentlichen Adressraum getrennt wird.

Beispiel: Seitenaufruf Google

Paket auf dem PC -> will zu Google
[ IP    | 192.168.178.101    ] -> [IP    | 172.217.23.163]
[ Port | 8615 (evtl. zufällig) ] -> [Port | 80                   ]

Du siehst oben links deine private IP
Unten links ist ein zufälliger Port. Obwohl Port 80 für HTTP reserviert ist, ist nie gesagt, dass ein Browser diesen bei HTTP Requests als Quellport auch nimmt.
Rechts oben die IP von google.de, rechts unten Port 80. Dieser MUSS 80 sein, da ein Webserver DEFINITIV auf Port 80 lauscht (meistens)

So sendet es dein PC ab und so kommt es dann beim Router auch an. Dein Router macht nun folgendes:
- Er speichert sich deine IP und Quellport
- Er tauscht die Quell-IP mit der externen IP (deine Internet IP) aus
- Er tauscht den Quell-Port mit einem zufällig freien Port aus. (Warum? Weil der vom Client gewünschte Port eventuell schon am Router belegt ist). Nun sieht es so aus:

Paket auf dem Router -> will zu Google
[ IP    | 88.130.12.59       ] -> [IP    | 172.217.23.163]
[ Port | 12387 (zufällig)    ] -> [Port | 80                   ]

Der weitere Teil zu Google ist für die Erklärung der statischen Portfunktion nicht erforderlich.

Statischer Port bedeutet: Der Router nimmt den vom Client ausgewählten Quell-Port 1:1 für die Weiterübertragung. Das sähe im obigen Fall so aus:

[ IP    | 88.130.12.59       ] -> [IP    | 172.217.23.163]
[ Port | 8615 (statisch)      ] -> [Port | 80                   ]

Aber warum das Ganze? Im Falle des SIP Protokolls will man einfach sicher gehen, dass der Quellport den das Telefon / Softphone / SIP-Client verwendet eben der selbe ist, der auch am SIP-Server ankommt. Der Client kann das selbst bestimmen, dem Router muss man aber sagen, dass er diesen Port zugunsten eines zufälligen nehmen soll.
Title: Re: VoIP Unitymedia
Post by: Benqer on June 21, 2018, 12:14:52 am
Dankeschön!

Lg