Skip to content

openziti/zitify

Zitify

What is it?

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.

Try Zitify

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.json

Zitify curl!

zitify -i my_id.json curl http://httpbin.ziti/json

Hosting example

Assume 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 1111

How it Works

zitify 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.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 5