这篇文章介绍了这些转变,以及在Wowza Streaming Engine Manager管理界面中如何配置这些安全相关的功能。
目录
开始
基本的安全功能设置 直播源推流安全设置 播放环节的安全设置 自定义参数(一些高级设置)
开始
在你开始使用Wowza Streaming Engine Manager管理界面时,你必须先确认Wowza Streaming Engine 和Wowza Streaming Engine Manager 管理界面都已经正常启动了。
要了解更多,请参考如何启动和停止Wowza Streaming Engine软件。
- Wowza Streaming Engine Manager管理界面的访问地址是http://localhost:8088/enginemanager。如果你希望远程访问,那么请用IP地址或域名来代替URL中的localhost。
- 首先,登录管理界面。
- 在Wowza Streaming Engine Manager管理界面中,点击页面顶部的Applications,然后再点击live。
注意:
- 这篇文章的中的例子使用的是默认的live应用,它是随Wowza安装后就默认创建的应用,有些安全相关配置同样适用于VOD应用。
- 你每次对配置做了修改后,界面上都会出现下面的提示。建议你把所有配置都设置完毕之后,再去重启应用。
基本的安全功能设置
这个部分介绍了最基本的安全相关功能的设置。
最大连接数限制
在一个应用的基本配置中,有一个最大连接数的参数,用来控制这个应用最多可以接受的连接个数。默认情况下,这个参数是空着的,没有被设置任何值,这表示它没有限制连接数量。- 在管理界面中,点击应用的名字,到这个应用的主配置界面。
- 要改变当前的设置,点击Edit按钮。
- 在Limit number of player connections旁边的复选框打勾,并设置一个最大连接数的数量。
- 点击Save来保存修改,或者点击Cancel回到之前的界面而配置没有任何变化。
注意: 这个设置不会覆盖Server > Virtual Host Setup > Maximum Connections 的设置。 如果这个server级别的参数也做了设置,那么最终有效的设置是那个最小的值。
直播源推流安全设置
在一个应用的基本配置中,你可以为直播源推流设置安全相关参数。
-
在一个直播应用的菜单中,点击Source Security开始对推流设置安全相关参数。默认的设置是对所有推流做认证,但不对推流的直播源设备做认证。
注意: 要管理这个推流认证的用户名和密码,请点击Source Authentication菜单。这个会带你进入server级别的Source Authentication界面,在那里,你可以对用户名密码做添加、编辑、删除操作。 你如果使用了Custom Password File location,那么你必须自己管理用户名和密码。 - 要改变现有的配置参数,请点击Edit.
- 每一个参数下面都有详细的说明,你可以根据自己的需求来设置,然后点击Save来保存设置,或者点击Cancel对参数不做任何改变并回到之前的界面。
RTMP 源
对于RTMP Sources,选择你需要的配置。默认是对所有RTMP推流做认证。注意:这些设置只针对RTMP推流,不影响那些用Stream File启动的直播流。
Open (no authentication required)
无需认证,所有RTMP编码器或者基于FLASH开发具有推流功能的应用程序都可以向这个Wowza应用推流。
Require password authentication
所有RTMP编码器或者基于FLASH开发具有推流功能的应用程序向这个Wowza应用推流时,都需要认证。 从编码器或Flash应用推流时,传递过来的FlashVer必须匹配Flash Version String中的设置。
RTMP publishing not allowed
所有RTMP编码器或Flash应用向这个Wowzay应用推流时,都将被拒绝。
无需认证,所有RTMP编码器或者基于FLASH开发具有推流功能的应用程序都可以向这个Wowza应用推流。
Require password authentication
所有RTMP编码器或者基于FLASH开发具有推流功能的应用程序向这个Wowza应用推流时,都需要认证。 从编码器或Flash应用推流时,传递过来的FlashVer必须匹配Flash Version String中的设置。
RTMP publishing not allowed
所有RTMP编码器或Flash应用向这个Wowzay应用推流时,都将被拒绝。
RTSP Sources
对于RTSP Sources,选择你需要的配置。默认是对所有RTSP推流做认证。注意:这些设置只针对RTSP推流,不影响那些用Stream File启动的直播流。
Open (no authentication required)
无需认证,所有RTSP编码都可以向这个Wowza应用推流。
Require password authentication
所有RTSP编码器在向这个Wowza应用推流时,都需要认证。
RTSP publishing not allowed
所有RTSP编码器在向这个Wowza应用推流时,都将被拒绝。
无需认证,所有RTSP编码都可以向这个Wowza应用推流。
Require password authentication
所有RTSP编码器在向这个Wowza应用推流时,都需要认证。
RTSP publishing not allowed
所有RTSP编码器在向这个Wowza应用推流时,都将被拒绝。
Client Restrictions
下面的设置可以控制哪些IP地址的编码器可以向这个Wowza应用推流。注意:这里的IP地址列表可以是逗号隔开多个IP地址。 你可以使用通配符(*),但是它只能在4段数字代表的IP地址的某一段位完整的使用,而不能用在一个段位的一部分上。 例如 192.168.1.*, 10.*.*.* 是合法的; 而 123.2*.*.* 就是不合法的。
No client restrictions
不限制推流客户端的IP地址。这是默认的设置。
Only allow publishing from the following IP addresses
在这个IP地址列表中的推流客户端在推流时可以不经过正常的认证流程。但在这个IP地址列表中的推流客户端就必须经过正常的认证流程。
Do NOT allow publishing from the following IP addresses
在这个IP地址列表中的推流客户端在推流时都将被拒绝。其它IP地址按正常认证流程走。
不限制推流客户端的IP地址。这是默认的设置。
Only allow publishing from the following IP addresses
在这个IP地址列表中的推流客户端在推流时可以不经过正常的认证流程。但在这个IP地址列表中的推流客户端就必须经过正常的认证流程。
Do NOT allow publishing from the following IP addresses
在这个IP地址列表中的推流客户端在推流时都将被拒绝。其它IP地址按正常认证流程走。
重复的流名字(Stream Name)
这个设置的作用是,当一个编码器推送了一个流到这个Wowza应用,这时候另一个编码器尝试推送了一个同样名字(Stream Name)的流进来时,Wowza就会拒绝这个推流请求。默认是没有启用这个功能(也就说会冲掉前面一个)。Flash Version 字符串
这个参数用于标识RTMP源(可以理解为编码器、推流客户端)。如果你没有设置,将使用下面的默认值:Wirecast/|FME/|FMLE/|Wowza GoCoder*|Lavf/|UA Teradek/|KulaByte/|VidBlaster/|XSplit/很多商业RTMP编码器都会使用上述设置中的一个,因此这个默认设置在大多数时候都是满足要求的。
FlashVer的值会在RTMP客户端发起RTMP连接时被当作参数传递给Wowza,只要能匹配上面的任意一个,都会被Wowza看作为一个RTMP源(编码器或推流客户端)。
VHost-level Flash Version 字符串
在Wowza Streaming Engine version 4.1.0.02 build 12746及后续版本,你可以在Virtual host(VHost) 层面添加这个参数,它将针对于所有Wowza应用。
- 在Wowza Streaming Engine Manager管理界面,点击页面顶部的Servertab菜单,然后点击Virtual Host Setup菜单。
-
在Virtual Host Setup 页面,点击Properties tab 页,然后再Quick Links导航条上点击Custom链接。
- 在Custom区域,点击Edit。
-
点击Add Custom Property, 在Add Custom Property对话框中,按下面设置,然后点击Add.
- 在Path中,选择/Root/VHost。
- 在Name中,输入securityPublishValidEncoders.
- 在Type中,选择String。
- 在Value中,输入Wirecast/|FME/|FMLE/|Wowza GoCoder*/|[myEncoderString]。其中[myEncoderString]是可选择,你可以自己根据需求添加其它RTMP源。
- 在Path中,选择/Root/VHost。
- 在Virtual Host Setup页面,点击Save,然后重启服务器,让配置生效。
在Virtual Host Setup页面中的这个自定义参数会覆盖默认的配置。 但如果你在Wowza应用的Source Security页面上配置了Flash Version String,那么将使用这个配置,而不是VHost层面的配置。
播放环节的安全
在Wowza的直播应用和VOD应用的配置界面,你可以设置播放环节的相关的安全配置。
- 点击Playback Security进入播放安全设置界面。默认情况下,它不会对播放连接做任何限制。
- 要修改当前的配置,点击Edit。
- 每一个配置项下都有详细说明,你可以根据需要调整这些配置,然后点击Save来保存修改,或者点击Cancel放弃修改回到之前的界面。
注意: 如果RTMP连接的FlashVer参数能够匹配Source Security页面Flash Version String中的任何一个,那么这里的安全设置都将被忽略,因为这个连接会被Wowza看作是来自RTMP源,而不是播放器。
Require Secure Connection
如果选择了这个设置,将会导致所有的RTMP播放器必须使用安全的连接协议,例如RTMPS。SecureToken
这个设置是提供了一个安全令牌(security token)机制,播放器发起请求时必须携带这个令牌,然后Wowza会对令牌做识别。 选择SecureToken选项,然后在Shared Secret输入框输入一个密钥或者点击Generate SecureToken Shared Secret来随机生成一个密钥。 这个机制是针对所有播放连接,如果播放器没有携带令牌或者令牌不匹配,则播放连接会被拒绝。在Wowza Streaming Engine 4.1 (及更高版本),你可以选择Protect all protocols using hash (SecureToken version 2)选项,它将使用一个HASH算法来生成安全令牌(security token)来针对所有协议类型的播放连接。 为了向后兼容基于Flash的播放器,你可以单独针对RTMP播放请求使用Tiny Encryption Algorithm (TEA) 算法来来生成安全令牌。 更多细节,请参考在播放Wowza的流时,如何使用SecureToken对播放URL做验证?.
Client Restrictions
这个设置可以让你控制哪些IP地址的播放器被允许连接。注意:这里的IP地址列表可以是逗号隔开多个IP地址。 你可以使用通配符(*),但是它只能在4段数字代表的IP地址的某一段位完整的使用,而不能用在一个段位的一部分上。 例如 192.168.1.*, 10.*.*.* 是合法的; 而 123.2*.*.* 就是不合法的。
No client restrictions
不限制播放器的IP地址。这是默认的设置。
Only allow playback from the following IP addresses
只有在这个IP地址列表中的播放器才能被允许连接,其它IP地址的都将被拒绝。
Do NOT allow playback from the following IP addresses
在这个IP地址列表中的播放器发起的连接都将被拒绝,其它IP地址的被允许连接。
不限制播放器的IP地址。这是默认的设置。
Only allow playback from the following IP addresses
只有在这个IP地址列表中的播放器才能被允许连接,其它IP地址的都将被拒绝。
Do NOT allow playback from the following IP addresses
在这个IP地址列表中的播放器发起的连接都将被拒绝,其它IP地址的被允许连接。
自定义参数(一些高级设置)
下面是一些跟安全相关的自定义参数,请谨慎使用,除非你对它们已经很熟悉了。
SecureToken Target
使用securitySecureTokenTarget参数用来确定,当SecureToken被启用后,受安全控制的是哪一种行为(或者说哪一个环节的)。Path |
Name |
Type |
Value |
Root/Application | securitySecureTokenTarget | String | play,publish,create |
如果这个值Value为空,那么Wowza会在RTMP的connect环节校验安全令牌(Secure Token)。 这个参数可以是下面几个值列表,用逗号隔开即可:
play在所有RTMP连接试图开始播放一个流时进行security token的校验。
publish在所有RTMP连接试图开始推送一个流时进行security token的校验。
create在所有RTMP连接试图开始创建一个流时进行security token的校验。
publish在所有RTMP连接试图开始推送一个流时进行security token的校验。
create在所有RTMP连接试图开始创建一个流时进行security token的校验。
注意:如果RTMP连接中FlashVer参数能匹配Flash Version String中的设置,则这个参数不会起作用。
自定义的用户名密码文件位置
你可以使用securityPublishPasswordFile参数来自定义一个用户名密码文件的路径,用来替代对RTMP推流和RTSP推流做验证的publish.password文件。Path |
Name |
Type |
Value |
Root/Application | securityPublishPasswordFile | String | ${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/publish.password |
默认的设置是使用[install-dir]/conf/publish.password文件来做验证。 当你在Wowza Streaming Engine Manager管理界面的Server > Source Authentication添加用户名和密码时,这些用户名密码将被写入这个文件中。
当你使用自定义的securityPublishPasswordFile后,默认的publish.password文件将不会被使用,你必须自己管理这个文件。
注意:针对RTMP推流,你可以用rtmpEncoderAuthenticateFile参数来定义publish.password文件的路径;针对RTSP推流,你可以用rtspEncoderAuthenticateFile参数来定义publish.password文件的路径。 Wowza Streaming Engine 4.1 软件将首先检查你是否设置了securityPublishPasswordFile参数,如果没有设置这个参数,就会检查你是否设置了这两个参数。
如果你在使用Wowza Streaming Engine 4.0 软件,你必须用securityPublishPasswordFile参数定义的用户名密码文件来对RTMP推流做认证,并使用rtspEncoderAuthenticateFile参数定义的用户名密码文件来对RTSP推流做认证。
如果你在使用Wowza Media Server 软件,你必须使用rtmpEncoderAuthenticateFile 和 rtspEncoderAuthenticateFile 参数来定义publish.password文件的路径,用来对推流做认证。
要了解更多这几个参数的细节,请参考How to enable username/password authentication for RTMP and RTSP sources.