wowza流媒体服务器安全设置

 今天跟大家分享下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.         
  10.         String ipAddressClient = httpSession.getIpAddress();
  11.         String ipAddressServer = httpSession.getServerIp();
  12.         String queryStr = httpSession.getQueryStr();
  13.         String referrer = httpSession.getReferrer();
  14.         String cookieStr = httpSession.getCookieStr();
  15.         String userAgent = httpSession.getUserAgent();
  16.         
  17.         IApplicationInstance appInstance = httpSession.getAppInstance();
  18.         String streamName = httpSession.getStreamName();
  19.         
  20.         // Here you can use the request and session information above to determine
  21.         // if you want to reject the connection
  22.         // isGood = true/false;
  23.         
  24.         getLogger().info("ModuleAccessControlHTTPStreaming.onHTTPSessionCreate["+appInstance.getContextStr()+":"+streamName+"]: accept:"+isGood);
  25.         
  26.         if (!isGood)
  27.             httpSession.rejectSession();
  28.     }
  29. }
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
上一篇:解决centos 6.6 更换yum 163源报错


下一篇:PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.4. WAL配置