This week I had a chance to built my own FTP server on a intel Xeon E5-2698 v4 having a 16 GB of ram and configure the networking, storage, and security that will be used with it.

For the server setup, install the FileZilla server for Windows OS. It is a FREE and open-source FTP solution being distributed free of charge under GNU GPL.

Step 1. Proceed as any other software installations. For the following prompts, I would suggest leaving these on defaults with the tick on the checkbox.

Step 2. Server setup – configuring the network

After installation, you should now configure your server. There are basically 2 things you should do when you setup a FTP server behind a NAT network. One is to setup and configure port “Custom port range” and two, creating a firewall rule on the Windows OS to allow connection to ports being setup.

On FileZilla server click Edit and under Passive Mode Settings, input a Custom Range port. In my case, I use 11,000 – 12,00. Tick Default option “External Server IP Address for passive mode transfers”. Check “Don’t use external IP for local connections”.

Step 3. Server setup – creating firewall rules

Two INBOUND firewall rules were created. One I named with FileZilla and the other one named as FTP passive mode.

Take note that both these firewall rules have TCP as their protocol type.

Step 4. Server setup – SSL certificate

FTP can be made secure against eavesdropping, tampering, and message forgery. The use cases on why we use HTTPS over HTTP are the same for FTP-SSL (FTP-Secure). The protocol enabled the application to communicate across the network in a private and secured fashion.

On FileZilla server click Edit and under “Enable FTP over TLS support (FTPS)”, check Enable. Generate a new certificate if it happens that you don’t have one. When generating just fill up the form and save the key on an easily accessible location by the server, in my case I just use the account’s document folder. Leave other settings at default.

The next thing that needs to be configured is the Router. Since I am in a NAT network, I have to forward ports that i had configured on the custom port range. In my case, I’m using a TP-LINK AC 4000 MU-MIMO Tri-band wifi router. Also I need to set the static IP of the FTP server.

Step 5. Router – Setting static IP address

Set a static IP on your FileZilla FTP Server. You can reserve the IP address of it on the router. Check the manual of your specific router on how you will be able to do this thing.

Step 6. Router – PORT Forwarding

Forward the ports from your router to the Static IP address of the FTP server. Check the manual of your specific router on how you will be able to do this. In my router this is NAT FORWARDING and under Virtual server.

The last steps would involve the FTP clients that would connect to the FTP server. You may use any FTP clients available on Windows or macOS. For windows I suggest FileZilla Client or winscp, and Cyberduck for macOS. I find FileZilla Client on macOS a little buggy specifically for macOS Catalina.

Step 7. Client – Installing FTP clients

Installation of FTP clients on either Windows or macOS is pretty straightforward. Follow the installation prompt and select the option that best suits your environment. It is always advisable to got by Default on selection.

Step 8. Client – Connecting through Winscp

Under FTP protocol drop down menu, select FTP. On encryption select TLS/SSL Explicit encryption. Input the IP address of the Server and Port number. Supply the correct credentials. Accept the certificate when it prompts. The working directory (shared directory) should now be listed on the right panel of the software. You may now use the FTP.