The Challenge
So you’re at work and your corporate firewall restricts all outgoing traffic except for http/https (port 80/443) and you want to remote desktop to your PC at home. What can you do? The simple solution is to use a software such as Teamviewer, Logmein or GotoMyPC. By installing the server software on your home PC and the client on your machine at work, you can establish a remote session on port 80 and 443 to your home PC!
What if you can’t or don’t want to install these remote softwares?
Well Microsoft’s remote desktop client is installed natively on your Windows 7 desktop. At home, you can setup something called “Port Forwarding” on your home firewall to forward port 80 or 443 to 3389 which is the port that remote desktop listens on. Once your router is setup, simply launch your remote desktop client and connect to your PC on port 80.
Home-router-ip:80
Added twist: What if your ISP blocks port 80 and 443?
Alright, this is getting tougher. So you can’t install Teamviewer on your work PC and your ISP blocks incoming port 80 and 443 so that you cannot just simply forward those ports to 3389 using your router.
The solution: You’re going to need a Linux Server that is outside of your home network to act as your jump server to tunnel your traffic
1. Get yourself an Amazon EC2 cloud Linux instance. The free tier micro instance is all you need.
2. Once you have your instance launched, login to your server and as root, create a new user and setup a password
useradd newuser passwd newuser
3. edit the /etc/ssh/sshd_config file
4. Set Password authentication to Yes. So you are not required a certificate to login.
PasswordAuthentcation yes
5. Next in the same file, set the Listening Port to 80 (Remember, you can’t SSH to your Linux box on port 22)
Port 80
6. Save the file and restart the sshd server
service sshd restart
7. Next, download putty, which is a free ssh client. Which I assume you are allowed to install on your work PC. If you are reading this far anyway, I’m going to assume you work in tech and have no problems justifying installing a SSH client