ssfs view README @ rev 21

README: update info about a web interface
author Christophe Lincoln <pankso@slitaz.org>
date Sun Jun 12 01:34:42 2011 +0200 (2011-06-12)
parents 02ab6ce37eb0
children 6034fcc9741c
line source
1 SliTaz Secure File Storage
2 ===============================================================================
5 Ssfs is personal, secure, fast and light online file storage powered by
6 SSH, Rsync, Lsyncd and SHell script. It monitors a local folder and automatically
7 synchronizes the remote server. When files are transferred they are compressed and
8 encrypted with SSH. Connections to the remote host are automated with a RSA key,
9 and for each client the key must be sent to the server via a SSH password login.
11 Using ssfs lets you have a live synchronized and secure folder between many
12 computers with an online copy on a secure Linux server. But even without any
13 connections you have access to your files. Connections to the remote server
14 can also be done using the command line and 'ssh' from any clients such as
15 BSD, Android, OSX or Windows via Putty.
17 Ssfs is very easy to install, setup and configure to make your own secure online
18 file storage. It provides a cmdline tool for the client and the server with a
19 built in help. This README is also a howto in itself.
21 On the server side admin can choose by creating standard accounts or chrooted
22 accounts which enforce server security by restricting available commands in a
23 minimal chroot environment. User $HOME should be set to 0700 so users can't see
24 other users files.
27 Overview
28 --------
30 * Online live sync with encrypted data
31 * Drop files in a folder and they will be sync
32 * Even without connection you have your data
33 * Fast and light using stable and mature GNU tools
34 * Easy to setup on the client and server side
35 * Virtual disk for storage with minimal chroot
36 * Easy to backup, update and maintain vdisk
39 Quick start guide
40 -----------------
42 * Install ssfs on server and clients if not yet done
43 * Create a vdisk on server # ssfs-server gen-vdisk
44 * Check if chroot works (exit to quit) # ssfs-server chroot
45 * Add a chrooted user to the Ssfs virtual disk so it can sync
46 files or connect via SSH from a client:
47 # ssfs-server adduser --login=demo --id=2000 --pass=demo
48 * On the client side: ssfs-box setup or from the cmdline:
49 $ ssfs setup --login=demo --host="server name or ip"
50 * On client you can start ssfs on user login via the WM
51 autostart script and or the command $ ssfs sync
54 Installation
55 ------------
56 To work you need a SSH client, 'rsync' and 'lsyncd' installed. On SliTaz you
57 can simply install ssfs and it's dependencies or 'make install' from the
58 source directory (see the Development section).
61 Client help and setup
62 ---------------------
63 The cmdline interface ssfs lets you setup a client and start the daemon and
64 synchronize live with your system session via the Window Manager autostart
65 script or your personal ~/.profile file. To get a list of commands with
66 a short description:
68 $ ssfs help
70 To setup a client by creating a Lua configuration file and sending the RSA key
71 to the server, you can use the command 'setup'. Setup needs a login name and
72 server name or IP address and it will also create a secure RSA if none exists:
74 $ ssfs setup --login=user --host=server
77 GUI & Web interface
78 -------------------
79 Actually there is a small GTK/Yad but no web interface. The tool ssfs-box will
80 display info if a configuration file exists or start the setup box. Ther is no
81 plan for a users files web interface since security if more important, actually
82 user home have 0700 mode as so standard web server running user www can't see
83 the files. We may implemnt a HTTP Public dir wich coul handle xHTML pages, a
84 wiki, etc. Actually they is some work on a Ssfs server web interface with the
85 goal to provide service status an information.
88 Get configs on boot
89 -------------------
90 Ssfs can be used in a boot scripts to connect to a remote host and retrieve data
91 before a user session is started. It can be useful to provide persistent data for
92 Live systems and web boot.
95 Quota management
96 ----------------
97 Actually the quota storage is based on a shared idea, the vdisk have a size and
98 all users share the space. For a pay service the vdisk can grow follwing the
99 users donations or monthly subscription.
102 Server setup
103 ------------
104 On the server you must have a SSH server running and an user account with a
105 ~/Sync folder in user home. You can have both, staandard accounts or chrooted
106 accounts, for a hosted service it is recommended to use a chroot and Ssfs
107 virtual disk. The vdisk can be any size you want and have a minimal chroot
108 environment that is under 3Mb.
110 If you want to create a vdisk and chroot automaticaly you can use use the tool
111 ssfs-server. Here is a short example to create a chroot and create a user
112 login 'tux-sync' with a protected $HOME in the chroot, the root directory can
113 be specified on the command line or changed in the configuration file. The
114 vdisk creation size is set in Gb and can be changed in config file or from
115 the cmdline:
117 # ssfs-server gen-vdisk --size=2
118 # ssfs-server adduser --login=tux-sync --id=2000 --pass=tuX0cc
120 Users can be listed or completely deleted including all files in home. More
121 information can be found with: ssfs-server usage
124 Ssfs virtual disk
125 -----------------
126 A virtual Ssfs disk is a raw file created with dd and formated in ext3. It is
127 mounted by default on /ssfs and contain a minimal chroot environemt with users
128 home directory. We use a virtual disk to enforce securiry and use a separate
129 media for Ssfs secure files, it also protect the host and limit storage size.
130 The tool ssfs-server handle vdisk creation but you can also create one manually
131 or use a separate HD if the server have more than one disk. To create 2Gb
132 vdisk and format it to ext3:
134 # dd if=/dev/zero of=/home/ssfs.disk bs=1G count=2
135 # mkfs.ext3 -T ext3 -L "Ssfs" -F /home/ssfs.ext3
137 Now you have a virtual disk you can mount it, the path must match SSFS_CHROOT
138 found in ssfs-server.conf, default mount point is /ssfs to clearly separate
139 the filesystem from the standard host file hierarchy:
141 # mkdir /ssfs
142 # mount -o loop -t ext3 /home/ssfs.disk /ssfs
144 To automaticaly mount the vdisk on boot you may want to add a ssfs system user
145 and a line into the file /etc/fstab:
147 # adduser -S -g "Ssfs Server" -h /ssfs -s /bin/false ssfs
148 /home/ssfs.disk /ssfs ext3 rw,loop,ssfs,ssfs 0 0
151 Server users config
152 -------------------
153 When adding a user with 'ssfs-server adduser', the user is added to the host
154 /etc/passwd and a custom user config file is created in SSFS_USERS with the
155 login name.
158 Development and Bugs
159 --------------------
160 If you want to install the latest code to test and help in development you can
161 clone the ssfs Mercurial repository. As usual, closely follow the SliTaz light
162 philosophy with speed and security in mind:
164 $ hg clone http://hg.slitaz.org/ssfs
166 Install with 'make install' (DESTDIR is supported for packaging), update the POT
167 file if any new strings have been added with 'make pot', and merger PO files with
168 the command 'make msgmerge'. Any ideas are welcome and can be discussed. If you
169 are searching for something to do you can have a look to the TODO file :-)
171 Bugs can be reported on the SliTaz mailing list, forum or scn since the devel
172 forum is synced. All sites are liked from the main website at:
174 http://www.slitaz.org/
177 ===============================================================================