Skip to main content

一个简单的 TAK 服务器和 COT 路由器

项目描述

塔基

taky - ATAK 的简单 COT 服务器

Python 皮林特 覆盖范围 派皮

特征(和反特征!)

  • 设计时考虑到安全性!

    • 具有客户端密钥的一流 SSL 支持!
    • 数据包服务器需要客户端密钥!
    • XML 安全性的一些设计考虑!
    • 不需要root即可运行!
  • 轻量级 COT 路由器和数据包服务器

    • 整个shebang只有~2k SLOC!
    • 同时支持多个ATAK客户端!你可以在地图上看到它们!
    • 实际上有点像样的 CoT 路由,有 Marti 支持!
    • 一个几乎不懂 XML 的人编写的被破解的 XML 解析器!
    • CoT 模型的高级 Pythonic 实现,在实现 CoT 技术方面只有 5 小时的综合行业经验!
  • 设计、使用和配置的简单性

    • 服务器只用一个 Ctrl+C 就关闭了!
    • 线程安全?我们要去的地方,我们不需要线程!
    • 用于生成 systemd 服务文件和客户端密钥的便捷 CLI 实用程序!
    • 同步 I/O 多路复用的高级用法避免了time.sleep
    • 无缘无故的愚蠢快!在旧的 Core i5-2500k 上路由 1000 个数据包/秒!
  • 杂项

    • 可选的 redis 支持的对象持久化存储!
    • DPS 没有数据库!只是普通的旧文件存储!
    • 经测试可在 Ubuntu 和 CentOS 上轻松部署!

寻找深入的功能比较?

要求

  • Python 3.6 或更高版本
  • lxml (BSD)
  • dateutil (Apache 2.0 / BSD 3-clause)
  • 烧瓶(BSD 3 条款)
  • pyopenssl (Apache 2.0)
  • 独角兽(麻省理工学院)
  • 雷迪斯(麻省理工学院)

此应用程序是在 Ubuntu 20.04 上使用 Python 3.8 开发的,并使用 ATAK v4.2.0.4 和 WinTAK 进行了测试。它现在处于 beta 状态,甚至已经在 CentOS 8 docker 镜像上进行了测试!由于该软件包在 pip 上可用,它应该可以在大多数现代 linux 发行版和 docker 容器上运行!

安装

要安装最新版本,请从 pip 安装。打开外壳并运行:

$ sudo python3 -m pip install taky

如果您更喜欢开发版本(并不总是稳定的),您可以从源代码安装它。

$ git clone https://github.com/tkuester/taky
$ cd taky
taky $ python3 setup.py install

用法

开箱即用,无需配置,您可以构建一个简单的 COT 服务器,供您和您的朋友通过 TCP 使用!

$ taky -h
usage: taky [-h] [-l {debug,info,warning,error,critical}] [-c CFG_FILE] [--version]

Start the taky server

optional arguments:
  -h, --help            show this help message and exit
  -l {debug,info,warning,error,critical}
                        Log verbosity
  -c CFG_FILE           Path to configuration file
  --version             show program's version number and exit

# Run taky on 0.0.0.0:8087
$ taky
INFO:root:taky v0.7
INFO:COTServer:Listening for tcp on :8087

部署 Taky

Taky 的编写考虑了易于管理。它应该易于安装、升级、构建(和运行)多个实例,使用 systemd 脚本进行管理,并遵守标准的 Linux 服务组织和包管理。此外,与操作系统无关。这在 Fedora 上应该和在 Ubuntu 上一样容易设置——尽管说明是为 Ubuntu 编写的。

请参阅文件夹中的 README_QUICKSTART.md 指南/doc以启动和运行!有关更高级的设置,请查看 README_DEPLOYMENT.md 文件!

发展状况

就“独角兽测试准备水平”而言,taky并不是高传承的太空独角兽。我们在 TRL 5 和 6 之间。马在外面,我们暂时称它为独角兽。用户报告说,它 taky在 ANW2C 网络、L3Harris 无线电上运行良好,毫无怨言地传递了自定义的 COT 消息,甚至发现与联军在战场上的部署很糟糕!

COT 服务器是代码库中最成熟的部分。虽然一些更深奥的配置尚未经过测试,但标准 SSL 设置似乎相当可靠,并且在重负载下表现良好。话虽如此,XML 解析器存在已知的内存泄漏,但尚未解决。

数据包服务器 (DPS) 开始成熟,但尚未经过广泛测试。简单的客户端到客户端和客户端到服务器的传输似乎运行良好,尽管视频和发布轨道等一些功能尚未实现。

总而言之,taky是作为一种爱好编写的实验性软件。您可以随意使用它,但请认真考虑各种故障模式,并在服务失败时制定应急计划,尤其是在生命、福祉或安全受到威胁的情况下。

请随时查看里程碑页面,了解下一个版本的 taky 计划! 欢迎请求请求和问题!

已知的问题

目前,taky 有两个已知问题。第一个是由 XML 解析器库引起的内存泄漏。除非 LXML 为其解析器编写修复程序,否则此问题可能无法解决。这意味着在几天内,内存使用量taky将膨胀到过大,可能导致不稳定。

此外,OpenSSL 默认设置的更改(在 Ubuntu 22.04、OpenSSL 3.0.2 中可见)当前导致客户端证书被 ATAK 拒绝。ATAK 已经记录了一个关于此的问题,并且正在计划更新证书生成以使用旧的默认值生成证书。

塔基标志

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

taky-0.8.4.tar.gz (160.1 kB 查看哈希

已上传 source