Zitify is a script for Linux that wraps execution of your existing program and enables it to connect to Ziti Services. It brings app-embeded Ziti without any code changes.
Download the latest release and extract it into a directory on your $PATH
Acquire an enrollment token from ZEDS
Enroll (assume your file is my_id.jwt). Python is required to execute the enrollment command:
zitify enroll -j my_id.jwt -i my_id.jsonZitify curl!
zitify -i my_id.json curl http://httpbin.ziti/jsonAssume you have host.json ziti identity that has bind permission to cool-service.
You can bind your application to that service
like this:
zitify -i host.json -b 5555:cool-service ncat -l 5555-b option configured a binding override, in the above example application trying to bind to port 5555
will actually bind to cool-service on the OpenZiti network.
If that service has an intercept address (like tcp:cool.service.ziti:1111),
then you can connect to it with zitify-ed client and an identity(client.json) allowed to dial your service.
zitify -i client.json ncat cool.service.ziti 1111zitify is a shell script that employs the LD_PRELOAD trick (refer to man 8 ld.so) to override a handful of networking-related functions from the GNU C standard library (glibc), e.g., getaddrinfo(), getnameinfo(), and connect() for dynamic executables.
Statically-linked binaries, like Go programs, and programs that do not link to libc.so (check links with command ldd EXECUTABLE), will not work with this tool.
See BUILD.md for instructions on building zitify from source.