这里分享几点wowza 的安全措施:
一.更改默认的流媒体端口
wowza默认端口包括80 554等这些都是比较常见的也是比较被注意的端口,建议修改掉默认的端口,这样可以达到不轻易被扫描到 的效果
vi WowzaMediaServer/conf/VHost.xml
点击(此处)折叠或打开
-
!-- Separate multiple ports with commas -->
-
!-- 80: HTTP, RTMPT -->
-
!-- 554: RTSP -->
- Port>10080/Port>
二.添加直播流防盗链设置
(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>
点击(此处)折叠或打开
-
# Publish password file (format [username][space][password])
-
# username password
- myuser mypassword
将[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>
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();
-
}
- }
点击(此处)折叠或打开
-
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版本,所以更新有风险,升级需谨慎那。