Coturn hinter pfSense (NAT)
-
SSL wäre für den Turn Server nicht unbedingt notwendig, da WebRTC grundsätzlich immer verschlüsselt ist. Manche machen das über Port 443 um WebRTC zu verschleiern.
Für den Turn Server benötigst du auch nur einen Port. Standard wäre bei zusätzlicher SSL Verschlüsselung 5349. Du hast in auf Port 3478 (ohne SSL) konfiguriert, was du aber lassen kannst. NAT Ausgehend benötigst du gar nicht, da alles über den HAProxy läuft.
Die Firewall Regeln müssten dann so aussehen (in deinem Fall Port 3478):
WAN Interface
LAN Interface
Die Turn Server und HAProxy Konfiguration sieht soweit OK aus, vorausgesetzt die richtige öffentliche IP-Adresse ist gesetzt.
Im HAProxy solltest du noch ein paar zusätzliche Einstellungen vornehmen, um Verbindungsabbrüche zu vermeiden.
Frontend
Advanced settings
Client timeout 3600000Advanced pass thru
option clitcpkaBackend
Timeout / retry settings
Connection timeout 60000
Server timeout 3600000Backend pass thru
option redispatch
option srvtcpkaDiese Timeout Werte sind nur Beispiele und können angepasst werden.
-
ich habe jetzt nochmal alles entfernt was ich im Zuge des Turn-Server an der pfSense konfiguriert habe.
Die HA-Proxy-Konfiguration sieht nun so aus:
Anstatt externaldomain steht natürlich die richtige DE-Domain drin.
NAT: Portweiterleitung und Ausgehend ist nun wieder wie zuvor:
wobei die externe (feste IP des lokalen Glasfaser-Anschluss) wie o.g. durch einen Platzhalter ersetzt wurde.
Die Firewall-Regeln:
Am Ergebnis hat sich leider nichts geändert. Die Verbindung zwischen zwei Clients, einer im LAN also da wo der Conturn steht und der andere extern, kommst zustande aber ohne Bild&Ton.
-
Gibt es irgendeine Möglichkeit die in Meet definierten Daten:
von extern mittels Browser oder Linux-Command zu testen? Damit ich den Fehler weiter eingrenzen kann.
-
@pixel24 Eine Idee wäre noch wenn du bei der Turn Server Adresse TCP mitgibst, nicht das Kopano Meet eine UDP Verbindung versucht.
turn:turn.externaldomain.de:3478?transport=tcp
Vielleicht auch das mal ausprobieren.
turns:turn.externaldomain.de:3478?transport=tcp -
@nonick ja, das hatte ich auch schon probiert aber ändert nichts.
Gibt es auf der pfSense die Möglichkeit den Netzwerverkehr zu protokollieren um zu sehen ob da überhaupt was passiert bzw. zu sehen wo es klemmt?
-
Im Kopano-Forum bzw. in der Readme (link dort) wird davon gesprochen dass doch ausgehende Ports 1:1 gemappt werden müssen. Siehe:
https://forum.kopano.io/topic/3597/coturn-meet-behind-a-firewall-lan-nat/7
Nur welche POrts sind das?
-
@pixel24 Du kannst Pakete in der Sense mitschneiden. Siehe unter Diagnose / Paketmitschnitt.
Wenn unter WebRTC ausschließlich Peer-to-Peer Verbindungen genutzt werden, dann benötigst du keinen Turn Server, dafür aber eventuell NAT Port Mapping. Geht alles über Turn, dann ist das eigentlich nicht notwendig.
Man kann aber auch beides nutzen, p2p und Turn.
Nur welche POrts sind das?
Genau das ist das unschöne daran, das können eigentlich alle Ports über 1024 sein.
-
ich habe mal weiter herum probiert. Die oben gezeigte HA-Proxy (Frontend & Backend) raus geschmissen und einen HTTPS-Offload rein gemacht wie ich es für alle Server nutze die ich per HTTPS von außen differenziert unter der Subdomain ansprechen möchte.
Also https://turn.externaldomain.de auf die 192.168.24.6 geleitet.
Da im Kopano-Forum geschrieben haben dass alle notwenigen Ports Ein- und ausgehend gemappt werden müssen habe ich ich folgenden Alias definiert:
Port-Forwarding:
Ausgehend:
Während des Verbindungs-Aufbau (Handy LTE <-> PC LAN) habe ich zweimal Paketmittschnitte gemacht:
1 x Schnittstelle WAN, Host-Adresse IP des Handys im O2-Netz
IP's habe ich verändert.
Handy: 46.125.167.173
WAN (pfSense): 203.0.113.20712:16:39.278724 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 209 12:16:39.278773 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:39.280156 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 224 12:16:39.321708 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 0 12:16:39.321769 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 0 12:16:39.323058 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:39.364637 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 0 12:16:39.394599 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 541 12:16:39.394618 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 0 12:16:39.394901 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 137 12:16:39.441137 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 0 12:16:39.446451 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 51 12:16:39.446467 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 0 12:16:39.455241 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 1348 12:16:39.455302 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 0 12:16:39.455345 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 857 12:16:39.455376 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 0 12:16:39.460902 IP 203.0.113.207.443 > 46.125.167.173.62872: tcp 145 12:16:39.566160 IP 46.125.167.173.62872 > 203.0.113.207.443: tcp 0 12:16:41.343645 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 370 12:16:41.395710 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.421319 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 311 12:16:41.421402 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.525754 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.525773 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.525785 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 811 12:16:41.528503 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 446 12:16:41.573472 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.573493 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.573514 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.573536 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.573549 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.617048 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.617069 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.617097 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.617111 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 119 12:16:41.665175 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.687554 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 299 12:16:41.687584 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.687603 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 37 12:16:41.687613 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.687821 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 1348 12:16:41.687844 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.687857 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 1348 12:16:41.687866 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.687878 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 357 12:16:41.687887 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.687898 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 398 12:16:41.687907 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.688726 IP 46.125.167.173.39031 > 203.0.113.207.3478: tcp 0 12:16:41.688888 IP 203.0.113.207 > 46.125.167.173: ICMP 203.0.113.207 tcp port 3478 unreachable, length 68 12:16:41.693398 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 409 12:16:41.693475 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.805962 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.806001 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.806015 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1095 12:16:41.806395 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 446 12:16:41.806878 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 446 12:16:41.807055 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 457 12:16:41.807381 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 874 12:16:41.808616 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 446 12:16:41.849334 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.849355 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1348 12:16:41.849383 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 1285 12:16:41.855133 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.879460 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 78 12:16:41.879490 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.880466 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 84 12:16:41.896953 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:41.903448 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 37 12:16:41.903475 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.914017 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 1348 12:16:41.914047 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.914068 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 1348 12:16:41.914087 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.914100 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 507 12:16:41.914109 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:41.953378 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:46.527907 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 355 12:16:46.623331 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0 12:16:46.902676 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 78 12:16:46.902765 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 0 12:16:46.903970 IP 203.0.113.207.443 > 46.125.167.173.58284: tcp 84 12:16:46.950437 IP 46.125.167.173.58284 > 203.0.113.207.443: tcp 0
1 x Schnittstelle LAN, Host-Adresse : IP (LAN) des Turn-Servers
IP des TURN-Server (unverändert): 192.168.24.6
IP (LAN) der pfSense (unverändert): 192.168.24.254
WAN-IP de pfSense (verändert): 203.0.113.20712:17:35.788439 IP 192.168.24.254.63171 > 192.168.24.6.443: tcp 77 12:17:35.789392 IP 192.168.24.6.443 > 192.168.24.254.63171: tcp 83 12:17:35.789421 IP 192.168.24.254.63171 > 192.168.24.6.443: tcp 0 12:17:36.902558 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 78 12:17:36.903635 IP 192.168.24.6.443 > 192.168.24.254.28110: tcp 84 12:17:36.903662 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 0 12:17:37.370856 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 209 12:17:37.371946 IP 192.168.24.6.443 > 192.168.24.254.63171: tcp 333 12:17:37.371976 IP 192.168.24.254.63171 > 192.168.24.6.443: tcp 0 12:17:37.371988 IP 192.168.24.6.443 > 192.168.24.254.28110: tcp 224 12:17:37.372002 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 0 12:17:37.664637 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 0 12:17:37.664877 IP 192.168.24.6.443 > 192.168.24.254.26865: tcp 0 12:17:37.664913 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 0 12:17:37.664954 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 531 12:17:37.665045 IP 192.168.24.6.443 > 192.168.24.254.26865: tcp 0 12:17:37.665398 IP 192.168.24.6.443 > 192.168.24.254.26865: tcp 142 12:17:37.665415 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 0 12:17:37.665538 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 51 12:17:37.665598 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 1448 12:17:37.665610 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 792 12:17:37.665663 IP 192.168.24.6.443 > 192.168.24.254.26865: tcp 0 12:17:37.669867 IP 192.168.24.6.443 > 192.168.24.254.26865: tcp 145 12:17:37.669897 IP 192.168.24.254.26865 > 192.168.24.6.443: tcp 0 12:17:39.983692 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 0 12:17:39.983739 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 0 12:17:39.983892 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 0 12:17:39.984102 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 266 12:17:39.984120 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 0 12:17:39.984138 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 0 12:17:39.984163 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 0 12:17:39.984253 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 0 12:17:39.984473 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 266 12:17:39.984485 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 0 12:17:39.985555 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 1448 12:17:39.985573 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 1448 12:17:39.985589 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 16 12:17:39.985647 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 0 12:17:39.985658 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 0 12:17:39.986631 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 126 12:17:39.986644 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 0 12:17:39.987061 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 1448 12:17:39.987077 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 1448 12:17:39.987092 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 16 12:17:39.987151 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 0 12:17:39.987162 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 0 12:17:39.987340 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 51 12:17:39.987604 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 163 12:17:39.987622 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 0 12:17:39.987737 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 0 12:17:39.987819 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 0 12:17:39.987833 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 0 12:17:39.987906 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 531 12:17:39.987974 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 0 12:17:39.988160 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 126 12:17:39.988176 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 0 12:17:39.988325 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 142 12:17:39.988336 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 0 12:17:39.988414 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 51 12:17:39.988568 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 51 12:17:39.988600 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 220 12:17:39.988611 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 163 12:17:39.988623 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 0 12:17:39.988672 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 0 12:17:39.988703 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 0 12:17:39.988789 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 0 12:17:39.988802 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 0 12:17:39.988860 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 531 12:17:39.988948 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 0 12:17:39.989207 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 142 12:17:39.989223 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 0 12:17:39.989352 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 51 12:17:39.989383 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 220 12:17:39.989450 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 0 12:17:39.992423 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 805 12:17:39.992456 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 0 12:17:39.992608 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 805 12:17:39.992817 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 805 12:17:39.992835 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 0 12:17:39.992933 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 805 12:17:39.993131 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 151 12:17:39.993150 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 0 12:17:39.993243 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 208 12:17:39.993478 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 151 12:17:39.993500 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 0 12:17:39.993578 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 208 12:17:39.994811 IP 192.168.24.6.443 > 192.168.24.254.55406: tcp 1093 12:17:39.994837 IP 192.168.24.254.55406 > 192.168.24.6.443: tcp 0 12:17:39.994954 IP 192.168.24.6.443 > 192.168.24.254.50704: tcp 1093 12:17:39.994965 IP 203.0.113.207.443 > 192.168.24.6.37436: tcp 1093 12:17:39.994973 IP 192.168.24.254.50704 > 192.168.24.6.443: tcp 0 12:17:39.995080 IP 203.0.113.207.443 > 192.168.24.6.36372: tcp 1093 12:17:40.038794 IP 192.168.24.6.36372 > 203.0.113.207.443: tcp 0 12:17:40.038814 IP 192.168.24.6.37436 > 203.0.113.207.443: tcp 0 12:17:40.054409 IP 192.168.24.254.63171 > 192.168.24.6.443: tcp 332 12:17:40.055298 IP 192.168.24.6.443 > 192.168.24.254.28110: tcp 370 12:17:40.055314 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 0 12:17:40.098521 IP 192.168.24.6.443 > 192.168.24.254.63171: tcp 0 12:17:40.125868 IP 192.168.24.254.28110 > 192.168.24.6.443: tcp 311 12:17:40.126686 IP 192.168.24.6.443 > 192.168.24.254.63171: tcp 346
-
@pixel24 said in Coturn hinter pfSense (NAT):
Die oben gezeigte HA-Proxy (Frontend & Backend) raus geschmissen und einen HTTPS-Offload rein gemacht wie ich es für alle Server nutze die ich per HTTPS von außen differenziert unter der Subdomain ansprechen möchte.
Das wird nicht funktionieren, da es sich beim Turn Server um eine TLS Verbindung handelt und nicht um eine HTTPS.
-
Das bedeutet 3478 TCP handhabe ich mittels Proxy damit er auf der 192.168.24.6 landet:
Damit ich den Turn-Server 3478 TCP aus dem LAN unter turn.externaldomain.de erreiche:
Einen Alias für die UDP-Ports:
Diese per Port-Forwarding auf den lokalen Server:
Und ausgehend: