Coturn项目SQLite数据库配置指南
coturn coturn TURN server project 项目地址: https://gitcode.com/gh_mirrors/co/coturn
前言
Coturn作为一款开源的TURN/STUN服务器,在WebRTC等实时通信场景中扮演着重要角色。本文将详细介绍如何在Coturn中使用SQLite数据库进行用户认证和配置管理。
SQLite数据库基础配置
SQLite是一种轻量级的嵌入式数据库,非常适合Coturn这类需要简单数据存储的场景。Coturn默认会在以下位置寻找SQLite数据库文件:
/usr/local/var/db/turndb
/var/db/turndb
(根据不同平台)
数据库初始化
Coturn提供了一个简洁的数据库schema文件,通常位于:
- 项目源码中的
turndb/schema.sql
- 安装后的
PREFIX/share/turnserver/schema.sql
要创建新的SQLite数据库,只需执行:
sqlite3 <your-db-file-name> < turndb/schema.sql
核心表结构解析
1. 长期凭证表(turnusers_lt)
CREATE TABLE turnusers_lt (
realm varchar(127) default '',
name varchar(512),
hmackey char(128),
PRIMARY KEY (realm,name)
);
此表用于存储长期认证凭证:
realm
:认证域name
:用户名hmackey
:HMAC密钥的HEX字符串表示(16字节)
安全提示:Coturn不存储明文密码,只存储HMAC密钥。如果更改realm,必须更新所有用户的HMAC密钥。
2. 共享密钥表(turn_secret)
CREATE TABLE turn_secret (
realm varchar(127) default '',
value varchar(127),
primary key (realm,value)
);
用于REST API的共享密钥认证,可与长期凭证机制配合使用。
3. IP访问控制表
allowed_peer_ip
:白名单IP范围denied_peer_ip
:黑名单IP范围
4. 其他重要表
turn_origin_to_realm
:origin到realm的映射turn_realm_option
:realm配置选项(如带宽限制、配额等)oauth_key
:OAuth密钥存储admin_user
:HTTPS管理用户
数据库管理工具
Coturn提供了turnadmin
工具来管理数据库:
-
添加REST API共享密钥:
turnadmin -s logen -r north.gov -b "/var/db/turndb"
-
添加长期凭证用户:
turnadmin -a -b "/var/db/turndb" -u gorst -r north.gov -p hero
-
添加管理用户:
turnadmin -A -b "/var/db/turndb" -u ninefingers -p youhavetoberealistic -r north.gov
启动参数配置
启动Coturn时,通过--db
参数指定数据库路径:
turnserver ... --db="/var/db/turndb"
安全最佳实践
-
对于生产环境,建议:
- 加密存储共享密钥和管理用户密码
- 定期备份数据库文件
- 设置适当的文件权限
-
OAuth密钥配置建议:
- 为密钥设置合理的lifetime
- 使用强加密算法(默认A256GCM)
总结
通过SQLite数据库,Coturn可以实现灵活的用户管理和访问控制。本文介绍了数据库的初始化、表结构说明以及基本管理操作。对于需要更高性能或更大规模部署的场景,Coturn也支持PostgreSQL等其他数据库后端。
coturn coturn TURN server project 项目地址: https://gitcode.com/gh_mirrors/co/coturn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考