Ubuntu TURN Sunucu Kurulumu

WEBRTC IÇIN UBUNTU'YA TURN SERVER NASIL KURULUR


Ubuntu server için yazılmaktadır.

 

80 ve 443 portlarını açın. Firewall Ayarlarından açın eğer açılmazsa terminale yazın:

 

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw reload

 

Coturn ‘ü yükleyin:

sudo apt-get -y update

sudo apt-get install openssl coturn

 

Kurulumdan sonra, coturn yapılandırma dosyasında TURN sunucusunu etkinleştirmeniz gerekecektir. Bunu yapmak için, /etc/default/coturn dosyasındaki TURNSERVER_ENABLED özelliğinin yorumunu kaldırın. Dosyayı terminalden düzenlemek için nano'yu kullanabilirsiniz

nano /etc/default/coturn

TURNSERVER_ENABLED=1

 

TLS Sertifikaları Oluşturmak;

 

Sertifika oluşturmadan önce Nginx'i ve Apache'yi durdurun. aşağıda bunları tekrar açacağız.

 

Nginx'i durdurun:

sudo systemctl stop nginx

 

 

Nginx'in durumunu tekrar kontrol edin:

sudo systemctl status nginx

 

Apache'i durdurun:

sudo systemctl stop apache2

 

Apache'in durumunu kontrol edin:

sudo systemctl status apache2

 


sudo apt-get -y install certbot

sudo certbot certonly --standalone

 

Biraz sonra e-postanızı ve sunucu alan adınızı soracaktır. bunları kendinize uygun şekilde doldurun.

 

Her şey yolundaysa, “/etc/letsencrypt/live/YOUR_DOMAIN” dizininde bulabileceğiniz yeni oluşturulmuş SSL/TLS sertifikalarınız.

cd /etc/letsencrypt/live/YOUR_DOMAIN/

sudo openssl dhparam -out dhparam.pem 2048

 

şimdi “/etc/turnserver.conf” dosyasını düzenleyeceğiz.

/etc/turnserver.conf aşağıdaki gibi olmalı. kırmızı renkli yerleri yukarıdaki SSL sertifikasında belirlediğiniz değerleri yazın.

(ben, alt alan adı kullandim. benim alan adım: coturn.deneme.com)

 

nano /etc/turnserver.conf

 

 

server-name=coturn.deneme.com
realm=coturn.deneme.com
fingerprint
listening-ip=0.0.0.0
# Replace with your TURN server external IP
external-ip=12.345.678.9 #your server ip address
listening-port=3478
tls-listening-port=5349
min-port=32769
max-port=65535
log-file=/var/log/turnserver.log
verbose
no-cli
no-loopback-peers
no-multicast-peers
cert=/etc/letsencrypt/live/coturn.deneme.com/cert.pem
pkey=/etc/letsencrypt/live/coturn.deneme.com/privkey.pem
dh-file=/etc/letsencrypt/live/coturn.deneme.com/dhparam.pem
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"
#Long Term Credential Mechanism authentication
lt-cred-mech
user=KULLANICIADI:SIFRE
proc-user=turnserver
proc-group=turnserver

 

Kaydedin ve aşağıdaki komutu çalıştırın.

sudo turnadmin -a -u KULLANICIADI -r ALAN_ADINIZI_BURAYA_YAZIN -p SIFRE

 

 

Coturn Sunucusunu Durdur/Başlat

 

sudo systemctl status coturn

sudo systemctl start coturn

sudo systemctl stop coturn

sudo systemctl restart coturn

 

Coturn durumunu sorgulayın.

sudo systemctl enable coturn

 

 

 

Nginx ve Apache’yi tekrar açabilirsiniz.

 

sudo systemctl enable nginx

sudo systemctl enable apache2

 

Nginx ve Apache durumunu sorgulamak için;

sudo systemctl status nginx

sudo systemctl status apache2

 

 

 

Test Coturn Sunucusu

 

Coturn sunucu yapılandırmasını test etmek için TURN/STUN sunucularını test etmek için ücretsiz Trickle ICE hizmetini kullanın.

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

Belirtilen TURN/ICE Sunucuları ile bir bağlantı oluşturacak ve ardından tek bir ses akışıyla bir oturum için aday toplamaya başlayacaktır.

STUN veya TURN URI'nizi girin, TURN kullanıcı adı, TURN şifresi, Sunucu Ekle, ardından "Add Server" düğmesine basın.

TURN/STUN sunucunuz doğru yapılandırılmışsa, sonunda şunları görmelisiniz: BITTİ.

 

Örnek çıktıda gösterildiği gibi:


 

EK: Flutter için nasıl kullanılır:

_rtcPeerConnection = await createPeerConnection({
...{
'iceServers': [
{'url': 'stun:stun.l.google.com:19302'},
{
'url': "coturn.deneme.com",
'username': "KULLANICIADI",
'credential': "SIFRE"
},
]
},
...{
'sdpSemantics': "unified-plan",
}
}, {
'mandatory': {},
'optional': [
{'DtlsSrtpKeyAgreement': true},
]
});

 

KAYNAKLAR:

https://meetrix.io/blog/webrtc/coturn/installation.html

https://ourcodeworld.com/articles/read/1175/how-to-create-and-configure-your-own-stun-turn-server-with-coturn-in-ubuntu-18-04

https://arstech.net/how-to-install-turn-server-on-ubuntu-for-webrtc/

https://github.com/flutter-webrtc/flutter-webrtc/issues/758