Skip to content

Nextcloud Talk

Nextcloud
  • In Zeiten von Corona gibt es ja zur Zeit ein Thema was wichtig ist - HomeOffice oder auch die Kommunikation mit Freunden, Verwandten und Kollegen.

    Jeder benutzt was anderes, viele kommerzielle Anbieter denen ich nicht traue usw. Was machen? Da fiel mir ein, das Nextcloud ja Nextcloud Talk enthält.

    bf501e55-c6d6-4e22-9cb8-e647bd2d2818-image.png

    Eigentlich gibt es da keine so großen Hürden. Telefonate funktionierten sofort aber Videotelefonate!?!? Ok, ab jetzt wird es schwieriger 🙂

    Eine sehr schöne Anleitung habe ich hier gefunden. Doch wie so oft, manchmal helfen solche Anleitungen nicht wirklich weiter. Ich hatte alles so eingestellt wie darin beschrieben, aber beim Test im Backend von Nextcloud tauchte immer ein Ausrufezeichen auf.

    nc.png

    Wenn der TURN-Server richtig eingerichtet ist, erscheint beim Testen ein Haken an der Position vor dem Mülleimer. Lange Zeit hatte ich dort immer ein Ausrufezeichen. Bei mir hatte das den Grund, das die TLS Verbindung nicht richtig funktionierte, weil das Zusammenspiel zwichen coturn und Letsencrypt bugbehaftet ist. Dazu morgen etwas ausführlichere Erläuterungen, für heute genug HomeOffice 🙂

  • coturn

    Was das?

    The TURN Server is a VoIP media traffic NAT traversal server and gateway. It can be used as a general-purpose network traffic TURN server and gateway, too.
    Quelle: https://github.com/coturn/coturn

    Ich bin kein Netzwerktechniker und muss mich da leider an die Erklärung vom Nextcloud Backend orientieren.

    Ein TURN-Server dient als Proxy für die Verbindungen von Teilnehmern hinter einer Firewall.

    Damit kann ich mir das dann ein wenig besser erklären. Aber, bevor ich hier Stuss schreibe, lasse ich es lieber. Machen wir weiter mit praktischen Dingen. Was ich ja vorher schon raus gefunden hatte, ohne diesen Server hat man kein Video. Ok, dann wollen wir mal einen aufsetzen. Da ich meine vorhandene Installation nicht gefährden wollte, habe ich schnell eine neue VM aufgesetzt. Dank Hetzner Cloud ein Kinderspiel. Ja, das war ein Werbeblock 🙂

    Also hatte ich jetzt ein jungfräuliches Debian 10 Buster. Dann mal coturn installieren.

    apt install coturn
    

    Nachdem ich ihn nach der Anleitung s.o. den coturn konfiguriert hatte, bekam ich nach dem Start folgendes.

    root@debian-2gb-nbg1-1-webserver:~# systemctl status coturn.service
    ● coturn.service - coTURN STUN/TURN Server
       Loaded: loaded (/lib/systemd/system/coturn.service; enabled; vendor preset: enabled)
       Active: failed (Result: exit-code) since Thu 2020-03-26 10:51:25 CET; 9s ago
         Docs: man:coturn(1)
               man:turnadmin(1)
               man:turnserver(1)
      Process: 671 ExecStart=/usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid (code=exited, s
    
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Control process exited, code=exited, status=255/EXCEPTION
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Failed with result 'exit-code'.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: Failed to start coTURN STUN/TURN Server.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Service RestartSec=100ms expired, scheduling restart.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Scheduled restart job, restart counter is at 5.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: Stopped coTURN STUN/TURN Server.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Start request repeated too quickly.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: coturn.service: Failed with result 'exit-code'.
    Mar 26 10:51:25 debian-2gb-nbg1-1-webserver systemd[1]: Failed to start coTURN STUN/TURN Server.
    

    Ich habe lange dran getüftelt, bis ich verstanden hatte wo das Problem lag.

    Ausschnitt /etc/turnserver.conf

    # TURN listener port for UDP and TCP (Default: 3478).
    # Note: actually, TLS & DTLS sessions can connect to the 
    # "plain" TCP & UDP port(s), too - if allowed by configuration.
    #
    listening-port=3478
    
    # TURN listener port for TLS (Default: 5349).
    # Note: actually, "plain" TCP & UDP sessions can connect to the TLS & DTLS
    # port(s), too - if allowed by configuration. The TURN server 
    # "automatically" recognizes the type of traffic. Actually, two listening
    # endpoints (the "plain" one and the "tls" one) are equivalent in terms of
    # functionality; but we keep both endpoints to satisfy the RFC 5766 specs.
    # For secure TCP connections, we currently support SSL version 3 and 
    # TLS version 1.0, 1.1 and 1.2.
    # For secure UDP connections, we support DTLS version 1.
    #
    tls-listening-port=5349
    

    Der listening-port 3478 entspricht einer HTTP Verbindung, der tls-listening-port 5349 einer HTTPS Verbindung. So als Erklärung 😉 Nachdem ich dann raus gefunden hatte, das der Port 3478 funktionierte, ich hatte mich am Anfang nur auf TLS konzentriert, wusste ich das an der TLS Verbindung / Zertifikaten was nicht stimmte.

    Also, Tipp Nr.1

    Als erstes mit listening-port=3478 testen!

    Danach wenden wir uns der TLS Verbindung zu. Ich gehe davon aus, das die meisten mittlerweile wissen, wie man Letsencrypt Zertifikate auf einem Rootserver installiert? Wenn nicht, dann gibt es hier Lesestoff.

    Config coturn

    listening-port=3478
    tls-listening-port=5349
    fingerprint
    use-auth-secret
    static-auth-secret=PASSWORD
    server-name=xxxx.frank-mankel.org
    realm=xxxx.frank-mankel.org
    total-quota=100
    stale-nonce=600
    cert=/etc/letsencrypt/live/xxxx.frank-mankel.org/cert.pem
    pkey=/etc/letsencrypt/live/xxxx.frank-mankel.org/privkey.pem
    cipher-list=“ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384″
    dh-file=/etc/ssl/dhparam.pem
    no-stdout-log
    syslog
    simple-log
    no-multicast-peers
    cli-password=PASSWORD
    no-tlsv1
    no-tlsv1_1
    

    Die TLS Verbindung wollte aber nie starten. Das kam im /var/log/user.log

    Mar 26 10:29:21 debian-2gb-nbg1-1-webserver turnserver: 0: WARNING: cannot find certificate file: turn_server_cert.pem (1)
    Mar 26 10:29:21 debian-2gb-nbg1-1-webserver turnserver: 0: WARNING: cannot start TLS and DTLS listeners because certificate file is not set properly
    Mar 26 10:29:21 debian-2gb-nbg1-1-webserver turnserver: 0: WARNING: cannot find private key file: turn_server_pkey.pem (1)
    Mar 26 10:29:21 debian-2gb-nbg1-1-webserver turnserver: 0: WARNING: cannot start TLS and DTLS listeners because private key file is not set properly
    

    Dazu zwei Links

    Hier sieht man das coturn ein Problem damit hat die symbolischen Links zu verarbeiten. Ich hatte dann die richtigen Files reinkopiert und die symbolischen Links gelöscht. Ging dann aber immer noch nicht. Erst als auch der User turnserver die Rechte für den Ordner hatte, ging es.

    Das hat jetzt eine Menge von Nachteile. Die Zertifikate erneuern sich ja alle paar Monate von alleine, so das es jetzt knallt. Dann geht das wieder nicht.

    Mein Denkansatz ist jetzt, Letsencrypt wieder so installieren, das alles korrekt ist, dann klappt das auch mit der automatischen Aktualisierung. Dazu wird sowieso ein Cronjob benutzt. Nach Ausführung des Cronjobs werden die Zertifikate an einen anderen Ort kopiert, bekommen die richtigen Namen und die richtigen Rechte so das der Turnserver damit was anfangen kann.

    Wäre schön, wenn das jemand mit dem nötigen KnowHow fixen könnte!?

    Ob das so funktioniert, wie von mir ausgedacht, muss ich die Tage noch testen. Dank HomeOffice ist ja dafür nächste Woche ausreichend Zeit für vorhanden 😉

    Danach trägt man den Turnserver in Nextcloud ein und die Verbindung funktioniert einwandfrei. Was mir beim Testen aufgefallen ist, das die Signalisierung eines Anrufes auf einem Android Handy nicht durchkam. Aber das kennt man ja auch von vielen anderen Dingen. Kurz vorher dem Gesprächspartner eine Nachricht zukommen lassen, so das man die App schon mal startet, sollte da Abhilfe schaffen.

    Bitte denkt an ausreichende Absicherung des Servers!

  • Noch eine kleine Ergänzung, für Eure Firewall muss auf dem TURN-Server lediglich der Port 5349 offen sein. Wie ihr ja wisst, kann man das schön aus dem Nextcloud Backend testen!

  • Noch was, das Letsencrypt Problem konnte ich etwas vereinfachen. Ganz normale Installation von Letsencrypt.
    Danach einfach folgendes.

    chown -R turnserver:root /etc/letsencrypt/
    

    Dann sieht das so aus.

    root@debian-2gb-nbg1-1-webserver:/etc/letsencrypt# ls -lha live/xxxx.frank-mankel.org/
    total 12K
    drwxr-xr-x 2 turnserver root 4.0K Mar 29 14:02 .
    drwx------ 3 turnserver root 4.0K Mar 29 14:02 ..
    lrwxrwxrwx 1 turnserver root   45 Mar 29 14:02 cert.pem -> ../../archive/xxxx.frank-mankel.org/cert1.pem
    lrwxrwxrwx 1 turnserver root   46 Mar 29 14:02 chain.pem -> ../../archive/xxxx.frank-mankel.org/chain1.pem
    lrwxrwxrwx 1 turnserver root   50 Mar 29 14:02 fullchain.pem -> ../../archive/xxxx.frank-mankel.org/fullchain1.pem
    lrwxrwxrwx 1 turnserver root   48 Mar 29 14:02 privkey.pem -> ../../archive/xxxx.frank-mankel.org/privkey1.pem
    -rw-r--r-- 1 turnserver root  692 Mar 29 14:02 README
    

    Im coturn Logfile steht das drin.

    Mar 29 14:09:18 debian-2gb-nbg1-1-webserver turnserver: 0: SSL23: Certificate file found: /etc/letsencrypt/live/xxxx.frank-mankel.org/cert.pem
    Mar 29 14:09:18 debian-2gb-nbg1-1-webserver turnserver: 0: SSL23: Private key file found: /etc/letsencrypt/live/xxxx.frank-mankel.org/privkey.pem
    Mar 29 14:09:18 debian-2gb-nbg1-1-webserver turnserver: 0: TLS1.2: Certificate file found: /etc/letsencrypt/live/xxxx.frank-mankel.org/cert.pem
    Mar 29 14:09:18 debian-2gb-nbg1-1-webserver turnserver: 0: TLS1.2: Private key file found: /etc/letsencrypt/live/xxxx.frank-mankel.org/privkey.pem
    

    So sollte das jetzt schon was einfacher sein. Schnell noch einen Crontab angelegt.

    # m h  dom mon dow   command
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    0 4 1 * * /usr/bin/certbot renew --pre-hook "service coturn stop" --post-hook "service coturn start"
    

    Das bekannte Vorgehen. Jeden 1. im Monat coturn stoppen, Zertifikate erneuern, coturn wieder starten. Fertig!

    Jetzt sollte die ganze Sache aber rund sein. Hoffe ich .)

  • All I needed to do was setting the permissions to 744 for the archive directory and the symlinks resolved correctly after a reboot of coturn

    My turnserver installation on Debian runs as the user turnserver and not as root, nor is the user turnserver in any group owning the letsencrypt directory.
    If your turnserver does run as root, it should be fine just adding execute permissions.

    I hope this helps some of you.
    Quelle: https://help.nextcloud.com/t/lets-encrypt-symlink-breaks-coturn-configuration/70166

    Was zum Testen die Tage....

  • Meine AMD Ryzen 5 8600G Story

    Linux
    2
    +1
    0 Stimmen
    2 Beiträge
    772 Aufrufe
    FrankMF
    Ich habe nun ein 64GB G.Skill Ripjaws S5 schwaru DDR5-5200DIMM CL36 Dual Kit verbaut. Beim ersten Einschalten im BIOS die Einstellungen kontrolliert. Speicher mit korrekter Geschwindigkeit (Auto) erkannt. Neu gestartet und erster Test Standby. Scheint zu Laufen. Dann werde ich das mal die nächsten Tage beobachten. Kann mir jemand erklären, warum AM5 Boards so furchtbar langsam sind? Also z.B. das Erwachen aus dem Standby, BIOS aufrufen usw. Da sind AM4 Boards ja geradezu Formel1 Boliden.
  • Crowdsec - Ein fail2ban Ersatz?

    Linux
    2
    +0
    0 Stimmen
    2 Beiträge
    820 Aufrufe
    FrankMF
    Ich kann jetzt hier von meiner ersten Erfahrung berichten und wie CrowdSec mich gebannt hat Was war passiert? Ich war gestern sehr intensiv mit der Konfiguration von Nextcloud <-> Collabora Online beschäftigt. Nachdem ich irgendwie nicht weiterkam habe ich mich der Erstellung eines Dokumentes gewidmet. Nach einiger Zeit war die Nextcloud nicht mehr erreichbar. Ok, hatte ich bei der Konfiguration auch schon mal, den Server einmal neugestartet und fertig. Doch jetzt kam es, Server neugestartet - hilft nicht. Gut, schauen wir mal nach, Der SSH Login ging auch nicht Jetzt war guter Rat gefragt. Zu diesem Zeitpunkt ging ich noch davon aus, das auf diesem Server kein CrowdSec installiert war, sondern fail2ban. Und fail2ban hatte eine sehr kurze Bantime vom 10M. Also blieb wohl nur noch das Rescue System von Hetzner. [image: 1694411392066-488866bc-3dcf-4abc-9e98-6107d65aa4c7-grafik.png] Da hatte ich ja so gut wie gar keine Erfahrung mit. Also mal kurz den Nico angetriggert und es kam folgender Link. https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/ Das Laufwerk war schnell bestimmt und schnell nach /tmp gemountet. Danach musste man sich noch mit chroot in diese Umgebung anmelden. chroot-prepare /mnt chroot /mnt Nachdem das klappte, habe ich eben fail2ban disabled. sysmctl disable fail2ban Danach das Rescue beendet. Der Server startete wieder und ich kam wieder per SSH drauf. Puuh. Bei meiner ersten Kontrolle fiel mir was auf root@:~# pstree systemd─┬─2*[agetty] ├─atd ├─cron ├─crowdsec─┬─journalctl │ └─8*[{crowdsec}] ├─crowdsec-firewa───9*[{crowdsec-firewa}] Wie? Da läuft CrowdSec? Da ich dabei bin die Server auf CrowdSec umzustellen, war das wohl hier schon gemacht, aber leider nicht vernünftig. fail2ban hätte mindestens disabled werden müssen und in meiner Dokumentation war das auch nicht enthalten. 6 setzen! CrowdSec besteht ja aus zwei Diensten, CrowdSec und dem Firewall-Bouncer. Der CrowdSec Dienst lief aber nicht, der war irgendwie failed. Ok, starten wir ihn und schauen was passiert. Nachdem er gestarte war mal die Banliste angeschaut. cscli decisions list ergab diesen Eintrag. 2551501 │ crowdsec │ Ip:5.146.xxx.xxx │ crowdsecurity/http-crawl-non_statics │ ban │ │ │ 53 │ 1h5m55.391864693s │ 1671 Meine IP war gebannt. Dann wissen wir ja , woher die Probleme kamen. cscli decisions delete --id 2551501 Nach Eingabe war der Ban entfernt. Na gut, aber da ich aktuell immer noch an der richtigen Konfiguration von NC <-> CODE bastel, könnte das ja wieder passieren. Was machen? Kurz gegoogelt. Es gibt eine Whitelist. Aha! /etc/crowdsec/parsers/s02-enrich/whitelists.yaml name: crowdsecurity/whitelists description: "Whitelist events from private ipv4 addresses" whitelist: reason: "private ipv4/ipv6 ip/ranges" ip: - "127.0.0.1" - "::1" - "5.146.XXX.XXX" cidr: - "192.168.0.0/16" - "10.0.0.0/8" - "172.16.0.0/12" # expression: # - "'foo.com' in evt.Meta.source_ip.reverse" Danach den Dienst neustarten. Jetzt hoffen wir mal, das es hilft. Zum Schluss noch was, was mir aufgefallen war und was mich auch sehr verwirrt hatte. CrowdSec hatte wegen einem crowdsecurity/http-crawl-non_statics gebannt. Dadurch konnte ich meine subdomain.<DOMAIN> nicht erreichen. Ok, logisch, wenn der Ban von da ausgeht. Ich konnte aber gleichzeitig eine andere subdomain mit derselben <DOMAIN> auch nicht erreichen. Komplett verwirrte es mich dann, als ich eine andere <DOMAIN> auf dem selben Server erreichen konnte. Und zum Schluss ging auch der SSH nicht. Also, wieder viel gelernt..
  • VSCodium - Nach Umzug die Entwicklungsumgebung wieder aktivieren

    Linux
    1
    +1
    0 Stimmen
    1 Beiträge
    176 Aufrufe
    Niemand hat geantwortet
  • FreeOTP+

    Linux
    1
    +0
    0 Stimmen
    1 Beiträge
    430 Aufrufe
    Niemand hat geantwortet
  • OpenWrt - Sysupgrade

    OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    248 Aufrufe
    Niemand hat geantwortet
  • Linux Mint 20 “Ulyana” Cinnamon released!

    Linux
    4
    0 Stimmen
    4 Beiträge
    354 Aufrufe
    FrankMF
    Gut, die AMD Grafikkarte hat mich nicht glücklich gemacht Somit ist sie jetzt Geschichte. [image: 1595690007860-3b0958a7-7c12-46cc-b4de-0aeca38ee77b-grafik.png] Nach der Installation war dann die Hardwarebeschleunigung aus. Linux Mint weist einen aber darauf hin, was man nun machen kann. [image: 1595690201876-8105abd7-23a3-41d5-a961-aba2b859dcb9-grafik.png] Ich hatte dann den empfohlenen Treiber installiert. Nach einem Neustart war dann auch die Hardwarebeschleunigung aktiv. Zwei Dinge, die mich an der AMD-Karte im Zusammenspiel mit Linux Mint 20 Cinnamon genervt haben. Suspend ging nicht Ausloggen aus der Session Da ist eine Sache die ich sehr gerne nutze, Suspend, und dann geht das nicht Meine Recherchen im Netz brachten mich zu keinem Ergebnis, deswegen die NVidia Karte. Es kann sein, das ich zu dumm war die Lösung zu finden..... Aktuelle Bildschirmeinstellung. [image: 1595690523392-989d2eb4-f8c9-4c91-b4eb-e862efabac9b-grafik.png] Braucht jemand eine AMD Radeon RX 5500 XT ???
  • ROCKPro64 - Projekt Wireguard Server

    Verschoben ROCKPro64
    2
    +1
    0 Stimmen
    2 Beiträge
    514 Aufrufe
    FrankMF
    Hat ein wenig Nerven gekostet und der Artikel ist auch was länger geworden Viel Spaß beim Lesen und testen!
  • Nextcloud - Update auf 17.0.3

    Nextcloud
    1
    0 Stimmen
    1 Beiträge
    206 Aufrufe
    Niemand hat geantwortet