FlashCom Server的安全对于应用程序来说很重要,虽然还不致于和PHP、ASP服务器端的安全一样,毕竟目前服务器端的操作功能还有限。 我们知道,给服务器配置防火墙是较为常用的服务器端安全防范措施,而且也是行之有效的方法。我们会来分析FlashCom Server如何配合防火墙来进行安全保护。 默认的FlashCom服务端口是1935,这就意味着FCS服务器IP地址的1935端口必须设为开放状态,下面的图示表示了不同的连接情况。  图1 没有任何防火墙的远程直接连接  图2 防火墙没有开放1935端口的连接情况  图3 防火墙允许1935端口的连接情况 你还可以配置FlashCom Server接受1935以外的端口,这只需修改配置文件Adaptors.xml 中的 项,例如下面的配置可以允许FCS服务器接受来自1935, 8080, 443 和 80端口的RTMP访问。
- <HostPort>:1935, 8080, 443, 80</HostPort>
如果同一服务器上有其它服务在运行,并使用了相同的端口,请不要配置这些端口。 FlashCom 的默认管理端口是1111,更改管理员端口是一个好的建议,如果不想这样,可以在配置文件Server.xml中修改 和 项。 最常见的WEB服务端口是80HTTP端口和443HTTPS端口,8080一般用作HTTP服务的备用端口,最简单的1935端口的解决方法是设置FCS服务器接受80和443端口(假设没有其它占用),为了监听1935, 443和 80 端口,可以配置Adaptors.xml文件如下:
- <HostPort>:1935, 443, 80</HostPort>
如果要指定某个IP的端口访问,可以用
- <HostPort>XXX.XXX.XXX.XXX:1935, 443, 80</HostPort>
许多情况下,你可能要穿越多个防火墙甚至使用HTTP通道,但是这样仍然可以正常工作,因为NetConnection对象已经支持该特性。当你使用RTMP协议的时候没有指定端口号,Flash会尝试使用1935端口,如果失败则会尝试443端口,如果仍然不行,就使用80端口最后尝试。 看下面的连接代码:
1 : nc.connect( 'rtmp://host.domain.com/myApp/myInstance' );
为了更好的使用FlashCom服务和安全性考虑,有如下建议: 1. 在同一台FlashCom服务器上不要使用WEB服务 2. 如果需要请配置Web服务和FlashCom服务不同的IP地址 3. 配置你的Web服务只使用443或8080端口,80端口留给FlashCom 另外一个方案是配置FlashCom服务接受8080端口,连接方式修改为
1 : nc.connect( 'rtmp://host.domain.com:8080/myApp/myInstance' );
当指定了端口号后,Flash只会尝试指定的端口访问。 除了rtmp协议之外,FlashCom1.5和FlashPlayer 6,0,65,0之后还支持rtmpt协议
1 : nc.connect( 'rtmpt://host.domain.com/myApp/myInstance' );
使用rtmpt协议的时候,我们无须指定端口,Flash会使用80端口连接。其实我们无须使用rtmpt协议,因为默认的rtmp连接方式也会尝试该种方式的连接。
1 : nc.connect( 'rtmp://host.domain.com/myApp/myInstance' );
当我们使用上面的连接代码的时候,系统会自动按照下面的顺序使用端口和协议。
- 1 1935 RTMP
- 2 443 RTMP
- 3 80 RTMP
- 4 80 RTMPT
 |