A simple TAK server and COT router
Project description
taky
taky - A simple COT server for ATAK
Features (and anti-Features!)
- Should support multiple ATAK clients simultaneously! You can see them on the map!
- GeoChats are routed to appropriate groups / UIDs, unless broadcast!
- SSL support with optional client keys!
- Some design consideration for XML security!
- Actually somewhat decent CoT routing uses Marti for other items. If unspecified, packets are considered broadcast.
- A hacked up XML parser written by someone who barely understands XML!
- Advanced Pythonic implementation of CoT model, with only 5 hours of combined industry experience in implementing CoT technology!
- Server shuts down with only one Ctrl+C!
- Does not require root to run!
- Thread safety? Where we're going, we don't need threads!
- Slightly less-than-broken Data Package Server
- Requires no SQlite / databases! (For now!)
- Only one version away from having systemd scripts!
- Tools spit backtraces out instead of giving a nice error message!
- Stupid fast for no good reason! Routes 1000 packets / second on an old Core i5-2500k!
Requirements
- Python 3.6 or greater (strongly recommend 3.7+)
- lxml
- dateutil
- flask
- pyopenssl
- gunicorn
This application was developed with Python 3.8 on Ubuntu 20.04, and tested with ATAK v4.2.0.4. It is slowly progressing towards a beta state, and should work for playing around.
But, really. Using this is for anything important is probably a very-bad-idea (TM).
Installation
Open a shell, and run:
$ git clone https://github.com/tkuester/taky
$ cd taky
taky $ python3 setup.py install
Alternatively, you can use pip!
$ python3 -m pip install taky
Usage
$ 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
More Complicated Setup
While taky
can run as a standalone CoT server, there are more advanced
features that are available if the server is fully setup. Fortunately, there
is a simple tool to make this easy! You don't even need root!
The only thing needed is your public IP address. The rest is configured automatically for your convenience.
$ takyctl setup -h
usage: takyctl setup [-h] [--p12_pw P12_PW] [--host HOSTNAME] [--bind-ip IP] --public-ip PUBLIC_IP
[--user USER] [--no-ssl]
[path]
positional arguments:
path Optional path for taky install
optional arguments:
-h, --help show this help message and exit
--p12_pw P12_PW Password for server .p12 [atakatak]
--host HOSTNAME Server hostname [devbox]
--bind-ip IP Bind Address [0.0.0.0]
--public-ip PUBLIC_IP
Public IP address
--user USER User/group for file permissions
--no-ssl Disable SSL for the server
$ takyctl setup --public-ip 192.168.1.100 my_install
$ cd my_install
my_install $ taky
# (in another window, we'll start the data package server)
my_install $ taky_dps
Taky will automatically find the config file located in my_install
, load the
SSL certificates, and start running. You can find user uploaded data packages
in my_install/dp-user
.
If you are using SSL (highly recommended!), it is simple to generate client certificates in a zip file for the import manager. You can also run this through the CLI tool.
my_install $ takyctl build_client -h
usage: takyctl build_client [-h] [--p12_pw P12_PW] name
positional arguments:
name Name for client
optional arguments:
-h, --help show this help message and exit
--p12_pw P12_PW Password for server .p12 [atakatak]
my_install $ takyctl build_client JENNY
Transferring the .zip file to your device is an exercise left to the reader. (Although, we hope to have this as a feature eventually!)
This "installation" is local, and can be edited to your hearts content. When you are done, you can simply delete the folder and start again.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file taky-0.6.tar.gz
.
File metadata
- Download URL: taky-0.6.tar.gz
- Upload date:
- Size: 29.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60ff3d9a225c2f20b894708f7376f146d96b4beeea10fc08fabd20477cfd71d9 |
|
MD5 | d9b4f937b7886d33611000051ed51577 |
|
BLAKE2b-256 | 0de8d159ee719816df7739b8b23920e6c18eb50d75e1a864ca04c4a1ca13f2d1 |