No-SSL FTP server with Microsoft Azure VM

At our company, we are given monthly Azure credits. Then recently, in my project, I needed an FTP server for testing a feature, so instead of signing up for trial accounts with third-party vendors, I thought of creating one with Azure. This is a simple, straight-forward guide. Of course in production, you need to think of a more secured way like requiring SSL, but this should get you started.

Provisioning an Azure VM

As you can see, I already chose to allow certain inbound ports while configuring my VM. I left everything else with their default values.

More FTP ports to open

Once your VM deployment is complete, go to Settings > Networking > Add inbound port rule.

  • Allow FTP port 21
  • Then allow a port range for Passive connection.

Here’s a good explanation about Active vs. Passive FTP connection

Server Manager configuration

Connect to your VM using RDP. From the Azure Portal > Connect > Download RDP file. Once downloaded, open it, enter the credentials you used while provisioning the VM.

On your VM, open Server Manager Dashboard, choose Add roles and features

Choose Role-based or feature-based installation under Installation Type of the Add roles and features Wizard

Just hit Next on Server Selection

Under Server Roles, choose Web Server (IIS), then go ahead and Add Features

Just hit Next on Features and Web Role (IIS)

Under Role Services, in addition to the pre-selected roles, select FTP Server (FTP Service and FTP Extensibility)

Hit Next then Install

Creating the FTP site

Open the IIS Manager > Choose the server > FTP Firewall Support

Under Data Channel Port Range, enter the port range you allowed for FTP Passive connection, then Apply.

Right click on Sites, choose Add FTP Site, give it a Site name and Physical Path, then hit Next

Under Binding and SSL Settings > SSL, choose No SSL

Under Authentication and Authorization Information

  • Authentication: Basic
  • Authorization: All users
  • Permissions: Read and Write

Hit Finish

Choose your FTP site > FTP Firewall Support > Under External IP Address of Firewall > Enter the Public IP address of your VM (this can be found on your Azure Portal) > Apply

Open the Services > Restart Microsoft FTP service

Connecting to the FTP site using WinSCP

Create a new WinSCP session, then login to the FTP site

There you have it!

Cheers! :)

I’m an MCSD, I’ve been developing applications for 10 years now, It’s my profession and hobby. Hoping to contribute to the community :)