wowza流媒体服务器安全设置
今天跟大家分享下wowza流媒体服务器的一些安全设置心得,使用这个软件有一段时间了,但仍能感觉到许多问题存在,其中最为头疼的还是防盗链的问题。wowza作为一个强大的流媒体平台,能够提供多种格式的直播点播流。其中包括常用的rtmp,rtsp,http等还有一些流包括flash的f4m,微软的smooth streaming 流。
这里分享几点wowza 的安全措施:
一.更改默认的流媒体端口
wowza默认端口包括80 554等这些都是比较常见的也是比较被注意的端口,建议修改掉默认的端口,这样可以达到不轻易被扫描到 的效果
vi WowzaMediaServer/conf/VHost.xml
点击(此处)折叠或打开
- !-- Separate multiple ports with commas -->
- <!-- 80: HTTP, RTMPT -->
- <!-- 554: RTSP -->
- <Port>10080</Port>
建议修改成较大的端口,一般10000以后,不会造成与其他应用的端口冲突
二.添加直播流防盗链设置
(1).针对RTMP及RTSP推流进行基于用户名和密码的认证
在流媒体平台中rtmp流是比较常用的一种格式,针对rtmp可以采用用户名密码的认证方式
这里需要用到ModuleRTMPAuthenticate模块,从Wowza Media Server 3.5.0开始, ModuleRTMPAuthenticate模块已经内置到服务器中了。如果你正在使用更早的版本,你必须下载MediaSecurity Addon来获得这个模块。下载并解开压缩包后, 将/lib文件夹下的wms-plugin-security.jar文件拷贝的Wowza Media Server的/lib文件夹,然后重启Wowza Media Server
1.打开[install-dir]/conf/[application]/Application.xml文件,在的列表的最后面添加下面的:
点击(此处)折叠或打开
- <Module>
- <Name>ModuleRTMPAuthenticate</Name>
- <Description>ModuleRTMPAuthenticate</Description>
- <Class>com.wowza.wms.security.ModuleRTMPAuthenticate</Class>
- </Module>
2.默认情况下,ModuleRTMPAuthenticate模块被设计为采用[install-dir]/conf/publish.password的文本文件来存储用户名和密码。在文件中新的一行添加的一个username和password来验证推流。下面的例子展现了如何添加用户名和密码。
点击(此处)折叠或打开
- # Publish password file (format [username][space][password])
- # username password
- myuser mypassword
3. 为每一个应用配置一个用户名和密码的文件:
将[install-dir]/conf/publish.password文件拷贝到[install-dir]/conf/[application]/publish.password。
在[install-dir]/conf/[application]/Application.xml文件最下面的的中添加下面的属性。
点击(此处)折叠或打开
- <Property>
- <Name>rtmpEncoderAuthenticateFile</Name>
- <Value>${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/publish.password</Value>
- </Property>
(2).采用服务端API对Http流的播放请求进行访问控制
1.基于Http协议的流媒体播放技术在Wowza Media Server中包括Cupertino (iOS hls)、微软Smooth (Silverlight) 以及San Jose (Flash HTTP):
点击(此处)折叠或打开
- import com.wowza.wms.httpstreamer.model.IHTTPStreamerSession;
- import com.wowza.wms.module.*;
- import com.wowza.wms.application.*;
- public class ModuleAccessControlHTTPStreaming extends ModuleBase
- {
- public void onHTTPSessionCreate(IHTTPStreamerSession httpSession)
- {
- boolean isGood = true;
- String ipAddressClient = httpSession.getIpAddress();
- String ipAddressServer = httpSession.getServerIp();
- String queryStr = httpSession.getQueryStr();
- String referrer = httpSession.getReferrer();
- String cookieStr = httpSession.getCookieStr();
- String userAgent = httpSession.getUserAgent();
- IApplicationInstance appInstance = httpSession.getAppInstance();
- String streamName = httpSession.getStreamName();
- // Here you can use the request and session information above to determine
- // if you want to reject the connection
- // isGood = true/false;
- getLogger().info("ModuleAccessControlHTTPStreaming.onHTTPSessionCreate["+appInstance.getContextStr()+":"+streamName+"]: accept:"+isGood);
- if (!isGood)
- httpSession.rejectSession();
- }
- }
2.使用 Wowza IDE编译上面的代码,将这个模块添加到/conf/[app-name]/Application.xml 文件的模块集合中:
点击(此处)折叠或打开
- <Module>
- <Name>ModuleAccessControlHTTPStreaming</Name>
- <Description>Access control for HTTP streams</Description>
- <Class>com.wowza.wms.example.module.ModuleAccessControlHTTPStreaming</Class>
- </Module>
三.关闭不需要直播流格式
wowza可以提供rtmp,rtsp,http等还有一些流包括flash的f4m,微软的smooth streaming 流。但平时用到的可能不会是全部,这里就建议大家根据自己的需要开放直播流的格式。一般情况下移动直播流媒体需要支持rtmp,rtsp及http的苹果m3u8格式。对于flash的f4m,微软的smooth streaming 流可能用到的较少,可以考虑关掉。具体的设置如下
编辑 [install-dir]/conf/[application]/Application.xml文件,
将Streams/LiveStreamPacketizers属性设置为:
去掉后面两种编码格式“smoothstreamingpacketizer,sanjosestreamingpacketizer”
点击(此处)折叠或打开
- <LiveStreamPacketizers>cupertinostreamingpacketizer</LiveStreamPacketizers>
将HTTPStreamers属性设置为:
去掉后面两种编码格式"smoothstreaming,sanjosestreaming"
点击(此处)折叠或打开
- <HTTPStreamers>cupertinostreaming</HTTPStreamers>
当然可以根据自己的需要选择提供的直播流编码格式。
四.及时更新wowza软件到最新版本
公司流媒体平台采用的是wowza流媒体服务器,目前使用的还是3.X的版本叫做Wowza Media Server 3,wowza官方最新版本为Wowza Streaming Engine 4.0.4,大家注意到了,升级到4.0以后软件的名字改变了,并没有延续media server的称呼而是改成了streaming engin,官方的说法是提供了一个强大的、直观的Web管理界面:Wowza Streaming Engine Manager,而且对软件做出了较大的改变,一般按照软件更新的传统,新版本都会修复原来存在的已知或未知的bug,应该升级到最新版本。不过这里有个问题出现了,原来购买的wowza序列号并不能直接应用到新版的wowoza streaming Engine,需要先将原来的序列号撤销,并重新获得一个新的授权序列号。而且对于原来3.x版本购买的增值应用不能兼容到4.x版本,所以更新有风险,升级需谨慎那。ngin
wowza流媒体服务器安全设置相关推荐
- 1.主流的流媒体服务器FMS/wowza/red5/SRS产品对比
先列个大纲,慢慢补上内容吧: (2017年11月6日,今天开始,将写一点关于流媒体服务器相关的原创文章,由于篇幅较长,所以会坚持更新添加内容) 一.FMS(AMS)流媒体服务器介绍: Flash Me ...
- 流媒体服务器 客户端播放器方案推荐
https://github.com/jacke121/stream-rtsp 使用说明: 貌似把rtsp转为webrtc,但是没有把图片编码为webrtc: Example config.json ...
- 主流开源流媒体服务器有哪些?
流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtplib 多媒体处理工具 ffmpeg ...
- 【流媒体】视频点播流媒体服务器调研
需要选型一个流媒体服务器,故搜罗网上资料,整理出以下内容供参考 出处皆已标注链接 目录 流媒体协议 直播流媒体协议 理解RTMP.HttpFlv和HLS的正确姿势 流媒体文件支持格式 市面上主流的流媒 ...
- 用Darwin轻松搭建流媒体服务器
先罗列一下主流开源流媒体服务器 流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtpli ...
- 视频流媒体服务器ONVIF探测和云台控制是如何设置的?
我们知道流媒体服务器是可以支持Onvif协议的,只是需要摄像头具有onvif协议,并且在流媒体服务器后台进行探测. 我们有一位开发者准备了具有onvif协议摄像头球机,但是启动EasyNVR之后,并不 ...
- ip camera如何将流媒体信息传送到流媒体服务器,IP Camera远程监控系统的设计与实现...
视频监控系统是一个集计算机处理技术.网络通信技术和数字音视频编解码技术于一身的综合系统.作为一种成熟的多媒体应用,视频监控逐步走向数字化.网络化.综合化.无线智能化的潮流中. 用户普遍要求访问地点不受 ...
- nginx+ffmpeg搭建流媒体服务器
安装ffmpeg: 下载FFmpeg和libx264的包 ffmpeg-2.4.1.tar.bz2 last_x264.tar.bz2 libx264需要yasm,所以先安装yasm apt-get ...
- nginx搭建rtmp协议流媒体服务器总结
最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...
- 利用nginx搭建http和rtmp协议的流媒体服务器
利用nginx搭建http和rtmp协议的流媒体服务器 一.准备工作 1.安装依赖包: yum install gcc glibc glibc-devel libtool make openssl-d ...
最新文章
- Python | [a for b in c for a in b]的用法
- linux下基于apache下的svn的搭建
- 详解JDBC与Hibernate区别
- 使用OpenCV进行人脸识别的三种方法
- python生成相似句子_4种方法计算句子相似度
- Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~
- 编程语言的“别样”编年史
- word 转 html cms,Java 将Word文件转换为HTML格式文件
- Python算法(含源代码下载)
- Spring boot (2)--- 基础
- mysql server再次安装失败_MySQL在windows上多次安装失败
- UICollectionViewController
- [ASP.NET AJAX]Function对象及Type类的方法介绍
- tomcat 启动报错 解决办法 A child container failed duringnbsp
- 数据结构-线性链表的实现和应用
- python scratch unity_极客晨星:少儿编程热门语言,除了Scratch还有哪些
- n阶魔方的构成方法C语言,穷举法打印n阶魔方矩阵
- web 服务端与客户端交互
- SWUSTOJ #78 计算生日是星期几
- 最优化程序设计——最优化模型的建立