Kellene nekem egy olyan szolgáltatás, ahová tetszőleges user-ek tudnak állományokat feltölteni. Az alap probléma az, hogy van egy pendrive-on terjesztett windows-os portable program, amit a felhasználók különféle gépekbe bedugva használnak. Amikor a programból kilépnek, akkor kellene egy adatmentést végezni. A pendrive-on levő adatbázist először helyileg összetömöríti egy program (titkosítva), utána feltölti egy backup tárhelyre.
Fontos, hogy ne más által üzemeltetett cloud storage legyen, hanem saját szerveren.
A backup tárhely megvalósítása a kérdés. Sok user lehet, és nem szeretnék egyesével mindegyiknek külön felhasználói nevet és jelszót allokálni. Az adatmentés kizárólag azt a célt szolgálja, hogy ha tönkremegy a pendrive, akkor elő lehessen venni az utolsó mentést. A mentések mérete max. 10MB. Minden user saját titkosító jelszót használ. Az adatok biztonságát elsősorban a backup-ok AES titkosítása adja. A szerverhez való hozzáféréshez is kell kulcs, hogy ne tudjon bármi feltölteni.
A backup szolgáltatással kapcsolatban a következő elvárások vannak:
* működjön NAT mögül, szinte bármilyen belső hálózatból
* write-only. A felhasználók ne láthassák egymás mentéseit még akkor sem, ha az egyébként titkosítva van tárolva.
* portable - lehessen úgy megvalósítani mint egy egyszerű portable programot amit az adtmentő script a végén meghív
* ne kelljen hozzá saját programot fejlesztenem, már létező szolgáltatást használjon
Korábban már írtam egy programocskát ami 443-as porton töltött föl állományokat HTTPS-sel, de tényleg valami olyat szeretnék amihez nem kell saját programot írni. Létező megoldás kellene!
Nem elvárás de bónusz lenne, ha a feltöltést végző program valami grafikus folyamatjelzőt tudna mutatni. (WinSCP tud ilyet.)
Mik a lehetőségek:
* openssh scp + pscp (putty) - nem sikerült vele egyszerre megvalósítanom a write-only módot
* vsftpd - kilőve, nem tud rendes SFTP-t és SCP-t Kizárólag a passzív módú FTP over TLS-t de az nem megy egy rendesen tűzfalazott belső hálózatból
* proftpd - elvileg ez tud sftp-t de még nem próbáltam
Olyan megoldást én is tudok, amihez programot kell írni, de gondoltam megkérdezem hátha valakinek van ötlete. Mi lenne az a legegyszerűbb és legbiztonságosabb megoldás erre a problémára?