Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas

martes, 27 de abril de 2010

Crear sistemas de archivos cifrados con Ubuntu

Existen varias formas de cifrar sistemas de archivos en Linux, de hecho en la siguiente url https://help.ubuntu.com/community/EncryptedFilesystems se pueden consultar guías para realizarlo en Ubuntu.

Como ejemplo vamos a utilizar una forma sin entrar en discusiones de si es la mejor o la peor.

Primero vamos a crear un archivo con datos aleatorios que será el que contenga el sistema de archivos y que cifraremos para que nadie pueda ver su contenido.

Para hacer la prueba vale con un archivo de 100MB.

sudo dd if=/dev/urandom of=almacen bs=1M count=100

Ahora asociamos un dispositivo de tipo loop con el archivo que contendrá el sistema de archivos cifrado. Hay que hacer esto porque vamos a tratar el archivo como un dispositivo de bloques (dispositivo loop + archivo = dispositivo de bloques). Esto se consigue con el comando losetup y como se va a cifrar hay que especificar el algoritmo de cifrado. En esta caso se va a usar Blowfish con clave de 2048 bits. Existe mas algoritmos: XOR, AES128, AES192, AES256, twofish128, twofish160, twofish192, twofish256, blowfish128, blowfish160, blowfish192, blowfish256, serpent128, serpent192, serpent256, mars128, mars192, mars256, rc6-128, rc6-192, rc6-256, tripleDES,...

sudo losetup -e blowfish2048 /dev/loop0 almacen

En este momento hay que introducir la contraseña que se usara para proteger la clave que se va a generar para cifrar los datos. Si se obtienen el siguiente error: "ioctl: LOOP_SET_STATUS: No existe el fichero ó directorio" es necesario instalar el modulo para el cifrado que se va a utilizar.

sudo apt-get install loop-aes-utils
sudo losetup -e blowfish2048 /dev/loop0 almacen

Ahora hay que crear el sistema de archivos (dar formato) dentro del archivo.

sudo mkfs -t ext3 /dev/loop0

Lo siguiente es crear un punto de montaje para el sistema de archivos encriptado y montarlo.

sudo mkdir /mnt/cifrado
sudo mount -t ext3 /dev/loop0 /mnt/cifrado

A partir de este instante todo lo que se guarde en /mnt/cifrado quedara cifrado e inaccesible si no se tiene la contraseña. Así que cuidado con perderla.

Para terminar, una vez que ya se ha terminado de usar el sistema de archivos, hay que desmontarlo y eliminar la asociación entre el dispositivo loop y el archivo que contiene el sistema de archivos.

sudo umount /mnt/cifrado
sudo losetup -d /dev/loop0

miércoles, 21 de abril de 2010

Instalación de una red social usando Elgg

Elgg es una plataforma de redes sociales open source que podemos utilizar para crear nuestra propia red social al estilo facebook, twiter o twenti.

Para instalarla necesitamos:
  • Apache con el modulo rewrite activado.
  • MySQL 5+.
  • PHP5.2+ como modulo de Apache y los módulos GD, JSON y Multibyte String.
Estos requisitos se pueden consultar en la página oficial de Elgg http://www.elgg.org. Igualmente el la página oficial se puede encontrar una guía de instalación y el enlace para la descarga, tanto en zip como en tarball (tar.gz).



A pesar de tener una guía paso a paso del proceso de instalación, dependiendo de la distribución Linux y del software instalado puede resultar mas o menos difícil conseguir que funcione.

Supongamos que disponemos de un Ubuntu 9.10 con Apache 2, MySQL y PHP5 instalados desde los repositorios de Ubuntu. Lo mas probable es que falte el modulo php5-gd, el resto de módulos php5 necesarios se instalan por defecto al instalar php5.

Lo primero que vamos a hacer es preparar Apache para instalar Elgg. En nuestro sistema el directorio de publicación por defecto es /var/www. En este directorio vamos a crear dos directorios, /var/www/elgg y /var/www/data. Al directorio /var/www/data le vamos a poner permisos 775 y el grupo www-data que es el grupo con el que se ejecuta Apache. En la configuración del servidor cambiamos la directiva DocumentRoot y Directory para usar el directorio /var/www/elgg .



Ahora vamos a configurar el servidor MySQL. Nos conectamos como root al servidor y creamos una base de datos llamada elgg (create database), creamos un usuario llamado elgg con password elgg (create user) y le damos permisos al usuario elgg sobre la base de datos elgg (grant).




Ahora entramos con el navegador a http://127.0.0.1/ para completar la instalación vía web. Introducimos los datos de la base de datos:
  • usuario: elgg
  • password: elgg
  • base de datos: elgg
  • servidor:localhost
Y guardamos. Como el servidor no puede escribir en el directorio /var/www/elgg/ hay que crear los archivos /var/www/elgg/engine/settings.php y /var/www/elgg/.htaccess manualmente copiando el contenido que aparece en la página web. Una vez creados, recargamos la página. En este punto aparecerá un error indicando lo siguiente: "/action/systemsettings/install was not found on this server".
Esto es por que se esta ignorando el archivo .htaccess o porque no esta habilitado el módulo rewrite en apache.



Como por defecto la configuración de apache ignora el archivo .htaccess es necesario modificarla para que con la directiva AllowOverride se permita al archivo .htaccess modificar la configuración. Mirando un poco el archivo se puede deducir que opciones tenemos que permitir, así que nada de poner AllowOverride All.



También hay que tener en cuenta que el archivo .htaccess hace referencia al modulo rewrite de Apache y por lo tanto hay que activarlo. Esto se hace creando un enlace simbólico en el directorio /etc/apache2/mods-enables que apunte al archivo /etc/apache2/mods-available/rewrite.load.




Y para finalizar volvemos al navegador y completamos la instalación siguiendo los pasos: rellenar los datos de la red social y crear el primer usuario, que también sera el administrador. Lo siguiente es iniciar sesión con el administrador y administrar la red social.


martes, 20 de abril de 2010

Introducción a la configuracion de Apache 2 en Ubuntu 9.10 (karmic)

Esta introducción de la configuración del servidor web apache es para aquellas personas que han usado apache desde el código fuente o desde distribuciones como RedHat, Fedora o CentOS y ahora se pasan a Ubuntu.

Cuando se instala el servidor web apache2 en Ubuntu 9.10 se utiliza como directorio de publicación /var/www y como directorio de configuración /etc/apache2.

Dentro del directorio de configuración podemos encontrar varios archivos, cosa extraña para aquellos habituados al httpd.conf de la instalación de apache desde el código fuente.

El archivo apache2.conf contiene la configuración proporcionada por Ubuntu y por lo general no es necesario tocarlo. Si se quieren hacer cambios en la configuración general del servidor se pueden hacer en el archivo httpd.conf que seguramente estará vació.

La configuración/instalación de los módulos se realiza mediante los directorios mods-enabled y mods-available. Para activar un modulo lo único que hay que hacer es crear dentro del directorio mods-enabled un enlace simbólico que apunte al archivo .load del directorio mods-available usando el mismo nombre.

Para modificar la configuración de los sitios hay que utilizar los directorios sites-enabled y sites-available. El sitio que viene definido por defecto es sites-enabled/000-default.