VirtualBox 4.3 + PhpVirtualBox en Ubuntu Server 14.04

imgvirtualbox1

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 trusty contrib

Actualizamos e instalamos VirtualBox y otros paquetes:

sudo apt-get update
sudo apt-get install build-essential virtualbox-4.3 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.3.16/Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack

 

Y finalmente añadimos nuestro usuario al grupo VirtualBox (donde user es nuestro nombre de usuario)

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 php5 libapache2-mod-php5

Reiniciamos apache

service apache2 restart

 

Descargamos y descomprimimos la última versión de phpvirtualbox en el directorio /var/www/html (en el momento actual la phpvirtualbox-4.3-1)

cd /var/www/html

wget http://heanet.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-1.zip
unzip phpvirtualbox-4.3-1.zip
mv phpvirtualbox-4.3-1 phpvirtualbox
rm phpvirtualbox-4.3-1.zip

 


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

cd /var/www/html/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.

Para optimizar los discos virtuales podéis mirar este enlace.

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

 

Transmission-daemon + transmission remote en Ubuntu 14.04 LTS

transmission

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

¿Qué es transmission?

El cliente para bittorrent transmission es uno de los más habituales y comunes programas de descarga, especialmente en Linux y OSX.

Objetivos

Instalar transmission como servicio en linux sin la interface de gnome para poder acceder a él a través de un navegador o un gestor remoto.

Paso 1. El servidor

1. Primero vamos a instalar una utilidad que nos permitirá añadir repositorios a apt-get, sin necesidad de editar el archivo /etc/apt/sources.list

$ sudo apt-get install python-software-properties

2. Ahora añadimos el repositorio de transmission

$ sudo add-apt-repository ppa:transmissionbt/ppa

3. En caso de tener instalada la versión de escritorio gnome de transmision podemos desintalarla con

$ sudo apt-get remove transmission-gtk

4. Actualizamos e instalamos transmission-daemon

$ sudo apt-get update
$ sudo apt-get install transmission-cli transmission-common transmission-daemon

5. Ahora vamos a crear un arbol de directorios para los archivos de descarga de transmission. En mi caso he dedicado un disco especialmente para ello, pero en este tutorial la ubicación del directorio está en el directorio home de vuestro ususario.

 $ mkdir ~/downloads
 $ mkdir ~/downloads/completos
 $ mkdir ~/downloads/incompletos

6. Unimos nuestro usuario al grupo debian-transmission y damos permisos a los directorios creados. Donde pone username, poneis vuestro nombre de ususario.

$ sudo usermod -a -G debian-transmission username
$ sudo chown -R username /home/username/Downloads
$ sudo chmod -R 775 /home/username/Downloads

7. Muy importante: para editar el archivo de configuración de transmission, debemos parar el demonio.

$ sudo service transmission-daemon stop

8. Editamos el archivo de configuración:

$ sudo nano /etc/transmission-daemon/settings.json

8a.- Activamos la lista de bloqueo de instituciones anti-p2p, y spam

    "blocklist-enabled": true,
    "blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",

8b,. Modificamos los directorios de descarga:

"download-dir": "/transmission/completos",
"incomplete-dir": "/transmission/incompletos",
"incomplete-dir-enabled": true,

8c.- Cambiamos el usuario y la password del usuario remoto de transmission, para aumentar la seguridad. Es importante que sea una password fuerte y un usuario distinto del habitual. Cuando arranquéis transmission de nuevo, si volveis a edita este archivos observareis que transmission lo ha encriptado. Además dejais en la lista blanca todas las redes para poder acceder desde fuera de casa.

«rpc-password»: «transmissionpassword«,
«rpc-username»: «transmissionuser«,
«rpc-whitelist»: «*»,
«rpc-whitelist-enabled»: true,

8d. Podeis también cambiar el puerto en que escucha transmission para el navegador web. Si es asñi modificad:

"rpc-port": 9091,

9. Iniciamos el demonio de transmission

$ sudo service transmission-daemon start

Paso 2. El cliente remoto:

Podéis descargalo en Google Code en el siguiente enlace transmisson-remote-gui . Es un cliente multiplataforma, lo hay incluso para android, y la configuración es muy sencilla. Simplemente hay que introducir la ip o nombre del servidor, el usuario y el password que hemos elegido. Por lo demás, las opciones son muy parecidas a las del cliente habitual de transmission.

Paso 3. Acceder a las descargas:

A través de Samba, Netatalk, sshd, ftp,… o cualquier otro servidor de archivos (hay que configurarlo, claro). Os recomiendo que los archivos los borréis desde el cliente remoto de transmission.

Gracias a:

Transmission-daemon + transmission remote en Ubuntu 12-04 LTS

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

¿Qué es transmission?

El cliente para bittorrent transmission es uno de los más habituales y comunes  programas de descarga, especialmente en Linux y OSX.

Objetivos

Instalar transmission como servicio en linux sin la interface de gnome para poder acceder a él a través de un navegador o un gestor remoto.

Paso 1. El servidor

1. Primero vamos a instalar una utilidad que nos permitirá añadir repositorios a apt-get, sin necesidad de editar el archivo /etc/apt/sources.list

$ sudo apt-get install python-software-properties

2. Ahora añadimos el repositorio de transmission

$ sudo add-apt-repository ppa:transmissionbt/ppa

3. En caso de tener instalada la versión de escritorio gnome de transmision podemos desintalarla con

$ sudo apt-get remove transmission-gtk

4. Actualizamos e instalamos transmission-daemon

$ sudo apt-get update
$ sudo apt-get install transmission-cli transmission-common transmission-daemon

5. Ahora vamos a crear un arbol de directorios para los archivos de descarga de transmission. En mi caso he dedicado un disco especialmente para ello, pero en este tutorial la ubicación del directorio está en el directorio home de vuestro ususario.

$ mkdir ~/downloads
 $ mkdir ~/downloads/completos
 $ mkdir ~/downloads/incompletos

6. Unimos nuestro usuario al grupo debian-transmission y damos permisos a los directorios creados. Donde pone username, poneis vuestro nombre de ususario.

$ sudo usermod -a -G debian-transmission username
$ sudo chgrp -R debian-transmission /home/username/Downloads
$ sudo chmod -R 775 /home/username/Downloads

7. Muy importante: para editar el archivo de configuración de transmission, debemos parar el demonio.

$ sudo /etc/init.d/transmission-daemon stop

8. Editamos el archivo de configuración:

$ sudo nano /etc/transmission-daemon/settings.json

8a.- Activamos la lista de bloqueo de instituciones anti-p2p, y spam

    "blocklist-enabled": true,
    "blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",

8b,. Modificamos los directorios de descarga:

"download-dir": "/transmission/completos",
"incomplete-dir": "/transmission/incompletos",
"incomplete-dir-enabled": true,

8c.- Cambiamos el usuario y la password del usuario remoto de transmission, para aumentar la seguridad. Es importante que sea una password fuerte y un usuario distinto del habitual. Cuando arranquéis transmission de nuevo, si volveis a edita este archivos observareis que transmission lo ha encriptado. Además dejais en la lista blanca todas las redes para poder acceder desde fuera de casa.

«rpc-password»: «transmissionpassword«,
«rpc-username»: «transmissionuser«,
«rpc-whitelist»: «*»,
«rpc-whitelist-enabled»: true,

8d. Podeis también cambiar el puerto en que escucha transmission para el navegador web. Si es asñi modificad:

"rpc-port": 9091,

9. Iniciamos el demonio de transmission

$ sudo /etc/init.d/transmission-daemon start

Paso 2. El cliente remoto:

Podéis descargalo en Google Code en el siguiente enlace transmisson-remote-gui . Es un cliente multiplataforma, lo hay incluso para android, y la configuración es muy sencilla. Simplemente hay que introducir la ip o nombre del servidor, el usuario y el password que hemos elegido. Por lo demás, las opciones son muy parecidas a las del cliente habitual de transmission.

Paso 3. Acceder a las descargas:

A través de Samba, Netatalk, sshd, ftp,… o cualquier otro servidor de archivos (hay que configurarlo, claro). Os recomiendo que los archivos los borréis desde el cliente remoto de transmission.

Gracias a:

Instalar Ubuntu-Server 12.04 LTS

¿Por qué Ubuntu-Server 12.04 LTS?

Primero porque es Ubuntu, es decir, es un sistema operativo linux basado en Debian orientado al usuario final en informática. Es una distribución más que probada, segura y relativamente fácil de configurar, además de que contamos con multitud de tutoriales para personallizarlo hasta la saciedad. Elegimos la versión 12.04 LTS, porque es la «Long Time Support» y seguirá habiendo actualizaciones hasta el 2017

¿Como obtener Ubuntu?

Podéis descargarlo en el sitio de Ubuntu. Os recomiendan la versión AMD64, pero yo he probado la i386 y funciona fenomenal, sobre todo en equipos con menos 2Gb de Ram. Un vez descargada la imagen, la grabáis en un CD, o si tenéis ubuntu ya instalado en algún ordenador o máquina virtual, podéis crear un usb stick de arranque. La primera pantalla que nos encontramos es

Tenemos que elegir el idioma

Una vez elegido el idioma instalamos el Ubuntu server De nuevo elegimos nuestro idioma, la distribución del teclado,.. y no ocurre nada interesante hasta que nos pide el nombre de la máquina. Si vais a instalar un servidor, lo lógico es tener acceso a el desde internet. Podéis obtener un dominio gratuito en www.dyndns.com. Una vez que lo tengáis es importante que lo escribáis en la siguiente página.

Ahora os pedirá el nombre del usuario y su contraseña. Es importante que no seáis cómodos y pongáis una contraseña fuerte, pues es la primera medida de seguridad del sistema. No me pongáis cumpleaños, el nombre de la tía Berta,…. meted un password aleatorio y lo apuntáis. Podéis generar uno en password.es

Os da la opción de cifrar vuestra carpeta personal, pero para un servidor no me parece buena idea. No está mal para equipos portátiles, si trabajas para la CIA y no quieres que nadie te robe el ordenador y te saque la información, pero en casa la seguridad va por otros derroteros. Cifrar significa consumir recursos, y no poder montar el disco duro en otro ordenador para sacar la información en caso de fallo. Así que os recomiendo que no lo hagáis.

Después aceptáis la zona horaria ( o no y la cambias) y llega el segundo momento fundamental el particionado del disco. Podéis montar un raid de arranque ( tiene que ser un raid 1) y configurar LVM, Podéis montar distintos raid y unirlos con LVM para que funcionan como un único disco expendiendo la capacidad. Merece la pena que perdáis tiempo y sesera en combinar todos los discos posibles para obtener la mayor capacidad y seguridad. Por ejemplo, en nuestra instalación de ejemplo, voy a armar un raid 1 para el sistema, y un raid 5 (con spare). A la partición root de Ubuntu le sobra con 10Gb, así que lo demás lo distribuimos como nos convenga. En la pantalla de particionado de Discos elegimos Manual

Consejos Previos Si ya habéis montado un raid o un LVM, sería aconsejable que antes de instalar Ubuntu-Server, arrancarais el ordenador con la distribución desktop del CD de ubuntu y teclearais el siguiente comando, donde sdX, puede ser sda, sdb,.. Con esto llenáis el disco de ceros y cualquier configuración anterior de raid, lvm se pierde, junto a todo lo demás claro, así que cuidado con no borrar nada que sea importante para vosotros.

dd if=/dev/zero of=/dev/sdX

Vasta con que contéis hasta 10 y con un Ctrl +C para el comando, porque solo necesitamos borrar los primeros sectores del disco. Si acaso los discos provienen de un hardware raid (por ejemplo, los teníais en raid en una placa AMD o Intel, o cualquier controladora….) es necesario que borréis antes los raid creados con el menú en que fueron creados, por que ni siquiera el dd es capaz de borrar algunos de los datos generados por estas controladoras. En la segunda pantalla tenemos toda la lista de discos, damos enter encima de cada uno de los discos y generamos una nueva tabla de particiones para todos y cada uno de ellos.

En una primera etapa vamos a escribir todas las particiones en tipo raid. Como quiero hacer un raid uno de arranque voy a utilizar el sda y el sdb como espejos. A ambos les he creado una partición de 300mb para el punto de montaje /boot, y el resto se lo he dejado al raid 1 donde montaré el sistema El resto de discos son para armar un raid 5 ( que sirve como copia de seguridad del disco físico, en caso de que falla uno de ellos. Un vez escrito todas las particiones como raid, elegimos Configurar Raid por Software, que os aparece en la segunda línea del menú en el que estáis. Aplicáis los cambios y os aparece un menú y elegís «Crear un dispositivo MD». 1º. Elegís un raid 1, después asignáis dos dispositivos, y dejáis cero libres en el raid. Elegís las particiones que formarán parte del raid y le dais a continuar. En el caso del raid de arranque

Repetimos el proceso para el raid1 del sistema

En el caso del Raid 5, vamos a seleccionar cuatro discos activos y dejamos uno libre. Esto significa que si falla uno de los discos, automáticamente el raid empezará a recomponerse con el disco que le hemos dejado libre. Otra opción es hacer un raid 6, y poner todos a funcionar. La ventaja es que hay una doble paridad, la desventaja es que el raid irá mucho más lento. El procedimiento es similar al anterior Una ves terminada esta parte nuestro esquema de partición quedará

Ahora vamos a formatear los nuevos raid. El raid de 300Mb para el arranque le damos formato ext2 , 1% reservado para el sistema y le asiognamosasignamos el punto de montaje boot. A los otros dos, de momento los formateamos como LVM.

El siguiente paso es configurar LVM. Seleccionamos la opción del menú «Configurar el Gestor de Volúmenes Lógicos» y guardamos lo anterior. Primero le damos a «Crear un grupo de volúmenes». En este paso podríamos asignar varios discos duros, o varios raids. Yo solo voy a elegir el raid de sistema.

Primero le damos un nombre al grupo de volúmenes y después podemos crear diferentes volúmenes lógicos para los puntos de montaje /, /home, /var según nos convenga y hasta llena el grupo de volúmenes. Después ya formateamos todo el sistema. El raid1 de 300Mb como ext2, 1% para sistema y punto de montaje /boot El raid 5 como ext4, 1% para sistema y punto de montaje Home El raid1 para sistema, ahora son dos volúmenes lógicos, el primero lo dejaremos para «/» y el segundo para «/var», ambos 1% para sistema y formato ext 4. En nuestro caso el esquema de partición quedará

Le damos a finalizar el particionado y escribir los cambios en el disco, que es la última línea del menú. Nos preguntará que si queremos que el sistema arranque si el raid está degradado: le decimos que si. Si tenéis un sistema con menos de 2Gb de Ram, o vais a utilizar el servidor para virtual izar, nos faltaría haber generado un partición swap de tamaño, el doble de vuestra ram. Si como yo no lo vais a usar no la necesitáis. El instalador se quejará, pero con no hacerle caso… El instalador seguirá, la línea del proxy la dejáis en blanco ( a no ser que tengáis acceso a un proxy decente), después activáis «Instalar actualizaciones automáticamente» Seguir la instalación dándole a todo que si hasta que  aparece la selección de programas. En mi caso como el uso va a ser para un servidor web casero selecciono …

Nos preguntara por el password del root de Mysql ( elegir un password fuerte diferente al del usuario anterior). El último paso es instalar Grub, que le decimos que instale en el «registro de arranque principal».

Los últimos pasos son cuando arranca el sistema. Entramos con nuestro usuario y password, y actualizamos el sistema ejecutando:

sudo apt-get update sudo apt-get upgrade

Como último paso modificamos el archivo /etc/hosts, y le asignamos al nombre que obtuvimos en dyndns.com a la dirección ip de nuestro servidor

sudo nano /etc/hosts   ### salimos con Ctrl + X, y le decimos si a modificar los cambios

Y ya hemos terminado el principio. Ahora sólo nos queda seguir montando lo que necesitamos.