What we want to develop is a client application stored on a USB stick that will be bundled with our NAS devices.
This client software will easily give the end-user access to the NAS regardless if the NAS is locally on the network or if they are at a remote location.
To do this we need a server application that will establish a secure VPN connection between the NAS and the client application where ever it is in the world.
The server will also handle user authentication and registration.
The goal is to use existing open source (VPN) software to ensure easy development and stable operation.
* Has to be developed for Linux.
* Keep an secure VPN connection between the NAS device and the server software on a common port (ie. 443)
* Will use a MySQL database to store all user information.
* Every NAS is registered by the end-user the first time they start the client application.
* The registration is per USB Device.
* The server software will store Name, email, password, mac adress of the NAS, unique USB identifier and encryption key for the user.
* This application will be stored on a USB stick and the first time it is run the user will register against the server.
* Capable of transfering files between the NAS and the local system.
* Backup function, the user can select files for backup.
* When files are marked for backup it will install a background service that will make sure the files are backed up to the NAS.
* Needs to have a User management function(each USB stick is a user) change password or Deactivate if the USB stick is lost.
* The application will first try to scan after the NAS on the local network, if it is not found it will connect to the server and try to establish a connection.
* Mobile device application (Iphone, Ipod, Android)
* Has to communicate securely with our Server software.
* Must be able to restore USB sticks with the client application through the available USB slots on the device.
* Need to be able to deactivate USB sticks from the device incase they are lost.