stun/coturn-Server (turnserver) auf Ubuntu 22.04

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!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다