Mysterium Network is a decentralized network of computers that provides proxy services. It runs on the polygon blockchain and uses MYST token. Here is how you can set it up as a proxyvm.
Install qubes-core-agent-networking
download the dpkg myst_linux_amd64.deb from github. Install with ‘dpkg -i myst_linux_amd64.deb’. Install dependencies with ‘apt install -f’.
Because we are only using the client and not running a node disable the node service and start the consumer service
systemctl mask mysterium-node && systemctl enable mysterium-consumer
also edit the defaults for myst service in /etc/default/mysterium-node
Define additional args for myst service (see myst --help for full list)
CONF_DIR=“–config-dir=/etc/mysterium-node”
SCRIPT_DIR=“–script-dir=/etc/mysterium-node”
RUN_DIR=“–runtime-dir=/var/run/mysterium-node”
DATA_DIR=“–data-dir=/var/lib/mysterium-node”
DAEMON_OPTS=“–log-level=disabled --ui.enable=false --firewall.killSwitch.always --keystore.lightweight --consumer”
SERVICE_OPTS=“”
go to /usr/lib/systemd/system/mysterium-consumer.service and comment out Requires and After network-online.target. This makes the service start after boot it doesn’t have to wait.
add to rc.local in proxyvm
echo ‘nameserver 9.9.9.9’ > /etc/resolv.conf
python3 /usr/lib/qubes/qubes-setup-dnat-to-ns
overriding the dns 9.9.9.9 is used since it is widely used and ends up to be around the same location as the proxy
installing myst also installs the myst cli.
To register an identity you will need MYST token on the polygon network. Make sure to send it to the Channel address of the identity and not the identity itself
identities new (password)
identities unlock 0x… (password)
identities register 0x…
identities get 0x… (this is where you can see the channel address)
the file where your identity is saved in is in /var/lib/mysterium-node/keystore this file must be moved to the templatevm to be preserved.
I have also provided some scripts to better integrate here. connect-myst should be moved to bin in sys-myst. the files in qubes-rpc/appvm should be moved to /etc/qubes-rpc in sys-myst. myst.Notify should be moved to /etc/qubes-rpc in dom0.
the python scripts expect a python virtual environment. To install:
python -m venv ‘.venv’
source ‘.venv/bin/activate’
pip install -r requirements.txt
this allows other qubes to start a connection or connect to a specific provider or get connection details. also enables notifications since it takes a while to connect.