今天跟大家分享下wowza流媒体服务器的一些安全设置心得,使用这个软件有一段时间了,但仍能感觉到许多问题存在,其中最为头疼的还是防盗链的问题。wowza作为一个强大的流媒体平台,能够提供多种格式的直播点播流。其中包括常用的rtmp,rtsp,http等还有一些流包括flash的f4m,微软的smooth streaming 流。
这里分享几点wowza 的安全措施:

一.更改默认的流媒体端口
wowza默认端口包括80 554等这些都是比较常见的也是比较被注意的端口,建议修改掉默认的端口,这样可以达到不轻易被扫描到 的效果
vi WowzaMediaServer/conf/VHost.xml

点击(此处)折叠或打开

  1. !-- Separate multiple ports with commas -->
  2. <!-- 80: HTTP, RTMPT -->
  3. <!-- 554: RTSP -->
  4. <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文件,在的列表的最后面添加下面的:

点击(此处)折叠或打开

  1. <Module>
  2. <Name>ModuleRTMPAuthenticate</Name>
  3. <Description>ModuleRTMPAuthenticate</Description>
  4. <Class>com.wowza.wms.security.ModuleRTMPAuthenticate</Class>
  5. </Module>

2.默认情况下,ModuleRTMPAuthenticate模块被设计为采用[install-dir]/conf/publish.password的文本文件来存储用户名和密码。在文件中新的一行添加的一个username和password来验证推流。下面的例子展现了如何添加用户名和密码。

点击(此处)折叠或打开

  1. # Publish password file (format [username][space][password])
  2. # username password
  3. myuser mypassword

3. 为每一个应用配置一个用户名和密码的文件:
将[install-dir]/conf/publish.password文件拷贝到[install-dir]/conf/[application]/publish.password。
在[install-dir]/conf/[application]/Application.xml文件最下面的的中添加下面的属性。

点击(此处)折叠或打开

  1. <Property>
  2. <Name>rtmpEncoderAuthenticateFile</Name>
  3. <Value>${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/publish.password</Value>
  4. </Property>

(2).采用服务端API对Http流的播放请求进行访问控制
1.基于Http协议的流媒体播放技术在Wowza Media Server中包括Cupertino (iOS hls)、微软Smooth (Silverlight) 以及San Jose (Flash HTTP):

点击(此处)折叠或打开

  1. import com.wowza.wms.httpstreamer.model.IHTTPStreamerSession;
  2. import com.wowza.wms.module.*;
  3. import com.wowza.wms.application.*;
  4. public class ModuleAccessControlHTTPStreaming extends ModuleBase
  5. {
  6. public void onHTTPSessionCreate(IHTTPStreamerSession httpSession)
  7. {
  8. boolean isGood = true;
  9. String ipAddressClient = httpSession.getIpAddress();
  10. String ipAddressServer = httpSession.getServerIp();
  11. String queryStr = httpSession.getQueryStr();
  12. String referrer = httpSession.getReferrer();
  13. String cookieStr = httpSession.getCookieStr();
  14. String userAgent = httpSession.getUserAgent();
  15. IApplicationInstance appInstance = httpSession.getAppInstance();
  16. String streamName = httpSession.getStreamName();
  17. // Here you can use the request and session information above to determine
  18. // if you want to reject the connection
  19. // isGood = true/false;
  20. getLogger().info("ModuleAccessControlHTTPStreaming.onHTTPSessionCreate["+appInstance.getContextStr()+":"+streamName+"]: accept:"+isGood);
  21. if (!isGood)
  22. httpSession.rejectSession();
  23. }
  24. }

2.使用 Wowza IDE编译上面的代码,将这个模块添加到/conf/[app-name]/Application.xml 文件的模块集合中:

点击(此处)折叠或打开

  1. <Module>
  2. <Name>ModuleAccessControlHTTPStreaming</Name>
  3. <Description>Access control for HTTP streams</Description>
  4. <Class>com.wowza.wms.example.module.ModuleAccessControlHTTPStreaming</Class>
  5. </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”

点击(此处)折叠或打开

  1. <LiveStreamPacketizers>cupertinostreamingpacketizer</LiveStreamPacketizers>

将HTTPStreamers属性设置为:
去掉后面两种编码格式"smoothstreaming,sanjosestreaming"

点击(此处)折叠或打开

  1. <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. 1.主流的流媒体服务器FMS/wowza/red5/SRS产品对比

    先列个大纲,慢慢补上内容吧: (2017年11月6日,今天开始,将写一点关于流媒体服务器相关的原创文章,由于篇幅较长,所以会坚持更新添加内容) 一.FMS(AMS)流媒体服务器介绍: Flash Me ...

  2. 流媒体服务器 客户端播放器方案推荐

    https://github.com/jacke121/stream-rtsp 使用说明: 貌似把rtsp转为webrtc,但是没有把图片编码为webrtc: Example config.json ...

  3. 主流开源流媒体服务器有哪些?

    流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtplib 多媒体处理工具 ffmpeg ...

  4. 【流媒体】视频点播流媒体服务器调研

    需要选型一个流媒体服务器,故搜罗网上资料,整理出以下内容供参考 出处皆已标注链接 目录 流媒体协议 直播流媒体协议 理解RTMP.HttpFlv和HLS的正确姿势 流媒体文件支持格式 市面上主流的流媒 ...

  5. 用Darwin轻松搭建流媒体服务器

    先罗列一下主流开源流媒体服务器 流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtpli ...

  6. 视频流媒体服务器ONVIF探测和云台控制是如何设置的?

    我们知道流媒体服务器是可以支持Onvif协议的,只是需要摄像头具有onvif协议,并且在流媒体服务器后台进行探测. 我们有一位开发者准备了具有onvif协议摄像头球机,但是启动EasyNVR之后,并不 ...

  7. ip camera如何将流媒体信息传送到流媒体服务器,IP Camera远程监控系统的设计与实现...

    视频监控系统是一个集计算机处理技术.网络通信技术和数字音视频编解码技术于一身的综合系统.作为一种成熟的多媒体应用,视频监控逐步走向数字化.网络化.综合化.无线智能化的潮流中. 用户普遍要求访问地点不受 ...

  8. nginx+ffmpeg搭建流媒体服务器

    安装ffmpeg: 下载FFmpeg和libx264的包 ffmpeg-2.4.1.tar.bz2  last_x264.tar.bz2 libx264需要yasm,所以先安装yasm apt-get ...

  9. nginx搭建rtmp协议流媒体服务器总结

    最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...

  10. 利用nginx搭建http和rtmp协议的流媒体服务器

    利用nginx搭建http和rtmp协议的流媒体服务器 一.准备工作 1.安装依赖包: yum install gcc glibc glibc-devel libtool make openssl-d ...

最新文章

  1. Python | [a for b in c for a in b]的用法
  2. linux下基于apache下的svn的搭建
  3. 详解JDBC与Hibernate区别
  4. 使用OpenCV进行人脸识别的三种方法
  5. python生成相似句子_4种方法计算句子相似度
  6. Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  7. 编程语言的“别样”编年史
  8. word 转 html cms,Java 将Word文件转换为HTML格式文件
  9. Python算法(含源代码下载)
  10. Spring boot (2)--- 基础
  11. mysql server再次安装失败_MySQL在windows上多次安装失败
  12. UICollectionViewController
  13. [ASP.NET AJAX]Function对象及Type类的方法介绍
  14. tomcat 启动报错 解决办法 A child container failed duringnbsp
  15. 数据结构-线性链表的实现和应用
  16. python scratch unity_极客晨星:少儿编程热门语言,除了Scratch还有哪些
  17. n阶魔方的构成方法C语言,穷举法打印n阶魔方矩阵
  18. web 服务端与客户端交互
  19. SWUSTOJ #78 计算生日是星期几
  20. 最优化程序设计——最优化模型的建立

热门文章

  1. Windows Server AppFabric正式发布
  2. 思科交换机配置命令大全,交换机配置案例详解
  3. 思科交换机路由器配置命令大全
  4. 电脑什么桌面录屏软件可以录制在线视频
  5. Python爬虫QQ空间
  6. 计算机课程设计 校园网规划设计与实现,校园网的规划与实现.doc
  7. 快压软件的彻底删除方法
  8. 乐视盒子UI 官方下载地址
  9. 毕业设计之 ---- 基于机器视觉的图像拼接算法
  10. 毕业设计 python opencv 机器视觉图像拼接算法