Owncloud con soporte SSL Ubuntu 12.04

owncloud-logo1

Para seguir este howto primero debemos completar la instalación de Owncloud básica, que podéis encontrar en el siguiente post.

 

Primero activamos el módulo SSL de Apache

sudo a2enmod ssl
service apache2 restart

Editamos el archivo de configuración /etc/ssl/openssl.conf

nano /etc/ssl/openssl.cnf

Encontramos y cambiamos las siguientes líneas

dir = /root/SSLCertAuth
default_days = 3650 # 10 years
default_bits = 2048 # recommended by NSA until 2030
countryName_default = ES
0.organizationName_default = Ubuntu Contrib

Creamos el diretorio para guardar todos los archivos de la autoridad certificadora SSL, en nuestro caso lo llamaremos “SSLCertAuth”. Ejecutamos los siguientes comandos

mkdir /root/SSLCertAuth
chmod 700 /root/SSLCertAuth
cd /root/SSLCertAuth
mkdir certs private newcerts
echo 1000 > serial
touch index.txt

Creamos la autoridad certificadora (CA) con el siguiente comando:

openssl req -new -x509 -days 3650 -extensions v3_ca \
-keyout private/cakey.pem -out cacert.pem \
-config /etc/ssl/openssl.cnf

Nos pide:

Enter PEM pass phrase:introducimos una contraseña que usaremos después para firmar cualquier certificado (hay que recordarla). Vamos introduciendo todos los datos, y tenemos especial cuidado cuando nos pir el Common Name, que debe ser nuestro nombre de internet (fqdn: fully qualified domain name).

 

Ahora creamos la solicitud de firma del certificado del sitio:

openssl req -new -nodes \
 -out apache-req.pem \
 -keyout private/apache-key.pem \
 -config /etc/ssl/openssl.cnf

De nuevo introducimos todos los datos que nos pide, y en Common Name de nuevo metemos el fqdn. Los extra atributes… podemos dejarlos en blanco.

Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl

openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem

Introducimos la password de la CA que creamos antes y despues le decimos a todo que si.

Ejecutamos:

mkdir /etc/ssl/crt
mkdir /etc/ssl/key
cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt
cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key

El paso final consiste en configurar apache para que el servicio por misión HTTPS, sea owncloud.

mkdir /var/www/logs
nano /etc/apache2/conf.d/owncloud5-ssl.conf

Copia y pega la siguiente configuración:

<VirtualHost *:443>
ServerName fqdn
SSLEngine on
SSLCertificateFile /etc/ssl/crt/apache-cert.pem
SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
DocumentRoot /var/www/owncloud
CustomLog /var/www/logs/ssl-access_log combined
ErrorLog /var/www/logs/ssl-error_log
</VirtualHost>

Donde pone fqdn, ponemos nuestro nombre de internet o la ip de nuestro servidor. Damot Ctrl+x para cerrar y “y” para salvar.

Desde dentro de owncloud (Administración) podemos forzar el uso de SSL, lo que es muy recomendable a efectos de seguridad.

owncloud ssl

 

Gracias a:

http://ubuntuserverguide.com/2013/04/how-to-setup-owncloud-server-5-with-ssl-connection.html

Owncloud en Ubuntu 12.04 LTS

owncloud-logo1

¿Qué es OwnCloud?

Owncloud es una solución de almacenamiento vía Internet similar a Dropbox y a Google Drive. Permite incluso conectarse a estos servicios  a través de su interface web.

Podemos acceder a nuestra información a través del navegador, o a través de una aplicación cliente disponible para Windows, Osx y Linux, además de para Android e iOs.

Pero además es:

  • Servidor webdav: para poder acceder a nuestros archivos a través de apache.
  • Servidor caldav: para poder compartir nuestro calendario, citas, reuniones, etc.
  • Servidor cardav: para poder compartir nuestros contactos.
  • Servidor ampache: para poder acceder a nuestro contenido multimedia a través de clientes de streaming.

Ubuntu LAMP (Linux+Apache+Mysql+PHP)

Nota: os recomiendo que echéis un vistazo a dos de mis posts si instalais el servidor desde cero:

Lo primero que necesitamos es instalar el servidor LAMP de ubuntu. Podemos hacerlo directamente en la instalación del Ubuntu Server, o posteriormente con los siguientes comandos:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install lamp-server^

 

El carácter “^” es importante para que el tipo de instalación del servidor web sea apropiado. En la instalación nos pedirá que introduzcamos el password del root de MySQL. Asegúrate de introducir una buena password que sea fácil de recordar.

Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlos necesitamos activar dos módulos con los siguientes comandos

sudo a2enmod rewrite
sudo a2enmod headers

 

Además tenemos que cambiar el archivo de configuración de apache para que reescriba las reglas adecuadamente. Con lo cual ejecutamos el siguiente comando

sudo nano /etc/apache2/sites-available/default

Una vez quí debemos cambiar la línea

AllowOverride None

Por

AllowOverride All

 

Finalmente reiniciamos apache

sudo service apache2 restart

 

Asegurar MySQL

 

Teclea lo siguiente para asegurar la instalación de MySQL

sudo mysql_secure_installation

Cuando te pregunte el password del root de MySQL, introduce el que metiste en el apartado anterior.

Cuando te pregunte si quieres cambiar el pasword del root, teclea “n” de no.

Cuando te pregunte si quieres eliminar los usuarios anónimos, tecle “s” de si

Cuando te pregunte si quieres deshabillitar el acceso remoto del root, teclea “s”.

Cuando te pregunte si quieres eliminar la test database, tecle “s”.

Cuando te pregunte si quieres recargar la tabla de privilegios, tecle “s”.

 

Ya tenemos asegurado MySQL.

 

Crear la base de datos para OwnCloud

 

Primero accedemos como root a MySql en el terminal con el siguiente comando

mysql -u root -p

 

Una vez dentro creamos la base de datos

CREATE DATABASE owncloud;

Después creamos un nuevo usuario con los privilegios apropiados para la nueva base de datos (Sustituimos some_password, por una que decidamos nosotros.)

GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'some_password';
quit

 

Instalar OwnCloud

 

Instalamos paquetes necesarios para owncloud

sudo apt-get install php5-gd php-xml-parser php5-intl smbclient curl libcurl3 php5-curl

A 28 DE OCTUBRE DEL 2013, EL PAQUETE DE INSTALACIÓN DE OWNCLOUD HA CAMBIADO EL DIRECTORIO DE INSTALACIÓN FUERA DE /VAR/WWW. POR TANTO LAS LÍNEAS EN ROJO A CONTINUACIÓN NO LAS USÉIS. SEGUIR EL PROCEDIMIENTO DESCRITO EN https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10

Añadimos la llave del repositorio de apt con los siguientes comandos:

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key

sudo apt-key add - < Release.key 
rm Release.key

 

Después añadimos el repositorio de apt e instalamos OwnCloud

sudo echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list 

sudo apt-get update

sudo apt-get install owncloud
sudo service apache2 restart

 

El resto de la instalación se hace a través del navegador, y nos permite elegir entre otras cosas, el directorio donde se guardarán los datos de usuario que carguemos a través del navegador.

 

Si decidimos elegir un directorio distinto al que nos indica por omisión, a este directorio hay asignarle el usuario www-data con el siguiente comando

sudo chown -R www-data:www-data /ruta/al/directorio/de/datos/de/owncloud

 

La dirección de nuestro owncloud será http://host/owncloud.

Si tenemos un fqdn (fully qualified domain name) lo introducimos en vez de host. Podemos obtener uno gratuito en dyndns.com.

Si no tenemos el fqdn, introducimos la ip del servidor.

Si accedemos a él, desde el propio servidor, en vez de host, ponemos localhost.

Y nos aparecerá una pantalla como esta

owncloud1

Le damos a Avanzado, y seleccionamos Configurar la base de datos: MySQL

owncloud3

En nombre de usuario, introducimos el nombre que queramos para el usuario administrador de owncloud, así como la contraseña.

En directorio de almacenamiento puedo elegir el que quiera, pero recuerdo, debemos asignarle el usuario www-data.

En configurar la base de datos introducimos el usuario, password y nombre de la base de datos que hemos creado para owncloud.

 

Y ya tenemos instalado nuestro servidor owncloud.

 

Antes de salir, recomiendo entrar en personal y añadir nuestro correo electrónico, para poder recuperar la contraseña en caso de que la perdamos.ownpost1

 

Últimos ajustes

Ajustes de php

Necesitamos configurar php para que admita archivos grandes. Podemos hacerlo a través del terminal editando los archivos. /etc/php5/apache2/php.ini /etc/php5/cli/php.ini y pero es más cómodo y seguro hacerlo a través del módulo de webmin.

Para instalar webmin, vamos a http://webmin.com y descargamos el instalador con el comando wget. En el momento actual la última versión es la 1.650

wget http://netcologne.dl.sourceforge.net/project/webadmin/webmin/1.650/webmin_1.650_all.deb

Instalamos algunos paquetes necesarios

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python

Instalamos webmin y borramos el paquete

sudo dpkg -i webmin_1.650_all.debrm webmin_1.650_all.deb

Ahora podemos acceder al interface de webmin a través del navegador, en la dirección

https://ip_servidor:10000 (si accedemos desde el propio servidor https://localhost:10000)

Introducimos nuestro usuario y password y ya estamos dentro.

En el menú otros, seleccionamos PHP Configuration:

Damos al enlace Manage, y después den Resource Limits en cada uno de los ficheros y modificamos para que quede así.

phpconf2

Como maximum memory allocation, recomiendo poner una cuarta parte de la ram del servidor (pero es cuestión de ir probando).

Ajustes del .htaccess

Abrimos el .htaccess de owncloud con el siguiente comando

sudo nano /var/www/owncloud/.htaccess

Y modificamos las siguientes líneas

php_value upload_max_filesize 513Mphp_value post_max_size 513Mphp_value memory_limit 512M

Para que queden como los valores que modificamos en php.

php_value upload_max_filesize 20000Mphp_value post_max_size 20000Mphp_value memory_limit 2048M

Y reiniciamos apache

sudo service apache2 restart

Si queréis activar la encriptación SSL, lo podéis hacer siguiente el siguiente post.

 

 

Gracias a:

https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10

http://refugeeks.com/owncloud-setup-guide/