How to use sshuttle on a router running openwrt?

Luckily I got an answer at the sshuttle google group from the author of sshuttle. He wrote:

You might need to add '-l' (that's a lowercase L) in order to tell sshuttle to listen for connections from other than localhost (the router itself). For security reasons, sshuttle won't route other people's traffic by default.

And it works perfectly! Use:

./sshuttle -l --dns -vvr [email protected] 0/0

A few things that tripped me up:

From stock OpenWRT 12.09 AA, you have to install these packages:

  1. python (with dependencies, consumes 3-4 MB of flash)
  2. iptables-mod-nat-extra
  3. iptables-mod-ipopt

Then, to SSH into the remote server using an SSH key, you have to create a Dropbear-format key:

dropbearkey -t rsa -f /root/.ssh/id_rsa

And finally, provide the key location on the sshuttle command line:

./sshuttle -e "ssh -i /root/.ssh/id_rsa" -l -r [email protected] 0/0 -vv --dns