Enabling FTP capabilities on an Azure VM

Configure the VM

Add yourself a User account for the FTP user.  Go through Server Manager > Tools > Computer Management > Users and Roles and add yourself a User.  Ensure this user has read write permissions on the folder you’re intending to use for your FTP.

Connect to your VM go through the usual Server Manager > Add Roles and Features > IIS enable FTP services here.

Under IIS click on the FTP site > FTP Firewall support add a IT range in here.  I went with 9000-9999.  Go with your public IP of your VM (top of your RDP session or back into Azure portal to grab it) for the External IP Address of Firewall.

Stay in IIS navigate up to your root/global server settings click on FTP Firewall Support at this global level and enter the same port range as above. Leave the External IP Address of Firewall blank.

Configure Azure

Into the Azure portal. Click on the VM in question and into Networking.  Add an Inbound Port Rule.  Lets call it FTP and for Source port range enter *.  Give it 21 for destination. TCP as the protocol.

Add another Inbound Port name it FTPData giving it 9000-9999 for it’s destination port and * as Source. TCP again.

Fire up Filezilla or similar and connect to the IP with the username and p/wd as configured earlier for the FTP user select Passive as the transfer mode.

Obviously, you might want to secure the FTP connection. I’m leaving this open for now as I’ll be addressing the security concern in another post which I will talk about Vnet to Vnet Peering. Stay tuned!

Troubleshooting

Typically you might get a user permissions issue when attempting to upload to the FTP site. Most likely the user won’t have the correct folder permissions. Hop back onto the VM, right click on the FTP folder > Security and add the ftp user to have read write permissions.

Ensure FTP is sound locally on the VM by firing up a command prompt on the VM itself and ftp to localhost via “ftp 127.0.0.1”.

Also bear in mind that if you’re making changes to the FTP settings under IIS you will probably need to restart the “Microsoft FTP server” service.