/morphis

Mirror of morphis. https://morph.is

Primary LanguagePythonOtherNOASSERTION

-=-=   MORPHiS (c) 2014-2015  Sam Maloney (sam2015@morph.is)   =-=-

Version: 0.8.16 - Developer Preview Release

License: GPL v2 for everything except for some files LGPL, and some public domain. See the LICENSE file for complete details.

I have done this, released the asyncio SSH protocol code as LGPL so that it may be used by the broader Python community. I am willing to donate it fully to the Python Software Foundation itself so they may incorporate it into the standard library if wanted. See client.py for a simple example of how dead simple my asyncio SSH library is to use.

-------------------------------------------------------------------------------

Maalstroom: morphis://sp1nara3xhndtgswh7fznt414we4mi3y
Web: https://morph.is

-------------------------------------------------------------------------------

NOTE

This is a developer preview release. As such, it may not work well in your exact setup. It is fully functional however. Any problems that you have, suggestions, Etc., I am happy hear.

-------------------------------------------------------------------------------

INSTRUCTIONS

Dependencies:
    Python >= 2.4.1, PyCrypto (2.6 tested), sqlalchemy (0.9.8 tested).

NOTE: SqlAlchemy 0.9.8 does have a bug and thus you should use the latest, 1.0.8 if you can.

NOTE: If your system does not include packages for the above dependencies, then use pip3.4 to install them. Do not use pip, because that will only install the Python 2 versions. Example: "pip3.4 install sqlalchemy".

To run, execute the following:

> ./run.sh

Or:

> python3 node.py

To get some help, try:

> python3 node.py --help

WARNING: If you are running on a shared host, you really should run with the shell disabled:

> python3 node.py --disableshell

NOTE: That will prevent the mcc.py commandline tool from working as well. I will fix that later by having it ssh key based authentication for shell connections.

WEB UI:
-------

Then simply point your web browser to http://localhost:4251.

I recommend using the MORPHiS firefox plugin that will be listed on the front page when you hit localhost:4251. (ANY DEVS THAT CAN HELP WITH THIS DEAD SIMPLE PLUGIN WILL BE SUPER APPRECIATED!)

You can also use curl or wget:

Download: curl http://localhost:4251/<whatever_key>
Example: curl http://localhost:4251/sp1nara3xhndtgswh7fznt414we4mi3y

Upload: curl --data-binary @somefile.ext http://localhost:4251/.upload/upload

SSH CONSOLE UI:
---------------

Simply type:

ssh 127.0.0.1 -p 4250

And you will get the interactive console.

Or you can pass the command through the ssh command:

ssh 127.0.0.1 -p 4250 ?

NOTE: You must type 127.0.0.1. Usually localhost resolves to ::1 which I will add later but right now MORPHiS ONLY allows shell connection from 127.0.0.1.

NOTE: You will need to have an RSA key setup for your ssh. It doesn't mater what the key is for now (later it will support key pinning). To generate a key, type: ssh-keygen -b 4096

MCC COMMAND LINE UI:
--------------------

Just type:

python3 mcc.py --stat

NOTE: This client is not up to speed. The WEB UI is the most mature by far as I did it last and most people will be using it so it made sense to have it the one ready for this first release. I will bring the other 2 interfaces up to speed and they will always be fully supported as up to speed, all 3.

Tor
---

MORPHiS was designed from the beginning to not leak information and to be used over Tor!

I still have to add SOCKS support, but I recently found a good library for that so it will come very soon.

However, until then, you can use proxychains to run MORPHiS over Tor!

proxychains python3 node.py

It has been tested and it works great. It also works over torsocks if you --dm (disables the web UI). There is a bug in torsocks that causes torsocks to segfault on startup if you do not disable Maalstroom (--dm). I debugged it and will be able to submit a patch to the Tor project so they can fix it.

-------------------------------------------------------------------------------

Contact (d-mail): samzu1ctt7kscitkrt5jft91gtw5c1i6 :)
Contact (e-mail): sam2015@morph.is :(