owncloud accesible desde fuera …

owncloud… de la red del trabajo. Y es que he visto que empieza a tener tanta utilidad que vendría muy bien que fuese accesible desde la red.

Partiendo de la base de que owncloud ya funciona dentro de la empresa el único detalle que me quedaba pendiente era darle acceso desde el exterior.

La principal motivación para ello, además de que los empleados tengan acceso a sus archivos desde fuera, es poder compartir aquellos que son enormes, como los catálogos con clientes y proveedores, a los que no hay manera humana de enviárselos de otro modo. ¿ Ventajas ?

  • Evito que recurran a servicios externos como dropbox.
  • Me mantengo informado sobre la compartición utilizando la nueva aplicación Activity de la versión 6 (ojo, que por ahora sólo de lo que comparten conmigo o yo comparto, pero asumo que en el futuro el administrador tendrá un poco más de control).
  • Tenemos la posibilidad de cerrar el acceso a dichos archivos

El exterior está controlado por un servidor concreto llamado barbacana en el que funciona Apache como servidor web, así que he buscado en la documentación del mismo y he visto que implementar un proxy inverso era la opción más cómoda.

He tenido que habilitar los siguientes módulos en Apache previo a su configuración:

  • proxy
  • proxy_http
  • ssl

y luego añadir un servidor virtual que que realice todo el trabajo pesado. Siempre fuerzo las conexiones cifradas así que la única tarea del servidor virtual en el puerto 80 es redirigir la misma petición al puerto 443.

#
#	Proxy inverso a nuestra nube particular
#

<VirtualHost *:80>
	ServerName	sync.empresa.net
	ServerAlias	sync
	ServerAdmin	admin@empresa.net

	# Forzamos redirección a conexión segura
        <IfModule rewrite_module>
		# redirect to https when available (thanks
		# omen@descolada.dartmouth.edu)
		RewriteEngine on
		RewriteCond %{HTTPS} !^on$ [NC]
		RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
        </IfModule>
</VirtualHost>

<VirtualHost *:443>
	ServerName          sync.empresa.net
	ServerAlias         sync
	ServerAdmin         admin@empresa.net

	# Incluímos conexiones seguras
	SSLEngine       On
	SSLProxyEngine	On
	Include conf.d/certificates.conf

	# Activamos proxy inverso 
	ProxyPreserveHost 	On
	ProxyRequests 		off
	ProxyPass 		/ 	https://192.168.100.3/
	ProxyPassReverse 	/ 	https://192.168.100.3/
</VirtualHost>

Otras referencias