Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1426426
  • 博文数量: 188
  • 博客积分: 1784
  • 博客等级: 上尉
  • 技术积分: 2772
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 22:20
个人简介

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。

文章分类

全部博文(188)

文章存档

2020年(12)

2019年(11)

2018年(4)

2017年(3)

2016年(11)

2015年(22)

2014年(19)

2013年(25)

2012年(32)

2011年(49)

分类: 网络与安全

2013-05-13 13:19:18

笔者通过系统日志发现有两家盗流网站在盗取我们服务器的资源,最可恶的是第二家网站盗流平均每天20PV。所以笔者无奈之下只能对流媒体服务器进行相关防盗链设置工作。
 方法一、基于Authentication for RTMP and RTSP Publishing方法

具体步骤如下所示:

1、 进入流媒体配置目录:/usr/local/WowzaMediaServer-3.1.1/conf/live

2、 修改Application.xml配置文件,添加如下信息:

修改 RTP/Authentication/PublishMethoddigest

修改PlayMethod值为basic模式

3、 修改/usr/local/WowzaMediaServer-3.1.1/conf目录下用户口令密码配置文件publish.password

具体修改内容如下所示:

#username password

myab    123abc

4、 Copy配置文件publish.password至应用目录

#cp publish.password  ../applications/live/

5、 在该应用配置文件底部Application.xml内添加如下信息

点击(此处)折叠或打开

  1. <Property>
  2.     <Name>rtspEncoderAuthenticateFile</Name>
  3.     <Value>${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/publish.password</Value>
  4. </Property>
 6 wms-plugin-security.jar包上传到lib目录下

7、 重启流媒体服务

8、 测试方法

一、直接在vlc输入rtsp://10.0.211.5:80/live/sdws则播放器会提示请输入验证口令则证明口令防盗链设置成功;

1) 输入错误的口令无法正常播放视频;

2) 输入正确的口令视频正常播放

   二、在vlc播放器内输入rtsp://username:password@10.0.211.5:80/live/sdws若口令正确则正常播放视频,否则服务器拒绝播放视频 

方案二、 基于Server-Side API to Control Access方案防止rtsp流盗链

服务器端API方案中使用API来完成对直播流的保护功能,本方案中直接使用了一个demo完成,API的例子可以用来开发自定义身份验证系统来控制访问流媒体其可以提供一种安全的方式访问流媒体控制。

具体demo如下所示:

点击(此处)折叠或打开

  1. package com.wowza.wms.example.module;
  2. import com.wowza.wms.rtp.model.*;
  3. import com.wowza.wms.application.*;
  4. import com.wowza.wms.module.*;
  5. public class ModuleAccessControlRTSP extends ModuleBase
  6. {
  7.     public void onRTPSessionCreate(RTPSession rtpSession)
  8.     {
  9.         boolean isGood = true;

  10.         String ipAddress = rtpSession.getIp();
  11.         String queryStr = rtpSession.getQueryStr();
  12.         String referrer = rtpSession.getReferrer();
  13.         String userAgent = rtpSession.getUserAgent();
  14.         
  15.         IApplicationInstance appInstance = rtpSession.getAppInstance();
  16.         String uriStr = rtpSession.getUri();
  17.         
  18.         // Here you can use the request and session information above to determine

  19.         // if you want to reject the connection

  20.         // isGood = true/false;

  21.         
  22.         if (!isGood)
  23.             rtpSession.rejectSession();
  24.     }
  25. }


阅读(1162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~