Probando almacenamiento en la nube con iFolder

En mi empresa me pidieron instalar un servidor de ficheros para que estos estuvieran siempre disponibles, ya fuera en la red de la empresa o desde fuera a través de internet.
En un primer momento y para ver que tal funcionaban los usuarios les puse Dropbox como programa destinado a estos menesteres. La gente enseguida se hizo con el uso del programa y a todos les gusto su fácil utilización, ademas de que tenia cliente para Blackberry, que es el teléfono de empresa.
Pero el programa tenía algunas debilidades que no se podían subsanar.
La primera y mas importante era la seguridad de los archivos. Los servidores de Dropbox están repartidos por todo el mundo y desconocemos que seguridad tienen. Sobre todo los directivos me preguntaban si los archivos estaban protegidos y como podía garantizarles que nadie, nada mas que los que ellos decidieran, pudieran verlos. La respuesta era clara, yo no podía garantizarles eso, lo que yo les recomendaba era que protegieran los archivos con contraseña.
La segunda debilidad que tenían era que los archivos no se podían compartir como en Windows, con acceso de lectura y/o escritura. Si compartías una archivo solo podías hacer eso, compartirlo, no aplicarles permisos como en otros sistemas.

Fundamentalmente por esos dos motivos, Dropbox no cubría las espectativas que me pedían. Me puse a buscar la mejor solución y me decidí por iFolder de Novell.

iFolder tiene 5 cosas muy importantes:

La primera es que el servidor donde instalas iFolder es tuyo y por lo tanto tu controlas donde lo quieres y como. La seguridad de los archivos es enteramente responsabilidad tuya.

La segunda ventaja es que es un software GRATUITO, puedes descargarlo e instalarlo sin coste alguno. Yo lo he instalado en un Ubuntu 10 aunque está diseñado para trabajar en Suse 11. Al ser Linux el coste en licencia de sistema operativo es 0, otra ventaja añadida.

La tercera ventaja es que puedes poner los archivos disponibles a otros usuarios de 2 formas, de acceso de solo lectura (los usuarios podrán acceder a ellos, leer el contenido pero no podrán grabar cambios en ese archivo), permisos de lectura y escritura (los usuarios con los que compartamos esos archivos podrán ademas de leerlos, modificarlos) y hay una tercera forma en la que se puede poner los archivos, codificados (los archivos se encriptan para que solo el usuario propietario pueda abrirlos).

La cuarta ventaja es que dispone de cliente para PC (Windows, Linux, Mac) y además podemos acceder a los archivos vía web. El cliente es bastante completo y se integra perfectamente en Windows (que es el que yo he probado) permitiéndonos la compartizión de los archivos o carpetas con tan solo darle al botón derecho encima de ellas. El acceso vía web es muy sencillo, con lo que con cualquier dispositivo con navegador nos permite trabajar con nuestros ficheros.

La quinta ventaja es su integración con LDAP, con lo que podemos usar nuestro servidor de dominio de Windows por ejemplo, como repositorio de los usuarios. De esta forma no es necesario dar de alta los usuarios de iFolder, los importamos de nuestro dominio.

La instalación del servidor no es sencilla. Arriba podeis ver un esquema de como podría quedar todo. Al ser un software gratuito no dispones de la infraestructura de soporte que tiene un software de pago, ni un asistente de instalación que te haga las cosas fáciles. Hay que buscarse la vida por internet y leer en foros y paginas de gente que ya lo ha instalado. Yo he tenido que seguir varios manuales de instalación porque si seguía uno solo no funcionaba. Al final mi instalación fue:

Requerimientos

Ubuntu 10.04 or 10.10
Apache server

Para instalar apache server y configurar el acceso SSL, abre un terminal y escribe

sudo apt-get install apache2

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo /etc/init.d/apache2 restart

Ahora tienes apache server y configurado con SSL.

Con el apache funcionando, ya podemos instalar el ifolder-server.

Instalación de ifolder-server
1. Instalar dependencias (a lo mejor no necesitas todo)

sudo apt-get install build-essential automake autoconf mono-complete liblog4net1.2-cil uuid-dev libxml2-dev mono-apache-server mono-apache-server2 gsoap libapache2-mod-mono libncurses-dev libtool g++-4.3 gcc-4.3

2. Descaragar los paquetes (para 32 bits)

wget http://downloads.sourceforge.net/project/ifolder/iFolder%20Server/3.8.0.3/11.1/ifolder3-enterprise-3.8.0.10191.1-5.1.i586.rpm

wget http://downloads.sourceforge.net/project/ifolder/iFolder%20Server%20Plugins/3.8.0.3/11.1/novell-ifolder-enterprise-plugins-3.8.0.10191.1-3.2.i586.rpm

wget http://download.opensuse.org/distribution/11.3/repo/oss/suse/noarch/log4net-1.2.10-58.1.noarch.rpm

3. instalar alien y convertir rpm’s en dab

sudo apt-get install alien

sudo alien –scripts *.rpm

4. instalar paquetes

sudo apt-get remove liblog4net1.2-cil
dpkg -i *.deb

5. instalar log4net

sudo apt-get remove liblog4net1.2-cil

5. Reinicia apache y verifica que está levantado

/etc/init.d/apache2 restart

6. Ahora tienes que configurar Simias pero primero necesitas conseguir alguna información. Ejecuta esto para ver lo que necesitas.

id www-data

A mi me mostró:

uid=33(www-data) gid=33(apache) groups=33(apache)

Eso te indica que el usuario “www-data” está dentro del grupo “apache”. Esto tienes que recordarlo.

7. Ahora a configurar Simias

sudo /usr/bin/simias-server-setup

En negrita pongo lo que yo he puesto, cada uno que ponga lo que estime. el resto INTRO para que lo coja por defecto.

SIMIAS SERVER SETUP

This script configures a server installation of Simias to setup a new Simias system.

—– SERVER’S DATA PATH —–
Path to the server’s data files

Server’s Data Path? [/var/simias/data]:

—– SERVER NAME —–
The name of this server

Server Name? [Host1]: iFolder

—– SSL —–
Select SSL/NONSSL communication for this server. Options
are SSL, NONSSL or BOTH

SSL? [SSL]:

—– PUBLIC URL —–
Public URL of this Simias Server

Public URL? [https://192.168.1.65/simias10]:

—– PRIVATE URL —–
Private URL of this Simias Server

Private URL? [https://192.168.1.65/simias10]:
—– SLAVE SERVER —–
Install into existing Simias Domain

Slave Server? [N]:

—– SYSTEM NAME —–
A name used to identify the Simias system to users.

System Name? [iFolder]:

—– SYSTEM DESCRIPTION —–
A detailed description of the Simias system for users.

System Description? [iFolder Enterprise System]: iFolder mio particular

—– USE KEY RECOVERY AGENT —–
Use Key Recovery Agents to recovery the encryption
key if the user forgets the pass-phrase used for encryption?

Use Key Recovery Agent? [Y]:
—– RECOVERY AGENT CERTIFICATE PATH —–
Path to the Recovery agent certificate’s.

Recovery Agent Certificate Path? [/var/simias/data]:

—– USE LDAP —–
Use LDAP to provision and authenticate users?

Use LDAP? [Y]: NO (pongo no para que sea mas fácil y rápida la instalación. Después pondré la instalación con LDAP)

—– SYSTEM ADMIN —–
The Simias default administrator. If the system is
configured to use an external identity source, the
distinguished name (dn) should be used.

System Admin? [admin]: System Admin Password? [novell]:

—– CONFIGURE APACHE —–
Configure Simias to run behind Apache

Configure Apache? [N]: YES

—– APACHE USER —–
Apache User

Apache User? [wwwrun]: www-data

—– APACHE GROUP —–
Apache Group

Apache Group? [www]: apache

Working…

Configuring /var/simias/data/simias/Simias.config…
SetupSimias – Done
Configuring /etc/apache2/conf.d/simias.conf…
Done
Configuring User Movement plugin..

Setting up Log4Net file…
Done
Setting up permissions…
Done

SUCCESS

Now the setup asks for apache user and group and that is what you found out earlier.
For server name you can have what you want, but I just used default.
For system admin password you can pick your own, I just used default.

8. Corregir la ruta mod_mono

sudo sed -i ‘s/apache2\/mod_mono.conf/apache2\/mods-enabled\/mod_mono.conf/g’ /etc/apache2/conf.d/simias.conf

9. Arreglar algunas rutas

sudo ln -s /usr/bin/gmcs2 /usr/bin/gmcs
sudo mkdir -p /var/www/.config/.mono/

10. Acuérdate del Simias, tienes que poner el usuario y grupo que vimos en el punto 6

sudo chown -R www-data /var/www/.config/

11. Reinicia apache y verifica que esta levantado

sudo /etc/init.d/apache2 restart

12. Ejecuta la instalación para ifolder. Lo mismo que lo del Simias.

sudo /usr/bin/ifolder-admin-setup

sudo /usr/bin/ifolder-web-setup

13. Corrige otra vez la ruta mod_mono

sudo sed -i ‘s/apache2\/mod_mono.conf/apache2\/mods-enabled\/mod_mono.conf/g’ /etc/apache2/conf.d/ifolder_admin.conf

sudo sed -i ‘s/apache2\/mod_mono.conf/apache2\/mods-enabled\/mod_mono.conf/g’ /etc/apache2/conf.d/ifolder_web.conf

14 Activa rewrite

sudo a2enmod rewrite

15 Reiniciat apache

sudo /etc/init.d/apache2 restart

16. Ahora puedes ir a la página de administración de iFolder y crear cuentas para empezar a funcionar.

https://”tu IP”/admin o https://localhost/admin

Si decides configurar el LDAP y le pones Y en vez de N, te aparecerá esto (he utilizado mi dominio de prueba:

Use LDAP? [Y]: Y

—– LDAP SERVER —–
The host or ip address of an LDAP server. The server
will be searched for users to provision into Simias
and will be used by Simias for authentication.

LDAP Server? [IP del LDAP]:
—– LDAP SECURE —–
Require a secure connection between the LDAP server
and the Simias server

LDAP Secure? [Y]: Y (yo lo utilizo con el puerto seguro, cada uno como quiera)

—– LDAP ADMIN DN —–
An existing LDAP user, used by this script only, to
connect to the LDAP server and create and/or check
required LDAP users for Simias.

LDAP Admin DN? [cn=admin,o=novell]: cn=administrador,dc=aquinohayquienviva,dc=es
LDAP Admin Password? [novell]: tu contraseña de administrador del dominio

—– SYSTEM ADMIN —–
The Simias default administrator. If the system is
configured to use an external identity source, the
distinguished name (dn) should be used.

System Admin? [cn=SimiasAdmin,ou=users,dc=aquinohayquienviva,dc=es]:
System Admin Password? [novell]: otra contraseña

—– LDAP PROXY DN —–
An LDAP user that will be used to provision the users
between Simias and the LDAP server. If this user
does not already exist in the LDAP tree it will be
created and granted read rights at the root of the
tree. The user’s dn and password are stored by Simias.

LDAP Proxy DN? [cn=SimiasProxy,ou=users,dc=aquinohayquienviva,dc=es]:
LDAP Proxy Password? [novell]: otra contraseña mas

—– LDAP SEARCH CONTEXT —–
A list of LDAP tree contexts (delimited by ‘#’) that
will be searched for users to provision into Simias.

LDAP Search Context? [ou=users,dc=aquinohayquienviva,dc=es]:

—– NAMING ATTRIBUTE —–
The LDAP attribute you want all users to login using.
I.E. ‘cn’ or ’email’.

Naming Attribute? [cn]: sAMAccountName

Luego a todo lo que nos pregunta de apache por defecto y el consabido www-data de usuario.

Espero que os sirva, si tenéis alguna duda preguntar.