FMO (NFM Over Internet) 语音服务器搭建指南

什么是JWT

1

 

JWT(JSON Web Token)是一种开放标准,如果您对jwt非常感兴趣,可访问 jwt.io 学习关于jwt的更多知识。在此我将以简易的说明,讲述2.0和3.0区别:

用户视角的FMO 2.0.0授权机制:您的FMO收集大家在aprs上分发的用户名密码,然后您的fmo使用用户名密码登录的大家的服务器。

用户视角的FMO 3.0.0授权机制:您的FMO收集大家分发在aprs上的Secret,然后您的fmo打包您的个人信息,使用Secret利用签名算法将您的个人信息签名,组装成临时登陆令牌,并用该令牌登陆大家的服务器。

在3.0.0机制下:服务器登录日志里记录的,将不再是无法识别的设备来源,而是各个设备独一无二的呼号和您的唯一标识;此外,服务器的关键信息将仅在fmo设备内部被处理,从协议层面杜绝了用户查看服务器密码的可能,大大减少了暴露风险。另外过期机制将保证即使密钥泄漏,对方也无法长时间利用您的密钥进行破坏。

我们强烈建议用户尽快升级3.x.x 版本服务器,以带来更好的安全性。

FMO如何广播

FMO采用“代理广播”的方式广播爱好者所搭建的MQTT Broker。具体原理可访问aprs.org: 《Build a High-Speed Data Exchange HamNet Based on APRS-IS》 By BG5ESN 了解FMO的广播工作原理。

详细操作说明

STEP1: 安装

FMO使用MQTT Broker进行数据交换,我们建议您安装EMQX的MQTT Broker(或Mosquito附带JWT插件版本),您可以根据自己的需求选择合适的MQTT Broker进行搭建。在这里我们简述如何使用EMQX版本进行安装。 访问

EMQX官网

按照官方文档进行安装和配置。确保您的MQTT Broker能够正常运行,并能够接受来自FMO设备的连接。

提示 EMQX的docker版本在您重启容器后,会恢复默认18083登陆端口的登陆信息,该部分可能有安全隐患,请仔细确认后使用。

STEP2: 生成Secret

启动您的FMO,点击[菜单]->[凭证],如果此时Secret内为空,您可以[长按]旋钮,以生成一个完整的Secret。该Secret由大小写字母+数字组成。长度共32自字节(256bit)。由于生成的Secret非常长,为了方便大家获取,这里提供了一个快捷方法用以快速复制此处长串的Secret, 请访问fmo后台配置网页(fmo.local或ip地址直接访问),进入[参数设置],找到[服务器设置]章节。在此处,您可以找到Secret复制相关操作说明,请按照操作,并复制Secret。

STEP3: 设置EMQX服务器

  • 登陆您的MQTT 18083端口 进入后台设置。
  • 点击左侧竖栏->[客户端认证],进入客户端认证设置界面
  • 在客户端认证设置界面,点击右上角 [+创建],认证方式选JWT,并点击下一步
  • 数据源无需选择,点击下一步
  • 配置参数页面,按照下述参数进行配置
    选项
    JWT来自于 password
    加密方式 hmac-based
    Secret 在此处粘贴您在STEP2所获得的Secret
    Secret使用base64编码
    过期后断开连接

Payload是用来设置特殊的用户绑定,这里可以对授权进行二次验证。我们点击[添加]并增加以下2个参数

Claim Expected
cid ${clientid}
call ${username}

说明:这里使用了verify_claim技术,verify_claim可一让指定的jwt字符串和用户所登陆的参数进行一比一绑定。

ℹ️主题安全性说明:FMO在出厂时即通过ACL,在fmo的jwt中遇先规定了登陆权限,所以您无需再在服务器上设置相应登陆权限。如果您有更强的安全性要求,可以按照您的需求自行设置主题安全性。

STEP4: 设置并广播服务器信息

FMO内置了一个网页,您可以通过该网页配置需要广播的信息。请严格按照网页的指导说明进行配置即可。 通常来说需要配置如下内容

配置项 说明
自定义服务器地址 可以是IP或域名,需要直接指向您的服务器地址
自定义服务器端口 常规非加密端口为1883,需要直接指向您的服务器地址
APRS PASSCODE 这是您登录APRS的密码,可以在APRS官网申请
服务器名称 这是您服务器的名称,支持中英文,设置后,会显示在您的FMO上
APRS个性化消息 这是您可以自定义的APRS消息内容,便于在网络中识别您的设备
服务范围 您可以规定您的服务器所覆盖的范围

当您配置完毕后,您应当可以在自己的服务器列表中看到您自己的服务,首先请尝试登陆您的服务器。如果登陆失败,请仔细检查设置。 如仍然无法解决,可在群内进行沟通咨询(我们不提供服务器相关技术支持,需要您自行研究)。

请确保您的服务器属于活动状态(活动状态:您登陆于自己的服务器,并在24小时内,服务器上有活动语音)。然后在十分钟内,您的fmo将开始您服务器的第一次广播。

至此您的FMO服务器已设置完毕。来源网络

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容