Hello community,
here is the log from the commit of package coturn for openSUSE:Factory checked in at 2020-06-30 21:58:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/coturn (Old)
and /work/SRC/openSUSE:Factory/.coturn.new.3060 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "coturn"
Tue Jun 30 21:58:31 2020 rev:4 rq:817876 version:4.5.1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/coturn/coturn.changes 2020-05-04 18:44:18.933520997 +0200
+++ /work/SRC/openSUSE:Factory/.coturn.new.3060/coturn.changes 2020-06-30 21:59:17.427283519 +0200
@@ -1,0 +2,12 @@
+Tue Jun 30 07:54:01 UTC 2020 - Johannes Weberhofer
+
+- Version 4.5.1.3:
+ * Remove reference to SSLv3: gh#coturn/coturn#566
+ * Ignore MD5 for BoringSSL: gh#coturn/coturn#579
+ * STUN response buffer not initialized properly; he issue found and
+ reported gh#coturn/coturn#583 by Felix Dörre all credits belongs to
+ him. CVE-2020-4067, boo#1173510
+
+- Let coturn allow binding to ports below 1024 per default
+
+-------------------------------------------------------------------
Old:
----
coturn-4.5.1.2.tar.gz
New:
----
coturn-4.5.1.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ coturn.spec ++++++
--- /var/tmp/diff_new_pack.o3BNUa/_old 2020-06-30 21:59:18.899288075 +0200
+++ /var/tmp/diff_new_pack.o3BNUa/_new 2020-06-30 21:59:18.903288088 +0200
@@ -24,7 +24,7 @@
%endif
%bcond_without apparmor
Name: coturn
-Version: 4.5.1.2
+Version: 4.5.1.3
Release: 0
Summary: TURN and STUN server for VoIP
License: BSD-3-Clause
++++++ README.SUSE ++++++
--- /var/tmp/diff_new_pack.o3BNUa/_old 2020-06-30 21:59:18.935288187 +0200
+++ /var/tmp/diff_new_pack.o3BNUa/_new 2020-06-30 21:59:18.935288187 +0200
@@ -10,8 +10,3 @@
* /etc/syconfig/coturn has the option '--no-software-attribute' enabled to hide
the software version for production issue.
-* The trunserveer can only be bound to a port belo 1024 if you add the
- AmbientCapabilities=CAP_NET_BIND_SERVICE section to the service file.
-
-
-
++++++ coturn-4.5.1.2.tar.gz -> coturn-4.5.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/.gitignore new/coturn-4.5.1.3/.gitignore
--- old/coturn-4.5.1.2/.gitignore 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/.gitignore 2020-06-24 17:13:42.000000000 +0200
@@ -5,3 +5,4 @@
lib
sqlite
examples/ca/CA.pl
+.vscode
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/ChangeLog new/coturn-4.5.1.3/ChangeLog
--- old/coturn-4.5.1.2/ChangeLog 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/ChangeLog 2020-06-24 17:13:42.000000000 +0200
@@ -1,3 +1,21 @@
+24/06/2020 Oleg Moskalenko Mihály Mészáros
+Version 4.5.1.3 'dan Eider':
+ - merge PR #575: (by osterik)
+ * fix rpm packaging
+ - merge PR #576: (by osterik)
+ * tell tar to not include the metadata into release
+ - merge PR #574: (by DevRockstarZ)
+ * change Docker turnserver.conf to latest turnserver.conf
+ - merge PR #566: (by bpcurse)
+ * Remove reference to SSLv3
+ - merge PR #579: (by islamoglus)
+ *Ignore MD5 for BoringSSL
+ - merge PR #577: (by osterik)
+ *build RPM from local folder instead of git repo
+ - Fix for CVE-2020-4067
+ * STUN response buffer not initialized properly
+ * The issue found and reported #583 by Felix Dörre all credits belongs to him.
+
30/04/2020 Oleg Moskalenko Mihály Mészáros
Version 4.5.1.2 'dan Eider':
- merge regression fix: (by Mathieu Brunot)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/docker/coturn/turnserver.conf new/coturn-4.5.1.3/docker/coturn/turnserver.conf
--- old/coturn-4.5.1.2/docker/coturn/turnserver.conf 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/docker/coturn/turnserver.conf 2020-06-24 17:13:42.000000000 +0200
@@ -1,52 +1,60 @@
# Coturn TURN SERVER configuration file
#
-# Boolean values note: where boolean value is supposed to be used,
-# you can use '0', 'off', 'no', 'false', 'f' as 'false,
-# and you can use '1', 'on', 'yes', 'true', 't' as 'true'
-# If the value is missed, then it means 'true'.
+# Boolean values note: where a boolean value is supposed to be used,
+# you can use '0', 'off', 'no', 'false', or 'f' as 'false,
+# and you can use '1', 'on', 'yes', 'true', or 't' as 'true'
+# If the value is missing, then it means 'true' by default.
#
# Listener interface device (optional, Linux only).
-# NOT RECOMMENDED.
+# NOT RECOMMENDED.
#
#listening-device=eth0
# TURN listener port for UDP and TCP (Default: 3478).
-# Note: actually, TLS & DTLS sessions can connect to the
+# 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
+# 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
+# functionality; but Coturn keeps both endpoints to satisfy the RFC 5766 specs.
+# For secure TCP connections, Coturn currently supports SSL version 3 and
# TLS version 1.0, 1.1 and 1.2.
-# For secure UDP connections, we support DTLS version 1.
+# For secure UDP connections, Coturn supports DTLS version 1.
#
tls-listening-port=5349
# Alternative listening port for UDP and TCP listeners;
-# default (or zero) value means "listening port plus one".
+# default (or zero) value means "listening port plus one".
# This is needed for RFC 5780 support
-# (STUN extension specs, NAT behavior discovery). The TURN Server
-# supports RFC 5780 only if it is started with more than one
+# (STUN extension specs, NAT behavior discovery). The TURN Server
+# supports RFC 5780 only if it is started with more than one
# listening IP address of the same family (IPv4 or IPv6).
# RFC 5780 is supported only by UDP protocol, other protocols
# are listening to that endpoint only for "symmetry".
#
#alt-listening-port=0
-
+
# Alternative listening port for TLS and DTLS protocols.
# Default (or zero) value means "TLS listening port plus one".
#
#alt-tls-listening-port=0
+# Some network setups will require using a TCP reverse proxy in front
+# of the STUN server. If the proxy port option is set a single listener
+# is started on the given port that accepts connections using the
+# haproxy proxy protocol v2.
+# (https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)
+#
+#tcp-proxy-port=5555
+
# Listener IP address of relay server. Multiple listeners can be specified.
-# If no IP(s) specified in the config file or in the command line options,
+# If no IP(s) specified in the config file or in the command line options,
# then all IPv4 and IPv6 system IPs will be used for listening.
#
#listening-ip=172.17.19.101
@@ -61,7 +69,7 @@
# they do not support STUN RFC 5780 functionality (CHANGE REQUEST).
#
# 2) Auxiliary servers also are never returning ALTERNATIVE-SERVER reply.
-#
+#
# Valid formats are 1.2.3.4:5555 for IPv4 and [1:2::3:4]:5555 for IPv6.
#
# There may be multiple aux-server options, each will be used for listening
@@ -73,7 +81,7 @@
# (recommended for older Linuxes only)
# Automatically balance UDP traffic over auxiliary servers (if configured).
# The load balancing is using the ALTERNATE-SERVER mechanism.
-# The TURN client must support 300 ALTERNATE-SERVER response for this
+# The TURN client must support 300 ALTERNATE-SERVER response for this
# functionality.
#
#udp-self-balance
@@ -83,13 +91,13 @@
#
#relay-device=eth1
-# Relay address (the local IP address that will be used to relay the
+# Relay address (the local IP address that will be used to relay the
# packets to the peer).
# Multiple relay addresses may be used.
# The same IP(s) can be used as both listening IP(s) and relay IP(s).
#
# If no relay IP(s) specified, then the turnserver will apply the default
-# policy: it will decide itself which relay addresses to be used, and it
+# policy: it will decide itself which relay addresses to be used, and it
# will always be using the client socket IP address as the relay IP address
# of the TURN session (if the requested relay address family is the same
# as the family of the client socket).
@@ -112,35 +120,33 @@
# that option must be used several times, each entry must
# have form "-X ", to map all involved addresses.
# RFC5780 NAT discovery STUN functionality will work correctly,
-# if the addresses are mapped properly, even when the TURN server itself
+# if the addresses are mapped properly, even when the TURN server itself
# is behind A NAT.
#
# By default, this value is empty, and no address mapping is used.
#
-#external-ip=60.70.80.91
+external-ip=193.224.22.37
#
#OR:
#
#external-ip=60.70.80.91/172.17.19.101
#external-ip=60.70.80.92/172.17.19.102
-#external-ip=60.70.80.92/172.17.19.102
-external-ip=193.224.22.37
# Number of the relay threads to handle the established connections
# (in addition to authentication thread and the listener thread).
-# If explicitly set to 0 then application runs relay process in a
-# single thread, in the same thread with the listener process
+# If explicitly set to 0 then application runs relay process in a
+# single thread, in the same thread with the listener process
# (the authentication thread will still be a separate thread).
#
-# If this parameter is not set, then the default OS-dependent
+# If this parameter is not set, then the default OS-dependent
# thread pattern algorithm will be employed. Usually the default
-# algorithm is the most optimal, so you have to change this option
-# only if you want to make some fine tweaks.
+# algorithm is optimal, so you have to change this option
+# if you want to make some fine tweaks.
#
# In the older systems (Linux kernel before 3.9),
# the number of UDP threads is always one thread per network listening
-# endpoint - including the auxiliary endpoints - unless 0 (zero) or
+# endpoint - including the auxiliary endpoints - unless 0 (zero) or
# 1 (one) value is set.
#
#relay-threads=0
@@ -150,15 +156,15 @@
#
min-port=49152
max-port=65535
-
+
# Uncomment to run TURN server in 'normal' 'moderate' verbose mode.
# By default the verbose mode is off.
verbose
-
+
# Uncomment to run TURN server in 'extra' verbose mode.
# This mode is very annoying and produces lots of output.
-# Not recommended under any normal circumstances.
-#
+# Not recommended under normal circumstances.
+#
#Verbose
# Uncomment to use fingerprints in the TURN messages.
@@ -171,11 +177,11 @@
#
lt-cred-mech
-# This option is opposite to lt-cred-mech.
+# This option is the opposite of lt-cred-mech.
# (TURN Server with no-auth option allows anonymous access).
# If neither option is defined, and no users are defined,
-# then no-auth is default. If at least one user is defined,
-# in this file or in command line or in usersdb file, then
+# then no-auth is default. If at least one user is defined,
+# in this file, in command line or in usersdb file, then
# lt-cred-mech is default.
#
#no-auth
@@ -185,44 +191,43 @@
# Flag that sets a special authorization option that is based upon authentication secret.
#
# This feature's purpose is to support "TURN Server REST API", see
-# "TURN REST API" link in the project's page
+# "TURN REST API" link in the project's page
# https://github.com/coturn/coturn/
#
# This option is used with timestamp:
-#
+#
# usercombo -> "timestamp:userid"
# turn user -> usercombo
# turn password -> base64(hmac(secret key, usercombo))
#
# This allows TURN credentials to be accounted for a specific user id.
-# If you don't have a suitable id, the timestamp alone can be used.
-# This option is just turning on secret-based authentication.
-# The actual value of the secret is defined either by option static-auth-secret,
+# If you don't have a suitable id, then the timestamp alone can be used.
+# This option is enabled by turning on secret-based authentication.
+# The actual value of the secret is defined either by the option static-auth-secret,
# or can be found in the turn_secret table in the database (see below).
-#
+#
# Read more about it:
# - https://tools.ietf.org/html/draft-uberti-behave-turn-rest-00
# - https://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf
#
-# Be aware that use-auth-secret overrides some part of lt-cred-mech.
-# Notice that this feature depends internally on lt-cred-mech, so if you set
-# use-auth-secret then it enables internally automatically lt-cred-mech option
-# like if you enable both.
-#
-# You can use only one of the to auth mechanisms in the same time because,
-# both mechanism use the username and password validation in different way.
-#
-# This way be aware that you can't use both auth mechnaism in the same time!
-# Use in config either the lt-cred-mech or the use-auth-secret
+# Be aware that use-auth-secret overrides some parts of lt-cred-mech.
+# The use-auth-secret feature depends internally on lt-cred-mech, so if you set
+# this option then it automatically enables lt-cred-mech internally
+# as if you had enabled both.
+#
+# Note that you can use only one auth mechanism at the same time! This is because,
+# both mechanisms conduct username and password validation in different ways.
+#
+# Use either lt-cred-mech or use-auth-secret in the conf
# to avoid any confusion.
#
#use-auth-secret
-# 'Static' authentication secret value (a string) for TURN REST API only.
+# 'Static' authentication secret value (a string) for TURN REST API only.
# If not set, then the turn server
-# will try to use the 'dynamic' value in turn_secret table
-# in user database (if present). The database-stored value can be changed on-the-fly
-# by a separate program, so this is why that other mode is 'dynamic'.
+# will try to use the 'dynamic' value in the turn_secret table
+# in the user database (if present). The database-stored value can be changed on-the-fly
+# by a separate program, so this is why that mode is considered 'dynamic'.
#
#static-auth-secret=north
@@ -236,10 +241,10 @@
#
#oauth
-# 'Static' user accounts for long term credentials mechanism, only.
+# 'Static' user accounts for the long term credentials mechanism, only.
# This option cannot be used with TURN REST API.
-# 'Static' user accounts are NOT dynamically checked by the turnserver process,
-# so that they can NOT be changed while the turnserver is running.
+# 'Static' user accounts are NOT dynamically checked by the turnserver process,
+# so they can NOT be changed while the turnserver is running.
#
#user=username1:key1
#user=username2:key2
@@ -257,7 +262,7 @@
# password. If it has 0x then it is a key, otherwise it is a password).
#
# The corresponding user account entry in the config file will be:
-#
+#
#user=ninefingers:0xbc807ee29df3c9ffa736523fb2c4e8ee
# Or, equivalently, with open clear password (less secure):
#user=ninefingers:youhavetoberealistic
@@ -265,95 +270,83 @@
# SQLite database file name.
#
-# Default file name is /var/db/turndb or /usr/local/var/db/turndb or
+# The default file name is /var/db/turndb or /usr/local/var/db/turndb or
# /var/lib/turn/turndb.
-#
+#
#userdb=/var/db/turndb
-# PostgreSQL database connection string in the case that we are using PostgreSQL
+# PostgreSQL database connection string in the case that you are using PostgreSQL
# as the user database.
-# This database can be used for long-term credential mechanism
-# and it can store the secret value for secret-based timed authentication in TURN REST API.
+# This database can be used for the long-term credential mechanism
+# and it can store the secret value for secret-based timed authentication in TURN REST API.
# See http://www.postgresql.org/docs/8.4/static/libpq-connect.html for 8.x PostgreSQL
-# versions connection string format, see
+# versions connection string format, see
# http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-CONNSTRIN...
# for 9.x and newer connection string formats.
#
#psql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> connect_timeout=30"
-#psql-userdb="host=postgresql dbname=coturn user=coturn password=CHANGE_ME connect_timeout=30"
-
-# MySQL database connection string in the case that we are using MySQL
+# MySQL database connection string in the case that you are using MySQL
# as the user database.
-# This database can be used for long-term credential mechanism
+# This database can be used for the long-term credential mechanism
# and it can store the secret value for secret-based timed authentication in TURN REST API.
#
-# Optional connection string parameters for the secure communications (SSL):
-# ca, capath, cert, key, cipher
-# (see http://dev.mysql.com/doc/refman/5.1/en/ssl-options.html for the
+# Optional connection string parameters for the secure communications (SSL):
+# ca, capath, cert, key, cipher
+# (see http://dev.mysql.com/doc/refman/5.1/en/ssl-options.html for the
# command options description).
#
-# Use string format as below (space separated parameters, all optional):
+# Use the string format below (space separated parameters, all optional):
#
-#mysql-userdb="host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> port=<port> connect_timeout=<seconds> read_timeout=<seconds>"
-
mysql-userdb="host=mysql dbname=coturn user=coturn password=CHANGE_ME port=3306 connect_timeout=10 read_timeout=10"
-# If you want to use in the MySQL connection string the password in encrypted format,
-# then set in this option the MySQL password encryption secret key file.
+# If you want to use an encrypted password in the MySQL connection string,
+# then set the MySQL password encryption secret key file with this option.
#
-# Warning: If this option is set, then mysql password must be set in "mysql-userdb" in encrypted format!
-# If you want to use cleartext password then do not set this option!
+# Warning: If this option is set, then the mysql password must be set in "mysql-userdb" in an encrypted format!
+# If you want to use a cleartext password then do not set this option!
#
-# This is the file path which contain secret key of aes encryption while using password encryption.
+# This is the file path for the aes encrypted secret key used for password encryption.
#
#secret-key-file=/path/
-# MongoDB database connection string in the case that we are using MongoDB
+# MongoDB database connection string in the case that you are using MongoDB
# as the user database.
# This database can be used for long-term credential mechanism
-# and it can store the secret value for secret-based timed authentication in TURN REST API.
-# Use string format is described at http://hergert.me/docs/mongo-c-driver/mongoc_uri.html
+# and it can store the secret value for secret-based timed authentication in TURN REST API.
+# Use the string format described at http://hergert.me/docs/mongo-c-driver/mongoc_uri.html
#
#mongo-userdb="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"
-#mongo-userdb="mongodb://coturn:CHANGE_ME@mongodb/coturn"
-#mongo-userdb="mongodb://mongodb/coturn"
-
-# Redis database connection string in the case that we are using Redis
+# Redis database connection string in the case that you are using Redis
# as the user database.
# This database can be used for long-term credential mechanism
-# and it can store the secret value for secret-based timed authentication in TURN REST API.
-# Use string format as below (space separated parameters, all optional):
+# and it can store the secret value for secret-based timed authentication in TURN REST API.
+# Use the string format below (space separated parameters, all optional):
#
#redis-userdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>"
-#redis-userdb="ip=redis dbname=2 password=CHANGE_ME connect_timeout=30"
-
# Redis status and statistics database connection string, if used (default - empty, no Redis stats DB used).
# This database keeps allocations status information, and it can be also used for publishing
# and delivering traffic and allocation event notifications.
-# The connection string has the same parameters as redis-userdb connection string.
-# Use string format as below (space separated parameters, all optional):
+# The connection string has the same parameters as redis-userdb connection string.
+# Use the string format below (space separated parameters, all optional):
#
#redis-statsdb="ip=<ip-address> dbname=<database-number> password=<database-user-password> port=<port> connect_timeout=<seconds>"
-#redis-statsdb="ip=redis dbname=2 password=CHANGE_ME connect_timeout=30"
-
-# The default realm to be used for the users when no explicit
-# origin/realm relationship was found in the database, or if the TURN
+# The default realm to be used for the users when no explicit
+# origin/realm relationship is found in the database, or if the TURN
# server is not using any database (just the commands-line settings
-# and the userdb file). Must be used with long-term credentials
+# and the userdb file). Must be used with long-term credentials
# mechanism or with TURN REST API.
#
-# Note: If default realm is not specified at all, then realm falls back to the host domain name.
-# If domain name is empty string, or '(None)', then it is initialized to am empty string.
+# Note: If the default realm is not specified, then realm falls back to the host domain name.
+# If the domain name string is empty, or set to '(None)', then it is initialized as an empty string.
#
-#realm=mycompany.org
realm=example.org
-# The flag that sets the origin consistency
-# check: across the session, all requests must have the same
+# This flag sets the origin consistency
+# check. Across the session, all requests must have the same
# main ORIGIN attribute value (if the ORIGIN was
# initially used by the session).
#
@@ -373,7 +366,7 @@
# Max bytes-per-second bandwidth a TURN session is allowed to handle
# (input and output network streams are treated separately). Anything above
-# that limit will be dropped or temporary suppressed (within
+# that limit will be dropped or temporarily suppressed (within
# the available buffer limits).
# This option can also be set through the database, for a particular realm.
#
@@ -417,11 +410,11 @@
#no-tcp-relay
# Uncomment if extra security is desired,
-# with nonce value having limited lifetime.
+# with nonce value having a limited lifetime.
# By default, the nonce value is unique for a session,
-# and has unlimited lifetime.
-# Set this option to limit the nonce lifetime.
-# It defaults to 600 secs (10 min) if no value is provided. After that delay,
+# and has an unlimited lifetime.
+# Set this option to limit the nonce lifetime.
+# It defaults to 600 secs (10 min) if no value is provided. After that delay,
# the client will get 438 error and will have to re-authenticate itself.
#
#stale-nonce=600
@@ -447,18 +440,17 @@
#permission-lifetime=300
# Certificate file.
-# Use an absolute path or path relative to the
+# Use an absolute path or path relative to the
# configuration file.
+# Use PEM file format.
#
-#cert=/usr/local/etc/turn_server_cert.pem
cert=/etc/ssl/certs/cert.pem
# Private key file.
-# Use an absolute path or path relative to the
+# Use an absolute path or path relative to the
# configuration file.
# Use PEM file format.
#
-#pkey=/usr/local/etc/turn_server_pkey.pem
pkey=/etc/ssl/private/privkey.pem
# Private key file password, if it is in encoded format.
@@ -471,29 +463,29 @@
#
#cipher-list="DEFAULT"
-# CA file in OpenSSL format.
+# CA file in OpenSSL format.
# Forces TURN server to verify the client SSL certificates.
-# By default it is not set: there is no default value and the client
+# By default this is not set: there is no default value and the client
# certificate is not checked.
#
# Example:
#CA-file=/etc/ssh/id_rsa.cert
-# Curve name for EC ciphers, if supported by OpenSSL
-# library (TLS and DTLS). The default value is prime256v1,
+# Curve name for EC ciphers, if supported by OpenSSL
+# library (TLS and DTLS). The default value is prime256v1,
# if pre-OpenSSL 1.0.2 is used. With OpenSSL 1.0.2+,
# an optimal curve will be automatically calculated, if not defined
# by this option.
#
#ec-curve-name=prime256v1
-# Use 566 bits predefined DH TLS key. Default size of the key is 1066.
+# Use 566 bits predefined DH TLS key. Default size of the key is 2066.
#
#dh566
-# Use 2066 bits predefined DH TLS key. Default size of the key is 1066.
+# Use 1066 bits predefined DH TLS key. Default size of the key is 2066.
#
-#dh2066
+#dh1066
# Use custom DH TLS key, stored in PEM format in the file.
# Flags --dh566 and --dh2066 are ignored when the DH key is taken from a file.
@@ -501,21 +493,21 @@
#dh-file=<DH-PEM-file-name>
# Flag to prevent stdout log messages.
-# By default, all log messages are going to both stdout and to
-# the configured log file. With this option everything will be
-# going to the configured log only (unless the log file itself is stdout).
+# By default, all log messages go to both stdout and to
+# the configured log file. With this option everything will
+# go to the configured log only (unless the log file itself is stdout).
#
#no-stdout-log
# Option to set the log file name.
-# By default, the turnserver tries to open a log file in
-# /var/log, /var/tmp, /tmp and current directories directories
-# (which open operation succeeds first that file will be used).
+# By default, the turnserver tries to open a log file in
+# /var/log, /var/tmp, /tmp and the current directory
+# (Whichever file open operation succeeds first will be used).
# With this option you can set the definite log file name.
-# The special names are "stdout" and "-" - they will force everything
+# The special names are "stdout" and "-" - they will force everything
# to the stdout. Also, the "syslog" name will force everything to
-# the system log (syslog).
-# In the runtime, the logfile can be reset with the SIGHUP signal
+# the system log (syslog).
+# In the runtime, the logfile can be reset with the SIGHUP signal
# to the turnserver process.
#
#log-file=/var/tmp/turn.log
@@ -531,40 +523,40 @@
#simple-log
# Option to set the "redirection" mode. The value of this option
-# will be the address of the alternate server for UDP & TCP service in form of
+# will be the address of the alternate server for UDP & TCP service in the form of
# <ip>[:<port>]. The server will send this value in the attribute
# ALTERNATE-SERVER, with error 300, on ALLOCATE request, to the client.
# Client will receive only values with the same address family
-# as the client network endpoint address family.
-# See RFC 5389 and RFC 5766 for ALTERNATE-SERVER functionality description.
+# as the client network endpoint address family.
+# See RFC 5389 and RFC 5766 for the description of ALTERNATE-SERVER functionality.
# The client must use the obtained value for subsequent TURN communications.
-# If more than one --alternate-server options are provided, then the functionality
-# can be more accurately described as "load-balancing" than a mere "redirection".
-# If the port number is omitted, then the default port
+# If more than one --alternate-server option is provided, then the functionality
+# can be more accurately described as "load-balancing" than a mere "redirection".
+# If the port number is omitted, then the default port
# number 3478 for the UDP/TCP protocols will be used.
-# Colon (:) characters in IPv6 addresses may conflict with the syntax of
-# the option. To alleviate this conflict, literal IPv6 addresses are enclosed
-# in square brackets in such resource identifiers, for example:
-# [2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 .
+# Colon (:) characters in IPv6 addresses may conflict with the syntax of
+# the option. To alleviate this conflict, literal IPv6 addresses are enclosed
+# in square brackets in such resource identifiers, for example:
+# [2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478 .
# Multiple alternate servers can be set. They will be used in the
-# round-robin manner. All servers in the pool are considered of equal weight and
-# the load will be distributed equally. For example, if we have 4 alternate servers,
-# then each server will receive 25% of ALLOCATE requests. A alternate TURN server
-# address can be used more than one time with the alternate-server option, so this
+# round-robin manner. All servers in the pool are considered of equal weight and
+# the load will be distributed equally. For example, if you have 4 alternate servers,
+# then each server will receive 25% of ALLOCATE requests. A alternate TURN server
+# address can be used more than one time with the alternate-server option, so this
# can emulate "weighting" of the servers.
#
-# Examples:
+# Examples:
#alternate-server=1.2.3.4:5678
#alternate-server=11.22.33.44:56789
#alternate-server=5.6.7.8
#alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478
-
-# Option to set alternative server for TLS & DTLS services in form of
-# <ip>:<port>. If the port number is omitted, then the default port
-# number 5349 for the TLS/DTLS protocols will be used. See the previous
+
+# Option to set alternative server for TLS & DTLS services in form of
+# <ip>:<port>. If the port number is omitted, then the default port
+# number 5349 for the TLS/DTLS protocols will be used. See the previous
# option for the functionality description.
#
-# Examples:
+# Examples:
#tls-alternate-server=1.2.3.4:5678
#tls-alternate-server=11.22.33.44:56789
#tls-alternate-server=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:3478
@@ -592,30 +584,37 @@
# This is the timestamp/username separator symbol (character) in TURN REST API.
# The default value is ':'.
-# rest-api-separator=:
+# rest-api-separator=:
-# Flag that can be used to disallow peers on the loopback addresses (127.x.x.x and ::1).
+# Flag that can be used to allow peers on the loopback addresses (127.x.x.x and ::1).
# This is an extra security measure.
#
-no-loopback-peers
+# (To avoid any security issue that allowing loopback access may raise,
+# the no-loopback-peers option is replaced by allow-loopback-peers.)
+#
+# Allow it only for testing in a development environment!
+# In production it adds a possible security vulnerability, so for security reasons
+# it is not allowed using it together with empty cli-password.
+#
+#allow-loopback-peers
# Flag that can be used to disallow peers on well-known broadcast addresses (224.0.0.0 and above, and FFXX:*).
# This is an extra security measure.
#
#no-multicast-peers
-# Option to set the max time, in seconds, allowed for full allocation establishment.
+# Option to set the max time, in seconds, allowed for full allocation establishment.
# Default is 60 seconds.
#
#max-allocate-timeout=60
-# Option to allow or ban specific ip addresses or ranges of ip addresses.
-# If an ip address is specified as both allowed and denied, then the ip address is
-# considered to be allowed. This is useful when you wish to ban a range of ip
+# Option to allow or ban specific ip addresses or ranges of ip addresses.
+# If an ip address is specified as both allowed and denied, then the ip address is
+# considered to be allowed. This is useful when you wish to ban a range of ip
# addresses, except for a few specific ips within that range.
#
# This can be used when you do not want users of the turn server to be able to access
-# machines reachable by the turn server, but would otherwise be unreachable from the
+# machines reachable by the turn server, but would otherwise be unreachable from the
# internet (e.g. when the turn server is sitting behind a NAT)
#
# Examples:
@@ -637,8 +636,8 @@
#
#mobility
-# Allocate Address Family according
-# If enabled then TURN server allocates address family according the TURN
+# Allocate Address Family according
+# If enabled then TURN server allocates address family according the TURN
# Client <=> Server communication address family.
# (By default Coturn works according RFC 6156.)
# !!Warning: Enabling this option breaks RFC6156 section-4.2 (violates use default IPv4)!!
@@ -647,12 +646,12 @@
# User name to run the process. After the initialization, the turnserver process
-# will make an attempt to change the current user ID to that user.
+# will attempt to change the current user ID to that user.
#
#proc-user=<user-name>
# Group name to run the process. After the initialization, the turnserver process
-# will make an attempt to change the current group ID to that group.
+# will attempt to change the current group ID to that group.
#
#proc-group=<group-name>
@@ -672,8 +671,8 @@
cli-port=5766
# CLI access password. Default is empty (no password).
-# For the security reasons, it is recommended to use the encrypted
-# for of the password (see the -P command in the turnadmin utility).
+# For the security reasons, it is recommended that you use the encrypted
+# form of the password (see the -P command in the turnadmin utility).
#
# Secure form for password 'qwerty':
#
@@ -681,13 +680,31 @@
#
# Or unsecure form for the same password:
#
-#cli-password=qwerty
cli-password=CHANGE_ME
-# Server relay. NON-STANDARD AND DANGEROUS OPTION.
-# Only for those applications when we want to run
+# Enable Web-admin support on https. By default it is Disabled.
+# If it is enabled it also enables a http a simple static banner page
+# with a small reminder that the admin page is available only on https.
+#
+#web-admin
+
+# Local system IP address to be used for Web-admin server endpoint. Default value is 127.0.0.1.
+#
+#web-admin-ip=127.0.0.1
+
+# Web-admin server port. Default is 8080.
+#
+#web-admin-port=8080
+
+# Web-admin server listen on STUN/TURN worker threads
+# By default it is disabled for security resons! (Not recommended in any production environment!)
+#
+#web-admin-listen-on-workers
+
+# Server relay. NON-STANDARD AND DANGEROUS OPTION.
+# Only for those applications when you want to run
# server applications on the relay endpoints.
-# This option eliminates the IP permissions check on
+# This option eliminates the IP permissions check on
# the packets incoming to the relay endpoints.
#
#server-relay
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/examples/etc/turnserver.conf new/coturn-4.5.1.3/examples/etc/turnserver.conf
--- old/coturn-4.5.1.2/examples/etc/turnserver.conf 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/examples/etc/turnserver.conf 2020-06-24 17:13:42.000000000 +0200
@@ -23,7 +23,7 @@
# "automatically" recognizes the type of traffic. Actually, two listening
# endpoints (the "plain" one and the "tls" one) are equivalent in terms of
# functionality; but Coturn keeps both endpoints to satisfy the RFC 5766 specs.
-# For secure TCP connections, Coturn currently supports SSL version 3 and
+# For secure TCP connections, Coturn currently supports
# TLS version 1.0, 1.1 and 1.2.
# For secure UDP connections, Coturn supports DTLS version 1.
#
@@ -479,13 +479,13 @@
#
#ec-curve-name=prime256v1
-# Use 566 bits predefined DH TLS key. Default size of the key is 1066.
+# Use 566 bits predefined DH TLS key. Default size of the key is 2066.
#
#dh566
-# Use 2066 bits predefined DH TLS key. Default size of the key is 1066.
+# Use 1066 bits predefined DH TLS key. Default size of the key is 2066.
#
-#dh2066
+#dh1066
# Use custom DH TLS key, stored in PEM format in the file.
# Flags --dh566 and --dh2066 are ignored when the DH key is taken from a file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/examples/scripts/pack.sh new/coturn-4.5.1.3/examples/scripts/pack.sh
--- old/coturn-4.5.1.2/examples/scripts/pack.sh 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/examples/scripts/pack.sh 2020-06-24 17:13:42.000000000 +0200
@@ -2,7 +2,7 @@
# Run it from the root of the coturn source tree
-V=4.5.1.2
+V=4.5.1.3
PACKDIR=`pwd`/../coturn-releases/
SRCDIR=`pwd`
@@ -16,7 +16,8 @@
cd tmp
mkdir ${DDIR}
cp -R ${SRCDIR}/* ${DDIR}/
-tar cvfz ../${DDIR}.tar.gz ${DDIR}
+#tell tar to not include the metadata
+COPYFILE_DISABLE=1 tar cvfz ../${DDIR}.tar.gz ${DDIR}
cd ..
rm -rf tmp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/rpm/build.settings.sh new/coturn-4.5.1.3/rpm/build.settings.sh
--- old/coturn-4.5.1.2/rpm/build.settings.sh 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/rpm/build.settings.sh 2020-06-24 17:13:42.000000000 +0200
@@ -2,10 +2,9 @@
# Common settings script.
-TURNVERSION=4.5.1.2
+TURNVERSION=4.5.1.3
BUILDDIR=~/rpmbuild
ARCH=`uname -p`
-TURNSERVER_GIT_URL=https://github.com/coturn/coturn.git
WGETOPTIONS="--no-check-certificate"
RPMOPTIONS="-ivh --force"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/rpm/build.sh new/coturn-4.5.1.3/rpm/build.sh
--- old/coturn-4.5.1.2/rpm/build.sh 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/rpm/build.sh 2020-06-24 17:13:42.000000000 +0200
@@ -18,18 +18,11 @@
# TURN
+#create archive from local folder
cd ${BUILDDIR}/tmp
rm -rf turnserver-${TURNVERSION}
-git clone ${TURNSERVER_GIT_URL} --branch ${TURNVERSION} turnserver-${TURNVERSION}
-ER=$?
-if ! [ ${ER} -eq 0 ] ; then
- git clone ${TURNSERVER_GIT_URL} turnserver-${TURNVERSION}
- ER=$?
- if ! [ ${ER} -eq 0 ] ; then
- cd ${CPWD}
- exit -1
- fi
-fi
+mkdir -p ${BUILDDIR}/tmp/turnserver-${TURNVERSION}
+cp -R ${CPWD}/.. ${BUILDDIR}/tmp/turnserver-${TURNVERSION}
tar zcf ${BUILDDIR}/SOURCES/turnserver-${TURNVERSION}.tar.gz turnserver-${TURNVERSION}
ER=$?
@@ -38,6 +31,7 @@
exit -1
fi
+#build package from archive
rpmbuild -ta ${BUILDDIR}/SOURCES/turnserver-${TURNVERSION}.tar.gz
ER=$?
if ! [ ${ER} -eq 0 ] ; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/rpm/turnserver.spec new/coturn-4.5.1.3/rpm/turnserver.spec
--- old/coturn-4.5.1.2/rpm/turnserver.spec 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/rpm/turnserver.spec 2020-06-24 17:13:42.000000000 +0200
@@ -1,5 +1,5 @@
Name: turnserver
-Version: 4.5.1.2
+Version: 4.5.1.3
Release: 0%{dist}
Summary: Coturn TURN Server
@@ -197,6 +197,8 @@
%{_datadir}/%{name}/testmongosetup.sh
%{_datadir}/%{name}/testsqldbsetup.sql
%dir %{_datadir}/%{name}/etc
+%{_datadir}/%{name}/etc/cacert.pem
+%{_datadir}/%{name}/etc/coturn.service
%{_datadir}/%{name}/etc/turn_server_cert.pem
%{_datadir}/%{name}/etc/turn_server_pkey.pem
%{_datadir}/%{name}/etc/turnserver.conf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/src/apps/relay/ns_ioalib_engine_impl.c new/coturn-4.5.1.3/src/apps/relay/ns_ioalib_engine_impl.c
--- old/coturn-4.5.1.2/src/apps/relay/ns_ioalib_engine_impl.c 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/src/apps/relay/ns_ioalib_engine_impl.c 2020-06-24 17:13:42.000000000 +0200
@@ -293,10 +293,14 @@
if(!ret) {
ret = (stun_buffer_list_elem *)malloc(sizeof(stun_buffer_list_elem));
- ret->buf.len = 0;
- ret->buf.offset = 0;
- ret->buf.coffset = 0;
ret->next = NULL;
+ if (!ret) {
+ TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot allocate memory for STUN buffer!\n", __FUNCTION__);
+ }
+ }
+
+ if(ret) {
+ bzero(&ret->buf, sizeof(stun_buffer));
}
return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/src/client/ns_turn_msg.c new/coturn-4.5.1.3/src/client/ns_turn_msg.c
--- old/coturn-4.5.1.2/src/client/ns_turn_msg.c 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/src/client/ns_turn_msg.c 2020-06-24 17:13:42.000000000 +0200
@@ -244,9 +244,11 @@
unsigned int keylen = 0;
EVP_MD_CTX ctx;
EVP_MD_CTX_init(&ctx);
+#ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
if (FIPS_mode()) {
EVP_MD_CTX_set_flags(&ctx,EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
}
+#endif
EVP_DigestInit_ex(&ctx,EVP_md5(), NULL);
EVP_DigestUpdate(&ctx,str,strl);
EVP_DigestFinal(&ctx,key,&keylen);
@@ -254,9 +256,11 @@
#else
unsigned int keylen = 0;
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
+#ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
if (FIPS_mode()) {
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
}
+#endif
EVP_DigestInit_ex(ctx,EVP_md5(), NULL);
EVP_DigestUpdate(ctx,str,strl);
EVP_DigestFinal(ctx,key,&keylen);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/coturn-4.5.1.2/src/ns_turn_defs.h new/coturn-4.5.1.3/src/ns_turn_defs.h
--- old/coturn-4.5.1.2/src/ns_turn_defs.h 2020-04-30 20:45:54.000000000 +0200
+++ new/coturn-4.5.1.3/src/ns_turn_defs.h 2020-06-24 17:13:42.000000000 +0200
@@ -31,7 +31,7 @@
#ifndef __IOADEFS__
#define __IOADEFS__
-#define TURN_SERVER_VERSION "4.5.1.2"
+#define TURN_SERVER_VERSION "4.5.1.3"
#define TURN_SERVER_VERSION_NAME "dan Eider"
#define TURN_SOFTWARE "Coturn-" TURN_SERVER_VERSION " '" TURN_SERVER_VERSION_NAME "'"
++++++ coturn.service ++++++
--- /var/tmp/diff_new_pack.o3BNUa/_old 2020-06-30 21:59:19.243289140 +0200
+++ /var/tmp/diff_new_pack.o3BNUa/_new 2020-06-30 21:59:19.247289153 +0200
@@ -13,8 +13,8 @@
Restart=on-abort
ExecReload=/bin/kill -HUP $MAINPID
-# enable next line to make coturn able to bind to a port below 1024
-#AmbientCapabilities=CAP_NET_BIND_SERVICE
+# next line allows coturn to bind to a port below 1024
+AmbientCapabilities=CAP_NET_BIND_SERVICE
LimitCORE=infinity
LimitNOFILE=999999