Project

fenris

0.0
No commit activity in last 3 years
No release in over 3 years
An authentication and service location service.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.12.10
>= 1.0.3
>= 1.6.7
 Project Readme

Fenris - a VPN for cloud services

This tool is designed for allow for secure service discovery, authentication, and communication between any TCP services. Modern TCP services frequently have many different ways of implemented autnetication with different levels or quality. This service is an attempt to unify these with a single simple autentication layer.

Sample Workflow

In an example workflow you would first want to create two subaccounts. One to be a service provider and one to be a service consumer. Assume for this my master account is named 'demo'. At any point you can type

fenris info

to see what user you are logged in as. And what other users you are connected to.

fenris useradd consumer
  New user created 'demo-customer'

fenris useradd provider
  New user created 'demo-provider'

Specify a user with either the -u command line switch or the FENRIS_USER environment variable.

Next assume I want to provide access to a memcache daemon running on port 11211 to the consumer.

fenris -u demo-provider add demo-consumer

This gives 'demo-consumer' access to my service. I can revoke his ability to use the service later with

fenris -u demo-provider remove demo-consumer

To provide access with a fenris daemon simple do

fenris -u demo-provider provide 127.0.0.1:11211

Note that by default fenris will attempt to provide access to other fenris nodes by listening on your HOSTNAME:10001. If you need a different port or if hostname does not match a resolvable IP you can use --host and --port switches to specify another bind point.

fenris -u demo-provider --host 0.0.0.0 --port 8888 provide 127.0.0.1:11211

Now as the consumer...

To securly mount the provided memcache on local port 9999 you can type

fenris -u demo-consumer consume demo-provider 127.0.0.1:9999

Or if you bind it to a default port which is useful for consuming multiple providers at once.

fenris -u demo-consumer bind demo-provider 127.0.0.1:9999
fenris -u demo-consumer consume

Setup

gem install fenris

One important dependancy of fenris is eventmachine compiled with TLS support. Without this it will not be able to manage a proxy. You will have a fenris username and authtoken. Simple set the environment variable

export FENRIS_USER="myuser"

And you will be prompted for the authtoken the first time you run the command.

How it Works

How it works