IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> turnserver (coturn + redis) 配置ICE server 临时用户密码【实践】 -> 正文阅读

[大数据]turnserver (coturn + redis) 配置ICE server 临时用户密码【实践】

背景

前端连接turn服务时一般都需要设置账号密码,由于都是在js中配置的,长期凭据相对临时用户安全性会差很多,本文通过程序生成临时的账号密码,把临时凭据设置到Redis中,turn服务验证的时候直接对比Redis中的账号密码,当Redis中key过期时,turnserver返回Unauthorized校验不通过。

本文用到docker、Redis,需要提前准备好

安装参考:Filebeat+Redis+Logstash+Elasticsearch+Kibana搭建日志采集分析系统_殷长庆的博客-CSDN博客_kibana7.17 采集通道

配置参考:

turnserver配置

coturn/turnserver.conf at master · coturn/coturn · GitHub

ice测试地址:

Trickle ICE?

配置

coturn安装

使用docker安装比较方便

docker search coturn

docker pull coturn/coturn

coturn配置

新建/home/turnserver.conf文件

cd /home

touch turnserver.conf

编辑文件内容,我的服务器是云服务器,服务商提供了公网、私网IP

# TURN server name and realm
realm=公网IP
server-name=turnserver

# Use fingerprint in TURN message
fingerprint

# IPs the TURN server listens to
listening-ip=私网IP

relay-ip=私网IP

# External IP-Address of the TURN server
external-ip=公网IP

# Main listening port
listening-port=3478

# Further ports that are open for communication
min-port=49152
max-port=65535

# Log file path
log-file=/var/log/turnserver.log

# Enable verbose logging
verbose

# Specify the user for the TURN authentification
user=test:test123

# Enable long-term credential mechanism
lt-cred-mech

redis-userdb="ip=私网IP dbname=11 password=redis_pwd connect_timeout=30"

?其中redis-userdb的配置就是让coturn链接到redis

启动coturn

docker run -d --network=host -v $(pwd)/turnserver.conf:/etc/coturn/turnserver.conf coturn/coturn

coturn 添加账户

docker exec -it 容器号 /bin/bash

### 进入容器之后执行,创建一个mytest:mytest123的账号,创建完成后可以在redis中查看到

turnadmin -a -N "host=私网IP dbname=11 password=redis_pwd" -u mytest -r 公网IP -p mytest123

测试连接

这时候可以使用test:test123连接到coturn,如果不成功需要检查IP是否配置正确,服务器组策略是否开启了3478/udp

Java生成临时用户?

临时用户在Redis中的key-value规则

key

turn/realm/{realm}/user/{username}/key

实际的样子可能是

turn/realm/xxx.xxx.xxx/user/mytest/key?

value?

md5(username + ":" + realm + ":" + password)

实际样子是32位的MD5签名

生成完成之后设置到Redis中,给key设置一个过期时间即可,注意设置的dbindex要和coturn配置的保持一致。

测试临时用户?

使用生成的临时账户登录?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:16:02  更:2022-12-25 11:18:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 7:27:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码