In dieser Schnellanleitung beschreiben wir die Einrichtung eines stun/coturn-Servers für die Verwendung von BigBlueButton, Jitsi Meet, Nextcloud Talk (Hub) u.v.m.
Melden Sie sich als priviligierter Benutzer an und laden das notwendige Paket herunter:
sudo -s
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/c/coturn/coturn_4.5.2-3.1_amd64.deb
Installieren Sie das Paket und erstellen eine Kopie der initialen Konfigurationsdatei.
apt install coturn*.deb mv /etc/turnserver.conf /etc/turnserver.conf.bak
Erzeugen Sie einen Diffie-Hellmann-Schlüssel um einen sicheren Schlüsselaustausch zu ermöglichen.
mkdir -p /etc/turnserver/
openssl dhparam -dsaparam -out /etc/turnserver/dhp.pem 4096
Erstellen Sie eine neue Konfigurationsdatei:
nano /etc/turnserver.conf
und fügen den gesamten Inhalt hinzu:
tls-listening-port=443
#Externe IP = x.x.x.x « bitte ersetzen
listening-ip=x.x.x.x
relay-ip=x.x.x.x
min-port=32769
max-port=65535
verbose
fingerprint
use-auth-secret
# bspw. zu generieren mit: 'openssl rand -hex 32'
static-auth-secret=IhrGeheimerSchlüssel
realm=coturn.ihredomain.de
cert=/Pfad/Zum/Zertifikat.cer
pkey=/Pfad/Zum/ZertifikatSchlüssel.key
cipher-list="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
dh-file=/etc/turnserver/dhp.pem
syslog
keep-address-family
no-cli
no-tlsv1
no-tlsv1_1
no-loopback-peers
no-multicast-peers
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=::ffff:0:0-::ffff:ffff:ffff
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=64:ff9b:1::-64:ff9b:1:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2001:db8::-2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
Richten Sie die Firewall ein und passen ggf. den SSH-Port (22) an:
apt install -y ufw
ufw allow 443/tcp comment "Turnserver"
ufw allow 22/tcp comment "SSH"
ufw logging medium
ufw default deny incoming
ufw enable
systemctl enable ufw.service
systemctl restart ufw.service
Abschließend richten wir noch die Logrotation ein, dazu erstellen wir diese Datei
nano /etc/logrotate.d/coturn
und fügen den gesamten Inhalt ein.
/var/log/turnserver/*.log
{
rotate 7
daily
missingok
notifempty
compress
postrotate
/bin/systemctl kill -s HUP coturn.service
endscript
}
Legen Sie nun den Ordner für die Logdateien an
mkdir -p /var/log/turnserver
und bearbeiten den Dienst, um die Ports beim Start binden zu können:
nano /lib/systemd/system/coturn.service
[Unit]
Description=coTURN STUN/TURN Server
Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)
After=network.target[Service]
User=root
Group=root
Type=notify
ExecStart=/usr/bin/turnserver -c /etc/turnserver.conf --pidfile=
Restart=on-failure
InaccessibleDirectories=/home
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
Laden Sie diese Einstellungen und starten den Dienst neu:
systemctl daemon-reload && systemctl restart coturn.service
Überprüfen Sie, ob der Port 443 durch den turnserver gebunden wurde:
netstat -antp | grep 443
Zudem können Sie von einem anderen Linux-Client die Funktion per Konsole prüfen.
UDP-Verbindungstest:
turnutils_uclient -p 443 -W IhrGeheimerSchlüssel -v -y coturn.ihredomain.de
TCP-Verbindungstest:
turnutils_uclient -t -p 443 -W IhrGeheimerSchlüssel -v -y coturn.ihredomain.de
Die Installation des stun/coturn-Servers unter Ubuntu 22.04 wurde erfolgreich abgeschlossen. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!