I have been working on a little project recently where a client asked me if there was a program that would allow him to access his local files at the office remotely while on the road or from another location.
The first thing that came to mind was that we can set up an ftp server with https online access. This way the user could securely log in online and see all the files located on his local computer at the office, download them, make changes and upload them back to the local computer.
I have spent a little bit of time trying to find a free ftp server solution that would provide a nice https online portal where a user can log in securely by using a web browser and see all the files on the local computer. I quickly found out that it’s hard to find a free ftp server that gives you both ftp and https online access and is easy to set up. Most of the ftp servers don’t provide you with a nice online portal where you can log in and manage your files. Majority of them only provide ftp access where you have to use an ftp client like Filezilla to connect to the ftp server.
In the below guide I will show you how you can set up a secure way to log into an ftp server running on your local computer and be able to access and modify the files remotely.
Let’s get started
1. Check your current ip address.
-
Click on the Start button and type in: cmd and press Enter, now type in ipconfig in command prompt.
2. Install and run CrushFTP, once the program starts click on “Edit Settings”
3. Make sure the IP address points to your local IP address as seen in step 1 for all the server items, if it’s different then change it for each item. Once you change these settings click OK it will bring you to the main menu.
4. Click on “Edit Users and Groups…”
5. Click on the + sign to add a username, click OK.
6. Select username on the left column and enter a passwrod for that user. Now drag the folders you want this user to have access to to the center column, in this example I shared my C: drive with the ftpuser. Finally in the column on the right place all the selected checkmarks to give these priveledges to the user and click on Save All Changes and close this Window.
7. Keep the CrushFTP program running and open up a web browser, type in: https://youripaddress. This is a secure connection to your site, the warning comes up because we are using a self signed security certificate. Click on “Continue to this website”.
8. Type in your username and password and click Login.
9. Your files should be visible through the online access portal. In my example these are the contents of my C drive.
10. At this point your FTP server will be accessible only on the internal network, you may have to disable or onfigure the local firewall to access it from another computer on your home network. To access this server on the World Wide Web we need to do a few additional steps. First disable the firewall, this is for testing purposes only, later on you will have to configure your firewall to allow port 443.
11. To access my https FTP server through the internet I will have to forward port 443 on my router to the computer running CrushFTP. This is the default port for the https protocol. The below screenshot is taken from a Buffalo WZR-HP-G300NH router powered by DD-WRT firmware. If you have a differrent router just look for a section that says Port Forwarding, the IP Address is from the step 1 Ipconfig command. To find out how to forward a port on your specific router visit www.portforward.com, and see if they have instructions with screenshots for your router.
12. Now you will have to find out your public IP Address, the easiest way to do it is go to www.google.com and type in what is my ip.
13. Now Open up a web browser and type in https://yourpublicipaddress and the request will be answered by your router and your router will forward port 443 to the computer that is running CrushFTP. Since CrushFTP is listening on port 443 it answer the packet and will display the ftp online access in your browser ont he World Wide Web.
14. To be able to access your website by a meaningfull name like myftp.co.cc instead of a public ip address. You will have to register a domain name and point it to your public IP Address. You should look for a free domain with DNS service, I personally like http://www.co.cc/. Once you create an account with them and find a domain name, just add an A record in the Domain settings and point it to your Public IP address.
The below screenshot is what you have to do on the co.cc website once you create an account. In the below example every time I type in http://www.myftp.co.cc, it will take me to my public IP Address 234.154.345.34 and then it will bring up my FTP server which is running on one of my PC’s at home. It just makes it easier to remember myftp.co.cc instead of the Public IP address. Just an additional note, every few months your public IP Address may change so you will have to log back into http://www.co.cc/ Domain settings page and Delete the current A record “DEL” button on the right and create a new one that points to the updated public ip address.
***The screenshot has been edited to remove any real IP Addresses.