FileZilla FTP server is a very popular open-source solution. We can use it either as a desktop side solution or as a full server side solution. The desktop side solution is useful for a small installations. However, when we need a larger amount of the traffic or to server more users, the server side solution is only reasonable choice.
In addition, the entire process of data exchange via FTP protocol does not require any server-side visualization. The whole process of graphic representation of available data is carried out on the client side. Therefore, we do not need the GUI on the server side.
Now we have the solution – the FileZilla FTP server running on the Windows Server Core.
The benefit of such solution is that we will need less resources on the server side. In addition, today, when most of the servers are virtualized, we can have higher density of the VMs per a virtualization host.
We shouldn’t overlook the security aspect of such solution. The Windows Server Core has less exposed services. In addition, there are fewer targets that can be exploited and attacked.
Installing the FileZilla FTP server
The Windows Server Core has a very limited graphical shell with the command prompt. It’s primary intended to be administered remotely. The good news is that you can run some graphical installations inside this limited environment. Therefore, we can install these applications in the same way you would install them on the full Windows Server.
I installed the Windows Server 2008 R2 SP1 Core as the VM in the Oracle VirtualBox. I would recommend you to install integration services for the virtual environment. Although I used the Windows Server 2008 R2 SP1 Standard Core in this demonstration, you can also use a Windows Server 2012 R2 Core or Windows 2016 Core. You should the latest version of the FileZilla Server.
In the Core server we can transfer software either over the CD/DVD disk or using command line tools. I opted for the first method in this demonstration. Therefore, I made an ISO image with an installation of the FileZilla Server.
I run the installation package from the CD (the E: drive in my case) and… voila! We can install the FTP server as usual. You can check my previous post for additional details about the installation process.
When installation process prompt for the startup parameters, you need to choose them in the same way as when installing in the full GUI environment. We will install the software, register a service and service will start automatically.
You should keep in mind that you cannot access from a remote location without the FileZilla server administrator password. Moreover, no password after the installation.
I advise you to install the administration console on the local server. Of course, you can’t run automatically the administration console on the Core server version. Don’t worry, you can manually run it at any time. It’s inside the FileZilla folder. The default path is C:\Program Files (x86)\FileZilla Server.
You can check if the FileZilla server is running with the netstat command. Just type
netstat –anb | more
in the command prompt. You will see all running network services on the machine. When the FTP service is running, it should be bound to the port 21 TCP.
Our next step will be configuration of the FileZilla server. We should run the admin console from the server. Don’t be confused if the IP address is ::1. This is a loopback address in the IPv6 protocol. All Windows computers, starting from Windows 7 and 2008 Server, will use the IPv6 over the IPv4 as the preferred protocol for an internal network communication.
When we’re inside the FTP console we can configure the server. After that, we will be ready to connect to the server from the remote network location.
If the FileZilla server is not accessible from the network
The Windows Server 2008 Core had the Windows Firewall turned on. This is same firewall as in the full server version. However, we cannot so easily change the rules in this version.
We can either enable the remote server administration protocol (WinRM) or to use command line. I will demonstrate the second approach.
We want to allow the FileZilla Server executable through the firewall. We need to use the netsh command. This command is very powerful. We can control the firewall settings through it.
Our command will be:
netsh advfirewall firewall add rule name="FileZilla" program="C:\Program Files (x86)\FileZilla Server\FileZilla Server.exe" action=allow dir=in enable=yes profile=any
In short, we need to allow the whole incoming traffic to any network port our application wants to open. We should also specify the firewall profile. The default is a domain profile.
The Windows Server Core platform has a great potential, which is often neglected. We can use it to build the magnificent network solutions.