I had a really hard time getting FTP working, ran into several errors just trying to enable it, and had several rejections when trying to connect, and permission denied when trying to transfer files. Now everything is working, so I wanted to create a step-by-step guide for anyone looking to enable FTP, specifically the secure kind (SFTP) where SSL/TLS connections are enabled.
1. Services > FTP
Enable: Toggle on
Port: 21 (or port of your choice; I suggest a different port)
Passive FTP: Toggle on
Passive FTP Use the following port range: you can leave this alone, or you can change to 14100-14110 for example
Click Save, then Apply
If you have trouble applying the settings (you get an error), try doing one thing at a time and applying it. For example, Enable FTP with the toggle first, then save, then apply. Then make your next change, then save, then apply. I had to do this for one of my devices.
2. System > Certificates > SSL > Add
Leave everything as default, but add whatever info you want, such as Organization name, country, email, etc. Click Save, then Apply.
3. Services > FTP > SSL/TLS
Enable: Toggle on Enable SSL/TLS connections
Certificate: Choose your newly created certificate from the drop-down list. Click Save, then Apply.
4. Access Rights Management > Shared Folders
Either create a Shared Folder (and make sure that you choose "Everyone: Read/Write" for permissions), or choose an existing one. Go to Privileges and ensure that your username is checked off. If you haven't created a username yet, first go to Access Rights Management > User, and create a username there. But you probably already have one.
5. Services > FTP > Shares > Add
Click on the drop-down list to choose your Shared Folder. Click Save, then Apply.
6. Now you need to access your router for port forwarding. If you need help for your particular router, check out the Port Forward website and choose your router from there. I have a router flashed with Advanced Tomato, so for me, it's Port Forwarding > Basic and then for a TCP port, I would add the main port that was added under Step 1 (example, 21) under Int Port. Under "Internal Address," you're going to put the internal IP you use to access the OMV gateway (ie: 192.168.1.4).
Add another TCP port forward with your passive ports (example, 14100-14110) under Int Port (the whole range in there), and also the internal address. Make sure to Add/Save everything.
7. Download and install Filezilla.
Host: if you're local, you can put your internal IP address you use to access the OMV gateway (such as 192.168.1.4). If you plan on accessing remotely, you will need to put your public IP address.
Username: the username you already had or created for FTP.
Password: obviously, the password for this username
Port: The main port you created in Step 1.
Click Quickconnect (note, after you have used Quickconnect, it saves your info in the drop-down list next to the Quickconnect button).
Upon successful connection for the first time, you will see the certificate pop up. Make sure you check of "Always trust certificate in future sessions." Then click OK.
You should be able to see your Shared Folder on the right. Your files on your local drive are on the left. Just drag and drop files/folders from left to right to get files/folders onto your OMV server.
**Note: If you add another Shared Folder after this point, and see that it's not showing up in Filezilla, hit F5 to refresh the Filezilla windows. Your Shared Folder should show up after this.
If you have a dynamic DNS address, you can enter that under "Host" in Filezilla, as an alternative to your public IP address. If you wish to either create a dynamic DNS, I suggest using Duck DNS. I have two suggestions on how to use it. Either use Duck DNS under the DDNS settings in your router, or if you already are utilizing the DDNS section in your router, you can use a different DNS just for your OMV server. You can watch Techno Dad's tutorial on how to do this. It's actually for Nextcloud, but start at 3:35 (and end at 6:00) to follow the directions for only DuckDNS (not Letsencrypt or anything). You will need Docker for that tutorial, so if you don't have Docker, start here.