Skip to content
This repository was archived by the owner on Mar 22, 2023. It is now read-only.

Commit 2a95fde

Browse files
committed
Add allowed and denied peer to turnserver.conf
Following [1] and [2] the TURN-Server can be used to access the network behind the TURN-Server or the server can be abused to relay attacks in the internet. To workaround those problems `denied-peer-ip` and `allowed-peer-ip` setting should be used. [1] https://www.rtcsec.com/post/2020/04/how-we-abused-slacks-turn-servers-to-gain-access-to-internal-services/ [2] https://www.rtcsec.com/post/2021/01/details-about-cve-2020-26262-bypass-of-coturns-default-access-control-protection/
1 parent 062678d commit 2a95fde

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

_posts/2019-02-14-setup-turn-server.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,19 +104,21 @@ $ sudo chmod 0755 /etc/letsencrypt/renewal-hooks/deploy/coturn
104104

105105
Use the file below for `/etc/turnserver.conf` and make the following changes:
106106

107-
* Replace `<turn.example.com>` with the hostname of your TURN server, and
108-
* Replace `<example.com>` with the realm of your TURN server, and
109-
* Replace `<secret_value>` to a random value for a shared secret (you can generate one by running `openssl rand -hex 16`)
110-
* Replace `<IP>` with the external IP of your TURN server
107+
* Replace `<turn.example.com>` with the hostname of your TURN server.
108+
* Replace `<example.com>` with the realm of your TURN server.
109+
* Replace `<secret_value>` to a random value for a shared secret (you can generate one by running `openssl rand -hex 16`).
110+
* Replace `<IP>` with the external IP of your TURN server.
111+
* Replace `<bbb_server_ip>` with the IP Address of your BigBlueButton-Server.
112+
* Repeat `allowed-peer-ip=<ip_address>` for each IPv4 and IPv6 for every BigBlueButton-Server and any other TURN-Server.
111113

112114
This configuration file assumes your TURN server is not behind NAT and has a public IP address.
113115

114116
```ini
115117
listening-port=3478
116118
tls-listening-port=443
117119

118-
listening-ip=$IP
119-
relay-ip=$IP
120+
listening-ip=<IP>
121+
relay-ip=<IP>
120122

121123
# If the server is behind NAT, you need to specify the external IP address.
122124
# If there is only one external address, specify it like this:
@@ -127,6 +129,24 @@ relay-ip=$IP
127129
#external-ip=172.17.19.131/10.0.0.11
128130
#external-ip=172.17.18.132/10.0.0.12
129131

132+
# Flag that can be used to disallow peers on well-known broadcast addresses
133+
# (224.0.0.0 and above, and FFXX:*). This is an extra security measure.
134+
#
135+
no-multicast-peers
136+
137+
# Option to allow or ban specific ip addresses or ranges of ip addresses.
138+
# If an ip address is specified as both allowed and denied, then the ip address is
139+
# considered to be allowed. This is useful when you wish to ban a range of ip
140+
# addresses, except for a few specific ips within that range.
141+
#
142+
# This can be used when you do not want users of the turn server to be able to access
143+
# machines reachable by the turn server, but would otherwise be unreachable from the
144+
# internet (e.g. when the turn server is sitting behind a NAT)
145+
denied-peer-ip=0.0.0.0-255.255.255.255
146+
denied-peer-ip=::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
147+
allowed-peer-ip=<IP>
148+
allowed-peer-ip=<bbb_server_ip>
149+
130150
min-port=32769
131151
max-port=65535
132152
verbose

0 commit comments

Comments
 (0)