I'm currently stuck behind a firewall at my college, and I would like
to experiment with using various Linux utilities to tunnel connections
through the firewall.
I've been discussing this with a friend online for some time. I'm
going to set up a box running Debian GNU/Linux at another friend's
house and borrow a bit of their bandwidth. (I have the go-ahead from
her folks.)
Here's the setup I'm trying to accomplish. Hereafter, "my computer"
refers to the computer at school, running WinXP, behind the firewall;
"Linux box" refers to the computer running Debian GNU/Linux outside
the firewall.
- My computer would establish some sort of connection with the Linux
box over an open port such as 22 or 80.
- The box would then forward the connection to the internet, receive
the response, and send it off to my computer.
- Essentially, the Linux box would act as a proxy for my computer's
connection to the internet. Not quite what an actual proxy would be,
but it serves its purpose.
I can think of a few solutions to this problem:
1) SSH to the box using a client such as PuTTY, use dynamic port
forwarding (let's say for port 8888), point programs on my computer to
a SOCKS5 proxy at 127.0.0.1:8888. Since SSH cannot natively tunnel
UDP, I would also run an instance of netcat on my computer, which
could tunnel UDP over TCP and through the SSH tunnel. (This method
has worked before when I tested it with a connection to another
friend's Linux server, but I was unable to get netcat working the way
I wanted with UDP connections.)
2) Set up netcat on both my computer and the box to create some sort
of tunnel on an open port.
3) Set up a full-blown proxy server on the Linux box, accepting
connections on an open port. No idea if I can actually do this,
though.
4) I dunno, any other ideas? My head hurts.
I suppose the tough part would be setting up the necessary programs to
create this proxy. Netcat is rather advanced and I can't find the
right documentation to do what I want to do with it. I'm sure there's
a very easy solution to what I want to do and I'm going to look dumb
when someone tells me, but that's life.
Any and all help is appreciated.
|