Organic Design procedure
After doing some research, it seems that the most popular and reliable way of achieving an internet-based file share is using Samba over a Virtual Private Network (VPN). WebDav have turned out to be unreliable and temperamental.
Another excellent option is SFTP which uses existing SSH authentication to transfer files and there are applications available for Windows which map this connectivity in to the file system like a normal file share. On Ubuntu, SFTP integration with the file system is a standard feature, simply go in to Places/Connect to server, select SSH, fill in the authentication details and the resource will be mounted as usual.
Unfortunately, the Windows client setup isn't quite as simple as the Ubuntu case, but there is a good application for integrating SFTP in to the FS called Dokan. There are a few other components to install onto the Windows machine before it's ready to map SSH drives as follows:
- Install the Microsoft .Net framework starting here (63MB)
- Install the Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
- Download and install the main Dokan library from the Dokan downloads page
- Finally download and install Dokan's SSH support (Dokan SSHFS) also from the Dokan downloads page
Samba over VPN
This is basically just a normal Samba installation which is included in the install a new server procedure. Once a VPN has been set up with the install a new VPN procedure, all the workstations which are connected to the same VPN connection form part of a "virtual LAN" and they can all publish and use resources shared in that LAN such as shared directories, printers and services. They all show up in the normal "network places" or equivalent even though the hosts can be located in diverse locations around the internet, and all these connections are encrypted and secure.
- To ensure that Samba ports are only exposed to the private VPN side, set the interfaces directive in /etc/samba/smbd.conf to tun0.