我们有一个webtc视频流,它使用我们自己托管的COTURN服务。https://github.com/coturn/coturn版本号Coturn-4.5.2 'dan Eider'
流来自内部设备,并通过网页应用程序呈现给用户。
web页面应用程序为用户提供访问COTURN服务器的用户名和密码。
使用Stunner (https://github.com/firefart/stunner)可以使用提供给用户的所有数据(在正常操作期间)连接到COTURN并设置socks代理服务器。
./stunner socks -s x.x.x.x:3478 -u username -p password -x
配置文件如下所示。
fingerprint
listening-ip=0.0.0.0
external-ip=x.x.x.x
listening-port=3478
min-port=10000
max-port=20000
#no-udp
no-tcp
no-tls
no-dtls
no-cli
log-file=/var/log/turnserver.log
verbose
no-multicast-peers
no-loopback-peers
denied-peer-ip=127.0.0.1
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
user=name:password
lt-cred-mech
我们看到的问题是,我们可以停止socks服务器处理流量,但我们不能阻止人们首先设置服务器。
no-tcp
停止了流量,但仍然允许创建socks,但no-udp
停止了创建,但也停止了系统的正常运行。
即使使用动态用户创建和认证系统,我们仍然需要向用户提供连接到COTURN服务器的详细信息,他们仍然可以滥用它(我们可以看到谁在滥用它)
配置文件中是否缺少阻止socks漏洞的设置,或者no-tcp
是否足够好,他们仍然可以使socks服务器他们只是不能使用它太多?
也与udp访问仍然开放,以允许webtc流这是可利用的袜子?
尝试将服务置于某种形式的网关服务之后,并设置防火墙规则,仅允许从该网关到coturn服务的流量。然后让网关充当一种中继,将必要的连接信息传递回客户端。