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
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!