Securing network traffic with SSH

When behind a corporate firewall or even if you are on a wide network its nice to know the information you send onto the outside world is secured and even better if its encrypted. Generally speaking all passwords for email, chat, etc is all passed through the network as text nothing more nothing less. This makes it very easy for others on the network to sniff out your password and provide an easy access to identity theft. To make things more secure you can use a external linux machine to forward any information throught the corportate firewall as encrypted information and can even use that linux machine as the source for web browsing

Requirements:
-Linux box running a ssh server
-SSH client on the workstation that supports tunneling
-Having a port available on the firewall to forward everything through


Currently your network setup will probably be like this



Step one: Install the ssh server
This may vary depending on the linux distribution but on ubuntu and other debian based systems its a matter of going into a terminal window and typing as root: apt-get install ssh
For other distributions please consult your package management system


Step two: Install ssh client
There are many ssh clients for windows out there the top two I can recommend are winscp (http://winscp.net/eng/download.php) and pc-tunnelier (http://www.bitvise.com/download-area). The key note here is that it not only must connect to a ssh server but provide tunneling as well. Once installed try to connect to your linux box on the other side of the firewall if you cannot you are probably being blocked within the corporate network; and in a very nice way talk to your networking people about it.


Step three: Establish a connection
In the SSH client create a new connection to the linux box, find an open port and forward all traffic to port 22 (default port for SSH)


Step four: Socks arent just for your feet
After the details of the conection/tunnel has been set in the client SSH software go to where it allows you to create a socks proxy and remember or specify a port to run it on


Step five: Configuring chat program/web browser
Configure your chat/web/net software to use the proxy/socks server you have just created in the last step. Most likely you can use localhost or 127.0.0.1 for the address of the proxy/socks server. Some software will take either or, some others need one of them and wont accept the other. After you entered the hostname enter the port you used from step four.


Your network setup will (if properly set up) be like this



Step six: Testing
Once you have the ssh server up and running, the client ssh program and the socks server up and running AND CONFIGURED PROPERLY its time to test. Connect to your linux box and fire up your chat/web browser that you configured to the socks server. If you disconnect the ssh client and your chat connection dies its working, if it stays connected its not goign through the ssh tunnel and still using the old network path. Most likely these scenarios are caused by configuration problems and inproper setup. It may also be caused by wrong port number; not all program will accept the default socks port and you might have to get creative and pick your own. Recheck your settings and try again.