1TURN(1)                                                                TURN(1)
2
3
4

GENERAL INFORMATION

6       turnadmin  is a TURN administration tool. This tool can be used to man‐
7       age the user accounts (add/remove users, generate  TURN  keys  for  the
8       users).  For  security  reasons,  we do not recommend storing passwords
9       openly. The better option is to use pre-processed "keys" which are then
10       used  for  authentication. These keys are generated by turnadmin.  Tur‐
11       nadmin is a link to turnserver binary, but turnadmin performs different
12       functions.
13
14       Options  note:  turnadmin  has  long  and  short option names, for most
15       options.  Some options have only long  form,  some  options  have  only
16       short  form.  Their  syntax  somewhat  different,  if  an  argument  is
17       required:
18
19       The short form must be used as this (for example):
20
21         $ turnadmin -u <username> ...
22
23       The long form equivalent must use the "=" character:
24
25         $ turnadmin --user=<username> ...
26
27       If this is a flag option (no argument required) then  their  usage  are
28       the same, for example:
29
30        $ turnadmin -k ...
31
32       is equivalent to:
33
34        $ turnadmin --key ...
35
36       You  have  always  the use the -r <realm> option with commands for long
37       term credentials - because data for multiple realms can  be  stored  in
38       the same database.
39

=====================================

41   NAME
42        turnadmin - a TURN relay administration tool.
43
44   SYNOPSIS
45       $ turnadmin [command] [options]
46
47       $ turnadmin [ -h | --help]
48
49
50   DESCRIPTION
51       Commands:
52
53       -P, --generate-encrypted-password
54              Generate and print to the standard output an encrypted form of a
55              password (for web admin user or CLI).  The  value  then  can  be
56              used  as  a  safe key for the password storage on disk or in the
57              database. Every invocation for the same password produces a dif‐
58              ferent   result.  The  format  of  the  encrypted  password  is:
59              $5$<...salt...>$<...sha256(salt+password)...>. Salt is 16  char‐
60              acters,  the  sha256 output is 64 characters. Character 5 is the
61              algorithm id (sha256).  Only sha256 is  supported  as  the  hash
62              function.
63
64       -k, --key
65              Generate key for a long-term credentials mechanism user.
66
67       -a, --add
68              Add or update a long-term user.
69
70       -A, --add-admin
71              Add or update an admin user.
72
73       -d, --delete
74              Delete a long-term user.
75
76       -D, --delete-admin
77              Delete an admin user.
78
79       -l, --list
80              List long-term users in the database.
81
82       -L, --list-admin
83              List admin users in the database.
84
85       -s, --set-secret=<value> Add shared secret for TURN REST API
86
87       -S, --show-secret
88              Show stored shared secrets for TURN REST API
89
90       -X, --delete-secret=<value> Delete a shared secret.
91
92              --delete-all_secrets
93                     Delete all shared secrets for REST API.
94
95       -O, --add-origin
96              Add origin-to-realm relation.
97
98       -R, --del-origin
99              Delete origin-to-realm relation.
100
101       -I, --list-origins
102              List origin-to-realm relations.
103
104       -g, --set-realm-option
105              Set realm params: max-bps, total-quota, user-quota.
106
107       -G, --list-realm-options
108              List realm params.
109
110       -E, --generate-encrypted-password-aes
111              Generate  and  print to the standard output an encrypted form of
112              password with AES-128
113
114       Options with required values:
115
116       -b, --db, --userdb
117              SQLite user database file  name  (default  -  /var/db/turndb  or
118              /usr/local/var/db/turndb or /var/lib/turn/turndb).  See the same
119              option in the turnserver section.
120
121       -e, --psql-userdb
122              PostgreSQL   user   database   connection   string.    See   the
123              --psql-userdb option in the turnserver section.
124
125       -M, --mysql-userdb
126              MySQL  user  database connection string.  See the --mysql-userdb
127              option in the turnserver section.
128
129       -J, --mongo-userdb
130              MongoDB user database connection string.  See the  --mysql-mongo
131              option in the turnserver section.
132
133       -N, --redis-userdb
134              Redis  user  database connection string.  See the --redis-userdb
135              option in the turnserver section.
136
137       -u, --user
138              User name.
139
140       -r, --realm
141              Realm.
142
143       -p, --password
144              Password.
145
146       -x, --key-path
147              Generates a 128 bit key into the given path.
148
149       -f, --file-key-path
150              Contains a 128 bit key in the given path.
151
152       -v, --verify
153              Verify a given base64 encrypted type password.
154
155       -o, --origin
156              Origin
157
158       --max-bps
159              Set value of realm's max-bps parameter.
160
161       --total-quota
162              Set value of realm's total-quota parameter.
163
164       --user-quota
165              Set value of realm's user-quota parameter.
166
167       -h, --help
168              Help.
169
170       Command examples:
171
172       Generate an encrypted form of a password:
173
174       $ turnadmin -P -p <password>
175
176       Generate a key:
177
178       $ turnadmin -k -u <username> -r <realm> -p <password>
179
180       Add/update a user in the in the database:
181
182       $ turnadmin -a [-b  <userdb-file>  |  -e  <db-connection-string>  |  -M
183       <db-connection-string>  |  -N <db-connection-string> ] -u <username> -r
184       <realm> -p <password>
185
186       Delete a user from the database:
187
188       $ turnadmin -d [-b  <userdb-file>  |  -e  <db-connection-string>  |  -M
189       <db-connection-string>  |  -N <db-connection-string> ] -u <username> -r
190       <realm>
191
192       List all long-term users in MySQL database:
193
194       $ turnadmin -l --mysql-userdb="<db-connection-string>" -r <realm>
195
196       List all admin users in Redis database:
197
198       $ turnadmin -L --redis-userdb="<db-connection-string>"
199
200       Set secret in MySQL database:
201
202       $  turnadmin  -s  <secret>  --mysql-userdb="<db-connection-string>"  -r
203       <realm>
204
205       Show secret stored in PostgreSQL database:
206
207       $ turnadmin -S --psql-userdb="<db-connection-string>" -r <realm>
208
209       Set origin-to-realm relation in MySQL database:
210
211       $ turnadmin --mysql-userdb="<db-connection-string>" -r <realm> -o <ori‐
212       gin>
213
214       Delete origin-to-realm relation from Redis DB:
215
216       $ turnadmin --redis-userdb="<db-connection-string>" -o <origin>
217
218       List all origin-to-realm relations in Redis DB:
219
220       $ turnadmin --redis-userdb="<db-connection-string>" -I
221
222       List the origin-to-realm relations in PostgreSQL DB for a single realm:
223
224       $ turnadmin --psql-userdb="<db-connection-string>" -I -r <realm>
225
226       Create new key file for mysql password encryption:
227
228       $ turnadmin -E --key-path <key-file>
229
230       Create encrypted mysql password:
231
232       $ turnadmin -E --file-key-path <key-file> -p <secret>
233
234       Verify/decrypt encrypted password:
235
236       $ turnadmin --file-key-path <key-file> -v <encrypted>
237
238              Help:
239
240              $ turnadmin -h
241

=======================================

243   DOCS
244       After installation, run the command:
245
246       $ man turnadmin
247
248       or in the project root directory:
249
250       $ man -M man turnadmin
251
252       to see the man page.
253

=====================================

255   FILES
256       /etc/turnserver.conf
257
258       /var/db/turndb
259
260       /usr/local/var/db/turndb
261
262       /var/lib/turn/turndb
263
264       /usr/local/etc/turnserver.conf
265

=====================================

267   DIRECTORIES
268       /usr/local/share/turnserver
269
270       /usr/local/share/doc/turnserver
271
272       /usr/local/share/examples/turnserver
273

======================================

275   SEE ALSO
276       turnserver, turnutils
277

======================================

279   WEB RESOURCES
280       project page:
281
282       https://github.com/coturn/coturn/
283
284       Wiki page:
285
286       https://github.com/coturn/coturn/wiki
287
288       forum:
289
290       https://groups.google.com/forum/?from
291       groups=#!forum/turn-server-project-rfc5766-turn-server/
292

======================================

294   AUTHORS
295       Oleg Moskalenko <mom040267@gmail.com>
296
297       Gabor Kovesdan http://kovesdan.org/
298
299       Daniel Pocock http://danielpocock.com/
300
301       John Selbie (jselbie@gmail.com)
302
303       Lee Sylvester <lee@designrealm.co.uk>
304
305       Erik Johnston <erikj@openmarket.com>
306
307       Roman Lisagor <roman@demonware.net>
308
309       Vladimir Tsanev <tsachev@gmail.com>
310
311       Po-sheng Lin <personlin118@gmail.com>
312
313       Peter Dunkley <peter.dunkley@acision.com>
314
315       Mutsutoshi Yoshimoto <mutsutoshi.yoshimoto@mixi.co.jp>
316
317       Federico Pinna <fpinna@vivocha.com>
318
319       Bradley T. Hughes <bradleythughes@fastmail.fm>
320
321       Mihály Mészáros <misi@majd.eu>
322
323   ACTIVE MAINTAINERS
324       Mihály Mészáros <misi@majd.eu>
325
326
327
328                                10 January 2021                        TURN(1)
Impressum