SSH reverse tunnel daemon
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with aphyr:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Tund (tunneling daemon) establishes a reverse SSH tunnel from some publically
accessible computer to your own. In the event of theft or loss, you can log in
to your machine as soon as it connects to the internet.

It's also useful for machines behind a NAT you'd like to have a tunnel to.

You need two computers: the local host (say, your laptop), and the remote host,
which is on the internet. Tund will use SSH forwarding to connect a port on the
remote host to a port on the local host. You can then ssh -p <some-port> to access your local host.

First, edit the options in bin/tund.

Install tund and generate a passwordless SSH keypair. I've included an upstart
setup script for you, which should work on Ubuntu.

  local$ sudo bin/setup

Create a user on the remote host
  remote# adduser --disabled-password --shell /bin/false tunnel
  remote# cd ~tunnel
  remote# rm .bash* .profile

On the tunneling host, create .ssh/authorized_keys
  remote# mkdir .ssh
  remote# $VISUAL .ssh/authorized_keys

and paste the public key into that file.

Lock down the user's homedir
  remote# chown -R tunnel:tunnel ~tunnel
  remote# chmod 400 .ssh/authorized_keys
  remote# chmod 500 . .ssh

Confirm that you can establish a tunnel:
  local$ ssh -vgN -i etc/tund/key -R 2222:localhost:22

You can re-run bin/setup any time to make changes.

I suggest leaving a honeypot account available on your local machine. It will
encourage laptop thiefs to use the machine as-is. When they connect it to the
network, you'll be able to recover it. Conversely, any user capable of running
a privilege escalation attack has already won, when physical access is