Nextcloud 12 en Ubuntu Server 16.04 con Redis, APcu, HSTS, letsencrypt …

Nextcloud 12 en Ubuntu 16.04con  Redis, APcu, HSTS, letsencrypt … howto con todo ( o casi)

 

Abstract

El objetivo de este artículo es crear un servidor en una máquina virtual para la sincronización de archivos de equipos de escritorio en una nube personal con Nextcloud 12. El sistema operativo elegido es Ubuntu Server 16.04, por su compatibilidad con todas las exigencias de nextcloud. La plataforma de virtualización es Virtualbox.

La última versión de Nextcloud se ha desatado y ofrece muchas mejoras y nuevas características (incluyendo algunas mejoras importantes en la interfaz de usuario). Algunos de los cambios incluyen:

  • Advertencia de cuota
  • JSloader app (permite al administrador incluir JavaScript en todas las páginas Nextcloud)
  • Impersonate app (permite a los administradores  suplantar a otro usuario).
  • Tiempo real de acciones globales para usuarios
  • Guest app (una manera perfecta para dar un temporal y el acceso restringido a un cliente o un socio para datos compartidos)
  • Excludedirs app (habilita una carpeta específica patrón para ser excluidos del indexado)
  • Facilita el uso compartido de la carpeta actual
  • Capacidad para mover archivos a través del menú en lugar de arrastrar y soltar
  • Secure Drop (caída segura): único vínculo público que se comparte a varios usuarios (cada uno con su propia configuración, como los permisos, protección de contraseña y fecha de caducidad de la comunicación y colaboración

Configuración de la máquina virtualen VirtualBox 5.1

Instalación del servidor

  • Usuario y password: se recomienda un nombre de usuario y password fuerte. Obtenlo aquí.
  • Nombre de la máquina: se recomienda un fqdn (nombre de dominio). Puedes recurrir a https://www.noip.com/ (algunas opciones gratuitas) o https://dyn.com/dns/
  • Es necesario para solicitar el posterior certificado SSL, gratuito con https://letsencrypt.org/.
  • Configuramos una IP fija, que estará abierta en nuestro router a los puertos 80 y 443, (para http y https respectivamente). Los DNS 8.8.8.8 8.8.4.4 (servidores de Google, sin comas, sólo
    espacios. Ponemos servidores gratuitos que podemos encontrar en https://www.lifewire.com/free-and-public-dns-servers-2626062
  • Elparticionado : 1Gb de swap, 10Gb para “/”, y el resto a “/var/www/cloud_data/
  • En selección de programas seleccionamos únicamente OpenSSH Server.
  • Activamos actualizaciones automáticas.
  • Reiniciamos y actualizamos con :

sudo apt-get update && sudo apt-get –y dist-upgrade && sudo reboot

Configuración del servidor:

  • Ingresamos por ssh ( en linux o MacOS) : ssh user@fqdns
  • Nota: Para hosts hospedados en otros sitios (VPS), verificar locale y usuario sudo.
  • Seguimos las instrucciones del tuto http://www.pacorabadan.com/2017/08/ubuntu-16-04-home-server-virtualbox-headless/
  • Instalamos dependencias
sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip unzip
  • Aseguramos MariaDB: introducimos la instrucción siguiente, y decimos a todo que si, incluyendo un password fuerte para el usuario root de MariaDB
mysql_secure_installation
  •  Creamos la base de datos (Nota: como el sitio va a dedicarse únicamente a Nextcloud, haremos que el root de MySQL coincida con el usuario de nextcloud)
mysql -u root -p

## When prompted, enter the MySQL root user password

CREATE DATABASE nextcloud;
GRANT ALL ON nextcloud.* to ‘root’@’localhost’
IDENTIFIED BY ‘PASSWORD’;
##Donde PASSWORD es el pasword del usuario root de MySQL
FLUSH PRIVILEGES;
exit;

 

Configurar Apache

Creamos el archivo /etc/apache2/sites-available/nextcloud.conf :

nano /etc/apache2/sites-available/nextcloud.conf

y pegamos el siguiente contenido:

Alias /nextcloud “/var/www/nextcloud/”

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

creamos un enlace simbólico:

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Activamos los módulos de apache que necesitamos

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod ssl
a2ensite default-ssl

reiniciamos apache

service apache2 restart

 

Instalando Nextcloud

Vamos al directrio /var/www y descargamos nextcloud (ir al sitio nextcloud.com para verificar la nueva version de nextcloud12), y damos permisos a apache

sudo su
cd /var/www
wget
https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip
unzip nextcloud-12.0.2.zip
rm nextcloud-12.0.2.zip
sudo chown -R www-data:www-data /var/www/cloud_data
sudo chown -R www-data:www-data /var/www/nextcloud

Iniciamos el instalador en el navegador, en la dirección http://ip_del_servidor/nextcloud/
NC setup

Lo primero entramos en Personal  y añadimos nuestra dirección de correo electrónico. Si entramos en administración podems ver algunos ajustes que nos quedan por hacer para mejorar la seguridad.
Avisos de seguridad NC

Instalamos el certificado SSL con lets encrypt:

Instalamos el cliente de python para letsencrypt

sudo apt install letsencrypt python-letsencrypt-apache

Creamos el certificado: sustitumos email y el dominio por el fqdn

sudo letsencrypt --apache --agree-tos --email your-email-address -d nextcloud.your-domain.com
Seleccionamos la opción Secure, para que todo el tráfico pase al https. Ahora, cuando vayas al sitio, serás recibido con la confirmación verde en la barra de URL confirmando que SSL está habilitado.
 Mientras estamos configurando Apache, vamos a editar los le-config y añadimos una línea al final del archivo después de la línea SSLCertificateKeyFile:
 
 nano /etc/apache2/sites-enabled/000-default-le-ssl.conf
<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
 </IfModule>

Instalamos APCu, Redis

y algunos módulos php adicionales:

sudo apt install php-apcu redis-server php-redis && sudo apt install php-zip php-dompdf php-xml php-mbstring php-gd php-curl

reiniciamos apache

service apache2 restart

 Configuramos Redis

sudo systemctl start redis-server
sudo systemctl enable redis-server
php --ri redis
sudo systemctl restart apache2
sudo phpenmod redis

Editamos

sudo nano /var/www/nextcloud/config/config.php

Y añadimos las siguientes lineas de código, antes de la línea );

‘memcache.distributed’ => ‘\OC\Memcache\Redis’,

'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),

ubuntu-16.04-redis-cache-nextcloud

Editamos /etc/php/7.0/apache2/php.ini
con nano: /etc/php/7.0/apache2/php.ini
con webmin: modificamos la ruta del módulo… /php5/… por …/php/7.0/… y editamos ( es más difícil cometer errore)

Modificamos las líneas:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

 

Conclusión:

Hemos pasado todas las directivas de seguridad de nextcloud y hemos reforzado el LAMP para aumentar la seguridad. Ya sólo nos queda descargar los clientes de nextcloud para nuestros equipos de escritorio y dispositivos.
nextcloudclientc

Gracias a:

 

¿Quieres pasarte a Linux? 5 Pasos.

Tux-G2Hoy en clase con mis alumnos de la URJC en Aranjuez he estado haciendo prácticas con SPSS, y les he recomendado encarecidamente que utilizen y aprendan PSPP y sobre todo R. Hay muchos programas de código abierto que son cada día más indispensables y provienen de Linux. Existen versiones para Windows y Mac, pero donde funcionan realmente bien es en el entorno nativo en el que nacieron.

Acto seguido, apareció la palabra : “Linux”. Muy pocos lo utilizan como sistema operativo base, pero casi todos estaban interesados en echarle un vistazo. Así que sin entrar en demasiados detalles… algunas pistas.

1º. Primer paso: virtualbox.

Lo que más frena a los usuarios a cambiar de sistema operativo es el “vértigo” a abandonar lo conocido, migrar todos los archivos, correos electrónicos,… prescindir de programas que nos han llevado muchas horas aprender,…. la solución a esta étapa de transición es instalar virtualbox.

Virtualbox es un programa de virtualización que permite correr un sistema operativo “como si fuera un programa” dentro de nuestro ordenador físico. Esto nos permite instalar cualquier distribución linux, windows, solaris,… e incluso aunque sólo es legal en máquinas Mac, se puede virtualizar OSX.  En este sitio encontraréis varios tutoriales sobre virtualización, aunque están mas orientados a la virtualización en servidores. En internet, y “googleando” encontraréis muchos “tutos” sobre como instalar, por ejemplo, un Windows XP.

2º. Segundo Paso: ¿ Y ahora qué?

Para todos los que sepáis un poquito de inglés, os recomiendo dos páginas:

  • Ubuntuguide .- Explica de forma sistematizada como hacerlo prácticamente todo lo que nos puede interesar a los usuarios habituales.
  • Howtoforge.- Suele tener tutoriales para instalar distintos sistemas operativos, y configurar servidores LAMP y similares, programas varios, …

3º. Paso Tres: preparar la migración.

  • Openoffice: La mayor parte de los documentos de la clásica office de MS se pueden editar en Openoffice y LibreOffice (que en origen eran la misma aplicación). La única aplicación no compatible es Access, y es normal, porque Openoffice conecta directamente con SQL que es mucho más potente.
  • Correo electrónico y Thunderbird: Thunderbird es el cliente de correo de Mozilla, que conoceréis más por el potentísimo navegador Firefox. La gran ventaja de este cliente es que es multiplataforma y podéis importar todos vuestros correos desde Outlook, y luego llevarlos a Linux.
  • Software no compatible: Virtualbox y wine.
    • Con Virtualbox, podéis instalar un Windows en Linux y ejecutar la inmensa mayoría de las aplicaciones, a excepción de las que requieres potencia gráfica. Si sois unos “jugones”, el sistema idóneo es Windows. Sin embargo,….
    • Con Wine podéis instalar programas de Windows directamente en Linux. Lo bueno es que los juegos que funcionan bien, funcionan muy bien, por ejemplo “World of Warcraft“, … lo malo es que es bastante inestable para la mayoría de las aplicaciones de ofimática, cono lo que hay que saber muy bien que versión es la que es más estable. Como regla general, todo lo que podáis instalar en el Windows virtual, mejor que mejor.

4º. Paso cuatro: pasarte a Linux.

  • Esto es un mero consejo y variará mucho de vuestro perfil como usuario de informática, pero:
    • Si no tenéis mucha idea, y queréis que la experiencia sea lo más comoda posible, las distribuciones recomendados son Ubuntu y Linux Mint.
    • Si tenéis pocos recursos, o queréis montar un servidor en casa, la distribución es Ubuntu Server y Debian.
    • Si tenéis muchos recursos en hardware, y queréis utilizar el ordenador en entornos empresariales, la distribución es CentOS (free), y Red Hat ( si podéis permitiros pagar el dinero de las licencias).
  • Yo uso Ubuntu para todo, incluso en entornos empresariales, pero también es cierto que “tuneo” el sistema operativo con el máximo detalle para impedir fallos en la seguridad, y hago un mantenimiento mensual para verificar las brechas de seguridad, y para eso hay que tener un nivel un poco más avanzado.

5º Paso: Paciencia.

  • Si necesitáis una aplicación, existe casi seguro, pero hay que encontrarla. Aquí os pongo algunos equivalentes:
    • Photoshop : GIMP.
    • CorelDraw y Adobe Illustrator: InkScape
    • MS Office: Openoffice.
    • Internet Explorer : Firefox ( ojo hay algunos sitios, sobre todo en las Administraciones Públicas “españolas” que cai te obligan a entrar con IExplorer. No hay problema, funciona muy bien con wine).
    • PiTorrent: Transmission ( y funciona infinitamente mejor).

Espero que os haya sido de utilidad. Si tenéis preguntas, os las contestaré encantado.

Comprimir archivos en Linux

CompressLa compresión de archivos es conocida por todos los usuarios de la informática. Dos son las ventajas que presenta para el día a día:

  1. Como su propio nombre indica, ahorra espacio, lo que facilita la transferencia de archivos a través de internet, y
  2. Transforma un conjunto de archivos en un archivo único, lo que también acelera la transferencia sobre tcp-ip.

En un entorno linux-server sin entorno gráfico, la compresión es uno de los procesos más sencillos para sacar copias de seguridad y restaurar ramas de directorios. Conserva los permisos y usuarios del entorno original. Aún así el uso de terminal puede resultar un poco “ortopédico”, y para facilitar ste proceso, os dejo las instrucciones de compresión, expansión de alguno de los formatos más habituales en linux.

ZIP

Es tal vez el formato más común de toda la historia de la compresión de archivos, incluso a día de hoy. Una de sus mayores ventajas es que está disponible en todos los sistemas operativos, ya sea Linux, OSX o Windows. La contrapartida es que no ofrece la mejor tasa de compresión. Tar.gz y tar.bz2 son superiores en este aspecto.

Para comprimir un directorio con zip, la instrucción en el terminal es la siguiente:

# zip -r archivo_destino.zip directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# unzip archivo.zip

TAR

Es el formato más común en el entorno Linux. Su gran ventaja es que consume muy poco tiempo y recursos de CPU, pro la tasa de compresión tampoco es muy elevada.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -zcvf archivo_destino.tar directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -zxvf archivo.tar

Si queremos extraerla en un directorio en concreto

# tar -zxvf archivo.tar -C /directorio/de/destino

TAR

Es el formato más común en el entorno Linux. Su gran ventaja es que consume muy poco tiempo y recursos de CPU, pro la tasa de compresión tampoco es muy elevada.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -cvf archivo_destino.tar directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -xvf archivo.tar

Si queremos extraerla en un directorio en concreto

# tar -xvf archivo.tar -C /directorio/de/destino

TAR.GZ

Este formato mezcla dos tipos de compresión, la tar con gzip, y es una de las mejores opciones, sino la mejor, respecto a la relación tasa de compresión y consumo de recursos.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -zcvf archivo_destino.tar.gz directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -zxvf archivo.tar.gz

Si queremos extraerla en un directorio en concreto

# tar -zxvf archivo.tar.gz -C /directorio/de/destino

TAR.BZ2

Este formato es el que ofrece la mejor tasa de compresión, pero también es el que más consume recursos de todos.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -jcvf archivo_destino.tar.bz2 directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -jxvf archivo.tar.bz2

Si queremos extraerla en un directorio en concreto

# tar -jxvf archivo.tar.bz2 -C /directorio/de/destino


Para implementar el formato privativo RAR a vuestra distro, podéis consultar el siguiente enlace.
Thanks to: http://www.simplehelp.net/2008/12/15/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/

Afinar la instalación Ubuntu Server 14.04 LTS LAMP (fqdn, dyndns, ssh,webmin, phpmyadmin)

lamp

Nota: versión actualizada a Ubuntu 16.04 aquí.

Este howto es la continuación del post Instalar Ubuntu-Server 14.04 LTS y tiene por objetivo mejorar la seguridad, y añadir un par de herramientas fundamentales:

  • Webmin: para administrar el sistema desde un navegador web, y
  • PhpMyAdmin: para administrar las bases de datos SQL y sacar copias de seguridad de estas.

La configuración del firewall no la incluyo (en mi caso, por ejemplo, tengo un firewall independiente)

Optimizar Ext4 y Ext3

raid

1. Ejecutar:

Actuamos como root

$ sudo -i

Para cada dispositivo de almacenamiento

$ tune2fs -o journal_data_writeback /dev/sdX

2. Editar /etc/fstab

$ nano /etc/fstab

Cada punto de montaje será un línea parecida a esta

# /dev/sda2
UUID=be2f0ac2-4683-4550-bcd1-704a1a840b3e / ext4 relatime,errors=remount-ro 0 1

La primera entrada es el UUID, una referencia única para dispositivo de almacenamiento equivalente a /dev/sdX. La segunda entrada es el punto de montaje “/”. La tercera son el tipo de formato de disco, “ext3/4”. La cuarta son las opciones de montaje, que son las que vamos a cambiar. La quita y sexta, “0 1”, se refieren a las opciones dump y pass.

Sustituimos las opciones por:

noatime,data=writeback,nobh,errors=remount-ro

La función no-atime evita escribir en el disco cuando accedemos a los archivos para leerlos.

la función data=writeback, sirve para evitar que los metadatos de los archivos sean escritos de forma lenta tras escribir los archivos. Esta opción no provoca corrupción en el sistema de archivos, pero puede provocar que los cambios mas recientes se pierdan si cae el sistema.

La opción barrier es un poco mas peligrosa. Se refiere a los límites de escritura. Si es igual a cero los elimina, si es igual a 1, los activa. Podemos prescindir de estas barreras si los discos están protegidos contra cortes de corriente. Sólo en este caso, incluimos la opción barrier=0,con lo que nos quedarían las opciones como

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

La opción nobh, intenta evitar la asociación de los “buffers” y “heads” a la información de mapeo del cache de bloques del disco. Sólo podemos activar esta opción, si activamos el modo writeback.

3. Guardamos el archivo y reiniciamos el sistema

Gracias a:

http://blog.smartlogicsolutions.com/

Servidor y cliente de streaming para casa: ¿Plex o iTunes?

plex-logoHace años recuerdo que conecte un PC directamente a la TV y como primera experiencia no estuvo mal, hasta que me di cuenta de que el ruido de los ventiladores no hacia posible ver las películas “como Dios manda”.

A día de hoy hay dos modelos a seguir. El más habitual es el de los discos multimedia, pero a mi nunca me ha llegado a gustar, seguramente por manías, y por una única razón y es el espacio limitado de los discos que te obliga a subir y bajar archivos al propio disco duro.

El segundo modelo es contar con un servidor de streaming y un cliente.

apple-tv-3-xl

En el mundo mac, es un ordenador con iTunes y la Apple TV. No es nada caro y la calidad de la appleTV es la mejor del mercado. Sin embargo, para un cinéfilo como yo que tengo unas 1200 películas (1,5TB) y sigo ampliando la colección, el interface de la ATV se queda demasiado corto. No puedes ordenar por Director, Año, Género,… y todo esto si lo consigues con otros servidores de streaming como Plex y XBCM, que son Software libre y corren en OSX y Linux.

El segundo modelo y el que yo os recomiendo aun siendo usuario de Mac, es Ubuntu + Plex + Android.

androide-tv-mandoEl secreto para que esto funcione bien es buscar un Android TV Stick, con suficiente RAM y Disco duro como para ir desahogado. Lo ideal son 2Gb de Ram, y 16Gb de Disco duro.  Lo que significa que os va a costar mas o menos igual que una Apple TV. Pero la experiencia para el cinéfilo es muy superior.

Android_TV_box

Imagina que quieres pasar un fin de semana con Marlon Brando en la Tele. Con la Apple TV es una pesadilla localizar las películas en cuanto tienes 300 peliculas o mas. Sin embargo con Plex, es tan sencillo como ordenar por actores y buscar a Marlon, y tienes todas las películas al alcanze de un click.

La Apple TV3 ha sido el primer dispositivo de Apple en ser imposible de hackear para los desarrolladores de Plex, es decir, no hay manera de instalar la aplicación. Sin embargo, ha surgido un proyecto denominado PlexConnect, que te permite modificar algunos parámetros de la ATV, y el servidor de streaming para poder acceder a Plex.

Durante un tiempo pude usar Plex, pero enseguida Apple modifico el protocolo del http, al https, para impedir que Plex entrara en sus dispositivos.

Supongo que es cuestión de tiempo que PlexConnect vuelva a funcionar, pero también supongo que es cuestión de tiempo que Apple vuelva a reaccionar. La gran desventaja de PlexConnect es que si tienes un servidor web armado en casa, como es mi caso, esto interfiere con el servidor Plex, con lo cual es una pesadilla. Yo lo soluciones montando una máquina virtual solo para Plex.

Las nuevas TV de Samsung y LG, denominadas Smart TV’s, tienen integrada la posibilidad de instalar Plex directamente en el televisor, lo que hace mucho más fácil el uso de Plex.

Otra posibilidad bastante interesante es montar un windows XP en virtualbox con iTunes y acceder al mismo directorio que Plex, con lo cual podéis hacer streaming con ambos servidores.

plexipad

Para aquellos que tengáis el ATV y un iPhone o iPad, os recomiendo usar una aplicación del appstore de nominada Plex. que os permite acceder al interface de Plex, y luego por airplay reproducirla en la ATV. Es la forma mas sencilla de usar Plex en un entorno Apple.

Comprimiendo y etiquetando vídeo en Ubuntu y OSX

El formato del DVD y del Bluray se van acercando lentamente a la extinción , lo cual me entristece pues como paso con los vinilos y los CD’s al pasar al formato mp3, se perdió la magia del diseño gráfico.

El destino de las videotecas pasa por digitalizar nuestras películas y colgarlas en un servidor multimedia de streaming. Para poder moverse al nuevo modelo necesitamos cubrir tres partes: compresión, servidor de streaming y cliente de streaming. Esto os lo contaré en tres posts diferentes que os iré enlazando.

Luego este post os da una idea de como preparar las películas para posteriormente reproducirlas en los nuevos formatos digitales.

1. Ripeo, o Extracción de las películas contenidas en DVD’s y BluRays.

Para pasar nuestros DVD’s y BluRay’s a un formato de video digital compatible. Yo os recomiendo el formato mkv (matrovska) o el formato m4v con el codec H.264. No hay perdida de calidad.

makemkv_icon_by_climber07-d5y4zp7El programa fundamental para extraer las películas , y por ahora gratuito es makemkv. Es simplemente grandioso porque a partir de un DVD, pasa las películas y capítulos de serie directamente a formato mkv, que si bien ocupa lo mismo que en el DVD, nos permite tener bien organizada la colección para una posterior compresión.

 

 

 

 

 

 2. Compresión y Formato.

logoEl programa recomendadopara comprimir video es Handbrake. Hay que aprender a ajustar los parámetros de compresión, pero merece la pena. Es Opensource y por tanto gratuito. Tanto makemkv, como handbrake tienes versiones para Linux y OSX.

Yo en la práctica, trabajo en OSX con varias aplicaciones de pago que tampoco son demasiado caras. Os recomiento el MP4Tools y el Total Media Converter. Son mucho mas sencillos que Handbrake, el primero tiene como backend a ffmpeg, y el segundo a mencoder.  Las tasas de compresión en total media converter son espectaculares. y mp4tools permite traducir mkv comprimidos con H.264, a formato mp4 sin necesidad de tener que volver a comprimir el video.

 

 

3. Formatos y etiquetado.

iflicks

 

El formato mkv, permite tener multiples pistas de audio y subtitulos, lo que en la práctica es el mejor soporte si queremos conservar las versiones originales.

El formato m4v permite añadirle el poster de la películas, el nombre del director, actores, año,…. lo cual está muy bien, porque así no dependemos de una base de datos externa que se pued perder. Este formato es privativo de Apple, orientado a iTunes.

Si estais en OSX el gran programa para etiquetar las películas es iFlicks, y no conozco ninguna alternativa en el mundo del software libre lo cual es una lástima.

Si vais a montar el servidor el Linux os aconsejo el formato mkv con el codec H.264, y el etiquetado lo haremos con posterioridad en el servidor de streaming.

 

No os hago un howto de como instalar estos programas porque no tiene ningún misterio. Se instalan como cualquier otro programa en Linux con apt, o moviendo el programa al Aplications Folder del Finder en OSX.

VirtualBox + PhpVirtualBox Ubuntu Server 12.04

imgvirtualbox1

Nota: Versión actualizada a Ubuntu 16.04 aquí.

Objetivo:

Ejecutar máquinas virtuales en un servidor ubuntu 12.04 LTS, sin interfaz gráfica, para acceder a ellas de forma remota.

 

Instalación de VirtualBox Headless.

 

Añadimos la clave de apt de virtualbox

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

 

Editamos el archivo de fuentes de apt

sudo nano /etc/apt/sources.list

 

Y añadimos el repositorio a apt de VirtualBox, añadiendo la siguiente línea

deb http://download.virtualbox.org/virtualbox/debian precise contrib

Actualizamos e instalamos VirtualBox y otros paquetes:

sudo apt-get update
sudo apt-get install build-essential virtualbox-4.2 dkms

 

Descargamos e instalamos el “extension pack” para tener acceso a funciones como el USB 2.0, y el servidor rdp que necesitamos para instalar phpvirtualbox. La última versión la podemos encontrar en http://www.virtualbox.org/wiki/Downloads. En el momento actual :

cd /tmp
wget http://dlc.sun.com.edgesuite.net/virtualbox/4.2.16/Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack

 

Y finalmente añadimos nuestro usuario al grupo VirtualBox

sudo adduser user vboxusers

 

Instalar phpvirtualbox.

La página del proyecto es http://sourceforge.net/projects/phpvirtualbox/

Actuamos como root

sudo su

 

Añadimos nuestro usuario habitual al acceso web de VirtualBox editando …

nano /etc/default/virtualbox

Y añadimos la línea

VBOXWEB_USER=User

En User ponemos nuestro usuario

Ahora creamos los enlaces de inicio del vboxwebsrv

update-rc.d vboxweb-service defaults
/etc/init.d/vboxweb-service start

 

Añadimos unos cuantos paquetes para el servidor Apache + PHP

apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apache2 apache2-doc apache2-suexec libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php5-common php5-mysql php5-suhosin php-pear wget unzip

Reiniciamos apache

sudo service apache2 restart

 

Descargamos y descomprimimos la última versión de phpvirtualbox en el directorio /var/www

cd /var/www
wget http://surfnet.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-7.zip
unzip phpvirtualbox-4.2-7.zip
mv phpvirtualbox-4.2-7 phpvirtualbox
rm phpvirtualbox-4.2-7.zip

Ahora entramos dentro del directorio de phpvirtualbox y hacemos copia de seguridad del archivo de configuración.

cd /var/www/phpvirtualbox/

 

cp config.php-example config.php

 

Modificamos config.php

nano config.php

Y modificamos las siguientes líneas. Introducimos usuario y contraseña de nuestro usuario.

[...]
/* Username / Password for system user that runs VirtualBox */
var $username = 'user';
var $password = 'secret';
[...]

 

Y ya podemos acceder al interface de phpvirtualbox tecleando

http://ip_servidor/phpvirtualbox.

 

El usuario es “admin”, y el password “admin”. Por tanto lo primero que tenemos que hacer es cambiarlo. En File, Chage Password.

A partir de aquí el uso es similar al cliente gtk de virtual box.

Si la máquina virtual que instaláis es linux, os recomiendo que después de instalar los “guest tools”, instaléis xrdp en español.

 

Gracias a:

http://www.howtoforge.com/managing-a-headless-virtualbox-installation-with-phpvirtualbox-ubuntu-12.04

 

http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.1-on-a-headless-ubuntu-12.04-server

 

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