Archive for the ‘servicios’ Category

TIPS & TRICKS: Acelerar la carga web con un Servidor DNS local (BIND9)

mayo 6, 2008

Acelerar la carga de una página web en nuestro ubuntu, puede pasar por instalar el servicio DNS en nuestra máquina.

El proceso para poder visualizar una página web pasa por:
– Obtener la dirección IP del recurso o página
– Obtener recurso (Descargar la página) para su visualización.

Con un servidor DNS en nuestro equipo, aceleraremos la primera parte, pues el translate de direcciones se almacena en nuestra cache local y se resolveria localmente.

COmo:? Aquí os dejo un link dónde indica como realizarlo de una manera muy sencilla. StepByStep

Montar un FTP en OpenSuSe (quick)

abril 18, 2008

Este post nos ayudará a instalar un servidor FTP pasivo en OpenSuSe.

Primero deberemos instalar el paquete necesario para nuestro servidor ftp, en nuestro caso usaremos vsftpd incluido en los repositorios. Para su instalación, abriremos un terminal y teclearemos, siempre como “root”:

$ zypper in vsftpd

(Podemos usar “Yast Software Management” para instalar dicho paquete de manera gráfica, tal como Synaptic en Ubuntu)

Una vez instalado vamos a activar el servidor FTP en el init script con tal de que el servidor FTP arranque automaticamente en el arranque de la máquina.

$ chkconfig –add vsftpd

Echo esto, vamos a proceder a arrancar el servidor FTP, para ello, como root teclearemos:

$ rcvsftpd start

Tras ello es el momento de abrir el puerto en el firewall para poder hacer uso del servidor FTP. Para ello abriremos el fichero SuSEfirewall2 con nuestro editor favorito (en el ejemplo vim):

$ sudo vim /etc/sysconfig/SuSEfirewall2

Debemos buscar la variable “FW_SERVICES_EXT_TCP” y asegurarnos que el servicio ftp aparece en la lista, quedando el fichero, por ejemplo, de la siguiente manera:

FW_SERVICES_EXT_TCP=”http https ftp”

Aplicaremos los cambios con el siguiente comando:

$ rcSuSEfirewall2 reload

Ya tenemos disponible el FTP listo para usarse.

Configuración FTP
Para configurar vsftpd editar /etc/vsftpd.conf.

Activar escritura:

write_enable=YES

Activar que los usuarios locales puedan logarse en el ftp

local_enable=YES

Por defecto, que un usuario no pueda mirar fuera de su directorio home

chroot_local_user=NO

Desactivar el logon anónimo

anonymous_enable=NO


Página del proyecto: http://vsftpd.beasts.org/
Mas detalles: http://www.brennan.id.au/14-FTP_Server.html

OpenLikewise – Toma contacto . Conexión Linux con Active Directory

abril 9, 2008

NOTA: Este manual trata de manera básica su instalación y su uso para la conexión. En posteriores post profundizaremos en la configuración del mismo, para adaptar dicho software a las necesidades de cada uno.

Hara un mes o así me entere de la existencia de este proyecto. Likewise permite a los Desktop y Servidores de Linux conectarse a un AD de Microsoft, lo cual, no solo hace que ambos entornos puedan convivir mejor entre ellos, si no que además , es una ventaja a la hora de intentar realizar la migración en PYMEs de equipos de a Linux. Sobretodo en lo referente a Desktop.

Likewise propone dos versiones de su producto, una Open y otra Enterprise (esta última de pago), En este post vamos a centrarnos en como instalar la versión de su producto en un Debian (= en Ubuntu). Para mas información al respecto pasaros por la página oficial: http://www.likewisesoftware.com/index.php

Otros Datos:

Precios versión Enterprise:
Workstation: 49$
Server: 249$

Descarga del producto:

Para descargar la versión Open deberemos registarnos (o no) en la siguiente página: http://www.likewisesoftware.com/download/. Tras ello se nos mostrarán los binarios para las diferentes distribuciones mas conocidas. Elegiremos la necesitemos guardando el instalador de la siguiente manera:

-> Botón derecho en el link -> Guardar Enlace como…

Fijaros que tenemos dos tipos de paquetes. La primera la versión cli, es usada en consola de comandos. La segunda, con GUI incorporada facilitará mas las cosas a los mas noveles.

Instalando Likewise-cli.

Una vez descargado el paquete, como usuario root procederemos a su instalación, para ello nos situaremos en el directorio dónde hayamos guardado el instalador y realizaremos:

$ sudo chmod 777 LikewiseOpen-4.1.0.2773-linux-i386-deb-installer

Ejecutaremos ahora el instalador:

$ sudo ./LikewiseOpen-4.1.0.2773-linux-i386-deb-installer

Y seguiremos los pasos tal y como mostramos en las siguientes capturas.

Una vez terminado, ya tendremos todo listo para poder conectar al dominio deseado.

Conectando con Likewise-cli a un Dominio

Para ello teclearemos:

$ /usr/centeris/bin/domainjoin-cli join NOmbreDominio CuentaConexion

Ejemplo:

$ /usr/centeris/bin/domainjoin-cli join Midominio.es Administrador

Es posible establecer la OU a la que queremos conectar con “–ou [Unidad Organizativa]

Ejemplo:

$ /usr/centeris/bin/domainjoin-cli join –ou Tecnicos Midominio.es Tecnico1

Instalación Likewise-gui

Los pasos a seguir són los mismos que seguimos anteriormente, pero deberemos ejecutar un nuevo ejecutable. Abriremos el terminal y nos situaremos en el directorio dónde guardamos el paquete GUI. Damos permisos y ejecutamos el instalador:

$ chmod 777 LikewiseDomainJoinGui-4.1.0.2773-linux-i386-deb-installer

Ejecutamos el instalador:

$ ./LikewiseDomainJoinGui-4.1.0.2773-linux-i386-deb-installer

y seguimos los pasos mostrados en las siguientes capturas:

———————————-

Una vez terminado, ejecutaremos desde un terminal o desde el lanzador (Alt+f2) el siguiente comando:

$ /usr/centeris/bin/domainjoin-gui

Ello arrancará un interface gráfico que ayuda a realizar la conexión, de todos modos la versión GUI parece aun un poco precaria en cuanto a opciones, por lo que os recomiendo el uso de la versión cli en modo consola por su customización y opciones.

un saludo
cristiansan

Compartiendo recursos con NFS

marzo 17, 2008

¿Que es NFS?

Network File System o NFS, es un protocolo del nivel de aplicación. NFS nos ofrece la posibilidad de utilizar recursos compartidos de diferentes máquinas como si estas fueran locales, es decir, podemos tener acceso a un directorio de una máquina remota de una manera transparente para el usuario, dando la impresión de que esa carpeta a la que accedemos esta en nuestra computadora.

NFS fue desarrollado por Sun Microsystems en 1984 para proveer de conectividad entre máquinas fuera cual fuera el sistema operativo y el protocolo de transporte. Este protocolo esta incluido en sistemas Unix y Linux.

El sistema NFS, al igual que muchos otros protocolos, se basan en la conexión cliente-servidor. NFS permite un ahorro de espacio en las estaciones de trabajo, ya que los datos se encuentran centralizados en un único equipo (servidor) y las estaciones acceden al disco del servidor de manera transparente. Cabe destacar que las operaciones realizadas con NFS son Síncronas.

Primeros pasos

Lo primero que necesitamos para proceder a montar un sistema de ficheros NFS, es un Servidor NFS. Para ello necesitaremos instalar los siguientes paquetes:

portmap
nfs-kernel-server
nfs-common

Configurando el servidor

Es el momento de configurar nuestro servidor. Para ello, sera necesario editar los ficheros:
/etc/exports <- Aquí indicaremos los recursos compartidos
/etc/hosts.allow <- Aquí indicaremos los sistemas que tendrán acceso a nuestros recursos
/etc/hosts.deny <- Aquí indicaremos los sistemas a los cuales se les rechazará el acceso

De echo, editando solamente el fichero /etc/exports el servidor NFs funcionaria correctamente, pero tendríamos un gran problema de seguridad, por lo que es necesario editar todos los ficheros comentados tal y como se indicará posteriormente.

Editando /etc/exports

Este fichero contiene una lista de entradas. Cada una de las entradas especificadas, indicará el directorio/recurso que será compartido. A continuación explicaremos de manera básica como configurar dicho fichero, para mas información, el equipo de FreeTux recomendamos leer el manual en linea de exports ($ man exports) para una completa descripción de las posibilidades de configuración del fichero.

una entrada típica del fichero exports podría ser:

directorio_servidor cliente1 (opción1,opción2)
cliente2 (opcion1,opcion2)

Dónde:

directorio_servidor = El directorio que vamos a compartir de nuestro servidor. Todos los subdirectorios incluidos en este también serán compartidos.
cliente1 y cliente2= Estación de trabajo a la cual damos acceso. Están pueden ser indicadas por su dirección DNS o por IP. En caso de indicar la dirección DNS, esta debe poder ser resuelta, ya sea, usando un servidor DNS o estableciendo la relación de nombre de host e IP en nuestro fichero /etc/hosts para que nuestro servidor pueda resolver la IP.
Opcion1,2= Estas opciones indican el nivel de acceso al recurso compartido. Estas pueden ser algunas de las que pueden ser utilizadas:

ro: Read-only: solo lectura, la máquina en cuestión solo dispondrá de acceso de lectura al recurso compartido.
rw: Read-write: Lectura/escritura, la máquina dispondrá de los permisos lectura/escritura sobre el recurso compartido.
no_root_squash: Cualquier fichero creado por root aparecerá como si hubiera sido creado por el usuario nobody en el servidor. Si esta opción esta activa, el usuario root del cliente dispondrá de los permisos de root dentro del recurso del servidor, algo que debería ser evitado por las implicaciones de seguridad que podrían tener.
sync: Esta opción evita la corrupción de datos si el servidor se reinicia.

A continuación, os mostramos un fichero /etc/exports de muestra:

/usr/local cliente_remoto1 (ro)
/home/cliente2 cliente_remoto2 (rw)

Esto indica lo siguiente:

Habilitamos que el equipo de nombre “cliente_remoto1” (el cual debe estar dado de alta en hosts para que pueda ser resuelta su dirección IP) tiene acceso de solo lectura al directorio local /usr/local
Habilitamos además para el equipo “cliente_remoto2” el directorio /home/cliente2, para el cual dispone de permisos de lectura/escritura y podrá ser utilizado como almacenamiento para dicho equipo.

Podemos también habilitar el acceso para rangos de IPs especificos, para ello utilizaremos la dirección de red y la mascara, como por ejemplo:

/home/recurso_compartido 192.168.0.0/255.255.255.0 (ro)

Con esta linea habilitamos el recurso para las 254 direcciones dentro de la red 192.168.0.1/255 siendo la 255 de Broadcast.

NOTA: Debemos evitar exportar recursos en FAT o VFAT, pues este sistema de ficheros no ha sido diseñado para compartirse y puede no funcionar del todo correctamente.

Los ficheros /etc/hosts.allow y /etc/hosts.deny

Estos ficheros son específicos para computadoras que pueden utilizar en la red los servicios de nuestra máquina. Cada linea de este fichero indica un servicio y el listado de máquinas.

Cuando nuestra máquina recibe una petición de servicio, lo primero que hace nuestro servidor es chequear el fichero hosts.allow en busca de alguna regla, en la cual este especificada la máquina que solicita el servicio. Si existe, dicha máquina podrá utilizar el servicio.
Si la máquina no es encontrada en hosts.allow, el siguiente paso es buscar en el fichero hosts.deny para comprobar nuevamente si aparece una regla que afecte a la máquina que solicita el servicio. Si existe, se deniega el acceso.
Si la máquina no dispone de ninguna regla que le afecte dispondrá de acceso a los servicios ofrecidos por el servidor.

Las conexiones pueden controlarse a nivel de red, deshabilitando puertos o filtrando IPS, pero este fichero nos ayuda a depurar aun mas la seguridad en nuestro servidor. Lo primero que haremos será añadir los servicios que serán utilizados para el mapeo de recursos, denegaremos todo acceso por defecto y de este modo solo dejaremos entrar aquellos que hayamos especificado en nuestro fichero hosts.allow.

El primer demonio que deberemos restringir es “portmapper”. Este demonio es el responsable para que lo clientes encuentren los servicios NFS. Restringir dicho demonio es la mejor defensa que podemos habilitar para que defender nuestro sistema NFS, ya que no es posible conocer si existe un servicio NFS en dicho servidor. El primer paso, pues sera editar el fichero /etc/hosts.deny, las sintaxis de cada linea son:

Servicio:IP (ALL indica que son todas las IPS)

En nuestro caso, añadiremos las siguientes lineas:

portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

Muchos administradores editan dicho fichero y incluyen una única entrada (ALL:ALL) el cual deniega todos los servicios a todas las IPS. Este es un buen método de seguridad, pero es necesario disponer del conocimiento necesario para saber que servicios deben ser accesibles para habilitarlos a hosts.allow, además de tenerlo constantemente presente, ya que en caso de instalar un nuevo servicio deberemos habilitarlo también.

Lo siguiente que debemos hacer es editar el fichero hosts.allow para garantizar el acceso a los servicios que especifiquemos. La sintaxis del fichero es la siguiente:

service: host o red, host o red, …

Cada host será un cliente con acceso. Supongamos que queremos dar acceso a una máquina llamada test1 con IP 192.168.0.3. Entonces editaremos el fichero hosts.allow y añadiremos la siguiente linea:

portmap: 192.168.0.3

Si quisiéramos añadir mas clientes, solo deberíamos añadir las ips a continuación separándolos mediante una “,”.

portmap: 192.168.0.3 , 192.168.0.4

y lo mismo haremos para el resto de servicios necesarios:

lockd: 192.168.0.3 , 192.168.0.4
mountd: 192.168.0.3 , 192.168.0.4
rquotad: 192.168.0.3 , 192.168.0.4
statd: 192.168.0.3 , 192.168.0.4

Si el número de máquinas es muy elevado es posible utilizar red/mascara tal y como se había comentado anteriormente para habilitar el recurso.

Comprobaciones

Para comprobar que los servicios necesarios están activos, realizaremos las siguientes comprobaciones:

$ ps aux | grep portmap

Comprobando que portmap esta levantado. Tras ello realizaremos lo siguiente:

$ rpcinfo -p localhost

Rpcinfo realiza una llamada de procedimiento remoto (RPC) a un servidor RPC e informa de lo que encuentra. Deberemos fijarnos sobretodo que nfs aparece. El resto de servicios que aparecen son también importantes y pueden ser habilitados y deshabilitados por host en host.allow y hosts.deny

Una vez hayamos echo los cambios necesarios en los ficheros indicados, debemos hacer el demonio nfsd lea de nuevo el fichero exports, para ello podemos reiniciar el servicio nfsd o realizar lo siguiente:

$ sudo exportfs -ra

Con ello obligamos a nfsd a releer y cargar el fichero exports.

Montando el recurso compartido en la máquina cliente

Tras haber realizado el proceso de configuración del servidor es necesario proceder a configurar el montaje del recurso compartido en el equipo cliente. Es necesario que este habilitado el modulo nfs o que este incluido en el kernel además de disponer los servicios portmap, lockd y statd para que funcione correctamente. Tras dicha comprobación procederemos a realizar el montaje del disco compartido.

Suponemos que tenemos un servidor llamado server1.test, del cual hemos decidido compartir una carpeta llamada /home/recursos. Primeramente crearemos un punto de montaje en nuestro equipo, dónde realizaremos el montaje de ese disco. Un lugar podría ser /mnt, por lo que crearemos una carpeta en esta ubicación:

$ mkdir /mnt/punto_montaje

Una vez realizado, realizaremos lo siguiente:

$ mount server1.test:/home/recursos /mnt/punto_montaje

Esto montara el recurso compartido, haciendo que la carpeta /mnt/punto_montaje sea realmente la carpeta /home/recursos.

Montando el recurso automáticamente al arrancar el sistema

Para ello deberemos añadir una linea en nuestro fichero /etc/fstab. Este fichero indica los puntos que son montados durante el arranque de nuestro sistema. Por ello añadiremos una linea lo cual hará que e recurso remoto sea añadido a nuestro sistema de ficheros nada mas arrancar la máquina. Siguiendo con el ejemplo haríamos:

server1.test:/home/recursos /mnt/punto_montaje nfs rw,hard,intr 0 0

Para mas detalles relacionados con NFS recomendamos la lectura del manual online NFS en la siguiente dirección, http://nfs.sourceforge.net/nfs-howto/.

INICIADOS – Soporte mediante control remoto.

marzo 12, 2008

Un usuario tiene muchas preguntas, sobretodo cuando migra a un nuevo sistema operativo, al cual, no esta acostumbrado. Estas preguntas, se traducen, mayoritariamente en llamadas a aquellos usuarios mas avanzados para que estos intenten solventarles la duda o el problema que tienen en su nuevo sistema.

Para ello y para facilitar las cosas, vamos ha realizar un brebe manual, básico, para proceder a realizar la administración remota. En esta parte, es necesaria la colaboración de ambas partes, pues es necesario que el usuario novel realize ciertas acciones para que podamos realizar la administración remota.

Básicamente, la administración remota, es un servicio por el cual un usuario, toma el control del escritorio del otro usuario, de modo, que su pantalla, se convierte en la pantala del usuario novel, pudiendo así solucionar sus problemas a distancia o enseñandole al usuario interactivamente como realizar las cosas.

Para ello….

PASOS USUARIO NOVEL

Deberemos ir a: Sistema -> Preferencias -> Escritorio remoto, tal y como podemos ver en la siguiente imágen.

admin1.jpg

Ello nos abrirá una ventana en la cual deberemos configurar el acceso para nuestro amigo/familiar salvaproblemas. Aquí podremos ver vaias opciones las cuales explicamos a continuación, aunque no són muy complicadas.

Compartición

Permitir a otros usuarios ver mi escritorio: No tiene mucha dificultad, para permitir el control de nuestro sistema, el usuario deberá poder ver nuestro escritorio por lo que vamos a permitir dicho control.
Permitir a otros usuarios controlar tu escritorio: Básciamente, eso. Sin ello activo, solo podrán ver nuestro escritorio, pero no capturar nuestra sesión, por lo que no tendrán control sobre el mismo.

Seguridad

Pedir confirmación: Esto habilita, que cuando un usuaro quiera conectarse a tu sistema, te aparecerá un recuadro solicitando confirmación. Aconsejo dejar marcada esta opción, así siempre sabreis si alguien intenta acceder remotamente y evitareis problemas (a menos que seais vosotros mismos que querais administrar vuestro equipo remotamente, para ello, dejaremos la opción desahbilitada, porque, … si no estamos en casa ¿quien va a aceptar la petición de entrada?)
Requerir al usuario que introduzca contraseña: No creo que haya problema aquí. Recomiendo que esta opción siempre este activada, introducid una contraseña fuerte y comunicarla al usuario que querais que administre vuestro sistema.

admin2.jpg

Con ello, ya tendremos preparado nuestro sistema para que se conecten a él. ¿Que mas necesitamos? pues, una dirección IP para que se conecten.

Cuando nos conectamos a Internet, se nos es asignada una dirección llamada IP que tiene el formato numero.numero.numero.numero. Esto es básicamente nuestro DNI dentro de internet. Un identificador único que identifica nuestra máquina.

Nuestra máquina tiene un nombre asignado, es posible usar este nombre de máqina para realizar la conexión, siempre y cuando tengamos definido en nuestro sistema, la relación entre el nombre de la máquina y la Ip, ello, lo veremos mas adelante.

Podemos ver nuestra dirección IP de varias maneras, para no complicaros la vida, os dejo un enlace, que deberis visitar: http://www.cualesmiip.com/. Nada mas entrar, vereis que aparece: “Tu IP real es X.X.X.X“. Este es el número que debereis dar a vuestro amigo.

PARTE USUARIO AVANZADO.

Una vez recibida la ip de nuestro querido amigo, para nada molesto, deberemos abrir un terminal y teclear:

$ vncviewer IP

Ello nos solicitará la contraseña, facilitada por el usuario novel, la introduciremos.

admin3.jpg

Si el usuario que solicita la asistencia activo anteriormente la opción “pedir confirmación” le aparecerá en la pantalla la solicitud para aceptar la conexión entrante, tal y como mostramos a continuación. Le daremos a aceptar.

admin4.jpg

Y una vez aceptado, el usuario avanzado verá en su escritorio, el escritorio de nuestro amigo novel y podremos administrarlo como si estuvieramos sentados en frente de su monitor.

adminfinal.jpg

NOTA: Recomiendo deshabilitar el escritorio remoto tras su uso, ya que el uso de vncviewer sin cifrar es un riesgo que debemos impedir

SCPONLY – Shell limitada para transferencia segura de ficheros

marzo 3, 2008

Scponly es una Shell alternativa para los administradores de sistemas que desean dar acceso remoto a usuarios para leer y escribir archivos locales sin proporcionar ningún tipo de privilegio de ejecución remota.

Es como decir que se trata de una envoltorio dónde se permite el testeo.

Su uso mas común, es la creación de una cuenta semi-pública al estilo cuenta anónima de ftp. Esto permite a un administrador compartir archivos de la misma forma que una configuración ftp anónima empleando la protección que ofrece ssh. Esto es especialmente útil cuando se realizán conexiones atravesando redes públicas, ya que en las conexiones ftp el formato de transferencia es texto plano.

Instalando scponly

Para ello, abriremos el terminal y teclearemos:

$ sudo apt-get install scponly

Configurando scponly

Primero de todo deberemos editar el fichero /etc/shells para incluir nuestra shell scponly. Para ello deberemos escribir lo siguiente, de nuevo, en un terminal:

$ sudo gedit /etc/shells

Deberemos situarnos en la última línea e introducir la siguiente linea:

$ /usr/bin/scponly

Terminado este punto, ahora deberemos crear un usuario para la shell de scponly. Este permitirá que el usuario pueda utilizar la cuenta SCP para la transferencia de archivos, pero no permitirá el acceso a la shell interactivo. Para ello:

$ sudo useradd -d /home/scponly/ -s /usr/bin/scponly -p [password] [nombre_usuario]

Chroot SFTP – Creando la gabía para las conexiones scponly

En este momento debemos reconfigurar scponlyc para poder activar la jaula. La jaula, nos permite, crear un entorno que simula el sistema operativo “completo” dentro de un directorio, esto hace que el usuario que se conecte parezca que este en el directorio raíz del sistema, con las aplicaciones disponibles que nosotros creamos convenientes, pero que realmente, esta dentro de un directorio /home/user/ que hayamos indicado, manteniendo de este modo, nuestros ficheros del sistema a salvo. Para ello abriremos un terminal y teclearemos:

$ sudo dpkg-reconfigure -plow scponly

Responderemos “Si/Yes“. Ahora debemos indicar que se use la jaula para el usuario scponly mediante el script setup_chroot incluido para ello. En caso de no haber creado el usuario para la conexión, el script lo creará por nosotros.

Por lo que, ahora, en un terminal, teclearemos lo siguiente:

$ cd /usr/share/doc/scponly/setup_chroot
$ sudo gunzip setup_chroot.sh.gz
$ sudo chmod +x setup_chroot.sh
$ sudo ./setup_chroot.sh

Si aceptamos las respuestas por defecto, se usará/configurará el usuario “scponly” y se creara su carpeta de inicio. Al final, deberemos especificar una contraseña para scponly.

NOTAS: scponly tiene un bug que no permite trabajar en la box. Para arreglar dicho problema deberemos crear el dispositivo /dev/null en el directorio chroot (jaula) de scponly (creado por defecto /home/scponly). La forma para realizarlo es:

$ sudo -i
$ cd /home /scponly
$ mkdir /home/scponly/dev
$ mknod -m 666 /home/scponly/dev/ null c 1 3

Terminado esto, para realizar la conexión deberemos realizar desde un terminal/consola:

$ sftp scponly@linuxtest

Sintaxis:

$ sftp [usuario]@[nombre_servidor/Ip_Servidor]

Si aparece el login, habremos terminado con éxito.

Página del proyecto: http://www.blinklist.com/open/open.php?id=202112

System76 anuncia servidores con Ubuntu 7.10 y ofrecerá los servicios de soporte de Canonical

febrero 27, 2008

Noticia original: http://www.ubuntu.com/news/system76-certified-servers

Systems76

Cluster de alta disponibilidad: Heartbeat2 Xen Cluster con drbd8 y OCFS2

febrero 4, 2008

Este artículo indica como realizar el setup en Ubuntu 7.10 (= para debian) de como preparar un cluster de alta disponibilidad con dos nodos de información redundante. Necesitaremos dos servidores idénticos (en nuestro caso, hemos echo el test con dos servidores virtuales), los cuales serán instalados con Xen hipervisor, y con la misma configuración de los nodos Cluster.

La configuración y archivos de imagenes virtuales Xen se almacenan en el dispositivo drbd. Drbd8 y OCFS2 permite el montaje simultaneo de ambos nodos, que es necesario para realizar la migración de las máquinas virtuales Xen.

Instalación.

1. – OS

Primero deberemos instalar dos máquinas con Ubuntu Server 7.10 Standard.

2. – Particionamiento

En ambos servidores, debemos organizar el disco en tres particiones, usados de la siguiente manera:

/dev/sda1 como /root
/dev/sda2 como swap
/dev/sda3 como drbd8

3. – Configuración de red

Para ello configuraremos nuestra máquina como indicamos a continuación:

Nodo Hostname Dirección IP
Nodo1 Nodo1 192.168.0.128
Nodo2 Nodo2 192.168.0.129

4. – Xen System

Para información adicional vistiad: http://es.wikipedia.org/wiki/Xen

Comenzaremos con la instalación de Xen Hypervisor y arrancaremos con Xen-Kernel. Para realizar la instalación, escribiremos en el terminal lo siguiente:

$ sudo apt-get install ubuntu-xen-server

Responderemos “Yes” a la pregunta de instalar software adicional necesario y una vez terminado reiniciaremos el sistema y arrancaremos con Xen.

5. – OCFS2

Para información adicional: http://oss.oracle.com/projects/ocfs2/

OCFS2 es un Sistema de ficheros en Cluster que permite el acceso simultáneo de multiples nodos. Deberemos definir nuestro dispositivo drbd para acceder a los nodos de la red simultaneamente. Primero configuraremos OCFS2 para proporcionarle información sobre los nodos para disponer de acceso al sistema de ficheros posteriormente. Cada nodo OCFS2 dispone de un sistema de ficheros montado, regularmente escribe un fichero meta-data permitiendo a los otros nodos saber que se encuentra disponible.

Para proceder a su instalación, en la consola, escribiremos las siguientes lineas:

$ sudo apt-get install ocfs2-tools ocfs2console

Una vez terminado procederemos a su configuración.

6. – Configuración

Editaremos el fichero /etc/ocfs2/cluster.conf como indicamos a continuación

$ sudo vim /etc/ocfs2/cluster.conf

Este debe tener el siguiente aspecto:

#/etc/ocfs2/cluster.conf
 node:
 ip_port = 7777
 ip_address = 192.168.0.128
 number = 0
 name = node1
 cluster = ocfs2
 node:
 ip_port = 7777
 ip_address = 192.168.0.129
 number = 1
 name = node2
 cluster = ocfs2
 cluster:
 node_count = 2
 name = ocfs2

Para reconfigurarlo de nuevo realizaremos lo siguiente:

sudo dpkg-reconfigure o2cb
sudo /etc/init.d/o2cb restart
sudo /etc/init.d/ocfs2 restart

7. – drbd8

Para mas información consultar: http://en.wikipedia.org/wiki/Drbd

Drbd8 permite a los recursos drbd ser “maestros” en ambos nodos, lo que permite montarse en lectura-escritura. Vamos a construir un módulo drbd8 y cargarlo en el núcleo. Para ello necesitamos instalar ciertos paquetes, por lo que teclearemos lo siguiente en la consola:

$ sudo apt-get install drbd8-utils drbd8-module-source drbd8-source build-essential linux-headers-xen
$ sudo sudo m-a a-i drbd8-module-source
$ sudo update-modules
$ sudo modprobe drbd

Ello cargará el módulo drbd. Tambien sera creado el archivo de configuración por defecto situado en /etc/drbd.onf

8. – Configuración

Para ello realizaremos la edición del fichero de configuración

$ sudo vim /etc/drbd.conf

Y deberá tener un aspecto como se indica a continuación:

#/etc/drbd.conf
 global {
 usage-count yes;
 }
 common {
 syncer { rate 10M; }
 }
 resource r0 {
 protocol C;
 handlers {
 pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
 pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
 local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
 outdate-peer "/usr/sbin/drbd-peer-outdater";
 }
 startup {
 }
 disk {
 on-io-error   detach;
 }
 net {
 allow-two-primaries;
 after-sb-0pri disconnect;
 after-sb-1pri disconnect;
 after-sb-2pri disconnect;
 rr-conflict disconnect;
 }
 syncer {
 rate 10M;
 al-extents 257;
 }
 on node1 {
 device     /dev/drbd0;
 disk       /dev/sda3;
 address    192.168.0.128:7788;
 flexible-meta-disk  internal;
 }
 on node2 {
 device    /dev/drbd0;
 disk      /dev/sda3;
 address   192.168.0.129:7788;
 meta-disk internal;
 } }

La opción “Allow-two-primaries” en drbd.conf es la que nos permite montar ambos nodos como maestro. Deberemos copiar el fichero /etc/drbd.conf al nodo2 y reiniciar drbd en ambos nodos. Para el reinicio realizaremos lo siguiente en ambas máquinas:

$ sudo /etc/init.d/drbd restart

Podemos chekear el estado de drbd con el siguiente comando:

$ sudo /etc/init.d/drbd status

Podemos cambiar el recurso a “maestro” mediante el siguiente comando (realizandose en ambos nodos).

$ sudo drbdadm primary r0

y tras ello podriamos chequear de nuevo el estado.Aquí veriamos los recursos en “Maestro”, esto hace que el dispositivo este ahora accesible en /dev/drbd0

9. – El sistema de ficheros.

Ahora es el momento de crear un sistema de ficheros en /dev/drbd0, para ello realizaremos lo siguiente:

$ sudo mkfs.ocfs2 /dev/drbd0

Este puede ser montado en ambos nodos simultaneamente con:

$ sudo mkdir /drbd0
$ sudo mount.ocfs2 /dev/drbd0 /drbd0

Ahora disponemos de un almacenamiento común que se sincroniza con drbd en ambos nodos.

10. – Init script

Debemos asegurarnos que al iniciar el sistema, ambos nodos deben montar el recurso maestro sobre /drbd0 antes de que se arranque Heartbeat y las máquinas Xen.

Para ello editaremos el fichero mountdrbd.sh

$ sudo vim /etc/init.d/mountdrbd.sh

el cual deberá contener las siguientes lineas:

# / Etc / init.d / mountdrbd.sh
 Drbdadm primaria R0
 Mount.ocfs2 / dev/drbd0 / mnt

ahora deberemos darle permisos de ejecución y añadiremos un enlace simbólico. Para ello:

$ sudo chmode +x /etc/init.d/mountdrbd.sh
$ sudo ln -s /etc/init.d/mountdrbd.sh /etc/rc3.d/S99mountdrbd.sh

Nota: este paso puede ser integrado también en Heartbeat añadiendo los recursos adecuados a la configuración.

11. – HeartBeat2

Para mas info, visitar: http://www.linux-ha.org/Heartbeat

Para su instalación teclearemos lo siguiente:

$ sudo apt-get install heartbeat-2 heartbeat-2-gui

Ahora editaremos el fichero de configuración

$ sudo vi /etc/ha.d/ha.cf

Dónde debemos dejarlo así:

#/etc/ha.d/ha.cf
 crm on
 bcast eth0
 node node1 node2

y reiniciaremos el servicio de la siguiente manera:

$ sudo /etc/init.d/heartbeat restart

12. – Configuración HB

La configuración e información de estado de los recursos se almacenan en formato XML dentro del fichero /usr/lib/heartbeat/crm/cib.xml. La sintaxis para su configuración esta muy bien explicada en la web por Alan Robertson disponible en: http://linux-ha.org/HeartbeatTutorials

Este puede editarse directamente o puede manipularse por modulos utilizando la herramienta “cibadmin”. Nosotros utilizaremos esta herramienta, pues facilita considerablemente el trabajo. Los componentes necesarios serán guardados en ficheros XML dentro de /root/cluster.

13. – Inicialización

Editaremos el fichero bootstrap.xml

$ sudo vi /root/cluster/bootstrap.xml

#/root/cluster/bootstrap.xml
[cluster_property_set id="bootstrap"]
 [attributes]
 [nvpair id="bootstrap01" name="transition-idle-timeout" value="60"/]
 [nvpair id="bootstrap02" name="default-resource-stickiness" value="INFINITY"/]
 [nvpair id="bootstrap03" name="default-resource-failure-stickiness" value="-500"/]
 [nvpair id="bootstrap04" name="stonith-enabled" value="true"/]
 [nvpair id="bootstrap05" name="stonith-action" value="reboot"/]
 [nvpair id="bootstrap06" name="symmetric-cluster" value="true"/]
 [nvpair id="bootstrap07" name="no-quorum-policy" value="stop"/]
 [nvpair id="bootstrap08" name="stop-orphan-resources" value="true"/]
 [nvpair id="bootstrap09" name="stop-orphan-actions" value="true"/]
 [nvpair id="bootstrap10" name="is-managed-default" value="true"/]
 [/attributes]
 [/cluster_property_set]

Cargamos este fichero ejecutando el siguiente comando:

$ sudo cibadmin -C crm_config -x /root/cluster/bootstrap.xml

Esto inicializa el cluster con los valores fijados en el fichero xml.

14 – Configuración del dispositivo STONITH

STONITH impide el “Split-brain-situation”, es decir, que corran recursos en ambos nodos de una manera inusual, al mismo tiempo. Stonith comprueba si un nodo esta muerto, que lo este, y en caso de no estarlo, lo mata.

Para mas detalles sobre STONITH visitar: http://www.linux-ha.org/STONITH

Nosotros utilizaremos stonith sobre ssh para reiniciar la máquina con defectos. Para instalar STONITH teclearemos:

$ sudo apt-get install stonith

Ahora seguiremos las indicaciones de este link para generar nuestra llave pública para la autenticación.
http://sial.org/howto/openssh/publickey-auth/

Tras ello probaremos si podemos acceder del nodo1 al nodo2 via ssh sin uso de contraseña y viceversa.

$ sudo ssh -q -x -n -l root “node2” “ls -la”

Esto debería mostrarnos por pantalla la lista de ficheros del nodo2. Ahora configuraremos el dispositivo STONITH como recurso Cluster. Será un recurso cluster especial, “clon”, que se desarollará simultaneamente en todos los nodos.

$ sudo vim /root/cluster/stonith.xml

[clone id=”stonithclone” globally_unique=”false”]
 [instance_attributes id=”stonithclone”]
 [attributes]
 [nvpair id=”stonithclone01” name=”clone_node_max” value=”1"/]
 [/attributes]
 [/instance_attributes]
 [primitive id=”stonithclone” class=”stonith” type=”external/ssh” provider=”heartbeat”]
 [operations]
 [op name=”monitor” interval=”5s” timeout=”20s” prereq=”nothing” id=”stonithclone-op01"/]
 [op name=”start” timeout=”20s” prereq=”nothing” id=”stonithclone-op02"/]
 [/operations]
 [instance_attributes id=”stonithclone”]
 [attributes]
 [nvpair id=”stonithclone01” name=”hostlist” value=”node1,node2"/]
 [/attributes]
 [/instance_attributes]
 [/primitive]
 [/clone]

Cargaremos el fichero de la siguiente manera:

$ sudo cibadmin -C -o resources -x /root/cluster/stonith.xml

15 – Xen como recurso Custer.

Ahora es el momento de añadir un máquina virtual Xen como cluster. Disponemos de una máquina Xen para la visualización llamada vm01. La configuración y los ficheros imagen de vm01 pueden ser encontrados bajo el directorio /drbd0/xen/vm01 como vm01.cfg y vm01-disk0.img respectivamente.

Para editar el fichero XML de configuración, realizaremos lo siguiente:

$ sudo vi /root/cluster/vm01.xml

Y lo dejaremos tal y como se indica a continuación:

[resources]
 [primitive id=”vm01” class=”ocf” type=”Xen” provider=”heartbeat”]
 [operations]
 [op id=”vm01-op01” name=”monitor” interval=”10s” timeout=”60s” prereq=”nothing”/]
 [op id=”vm01-op02” name=”start” timeout=”60s” start_delay=”0”/]
 [op id=”vm01-op03” name=”stop” timeout=”300s”/]
 [/operations]
 [instance_attributes id=”vm01”]
 [attributes]
 [nvpair id=”vm01-attr01” name=”xmfile” value=”/drbd0/xen/vm01/vm01.cfg”/]
 [nvpair id=”vm01-attr02” name=”target_role” value=”started”/]
 [/attributes]
 [/instance_attributes]
 [meta_attributes id=”vm01-meta01”]
 [attributes]
 [nvpair id=”vm01-meta-attr01” name=”allow_migrate” value=”true”/]
 [/attributes]
 [/meta_attributes]
 [/primitive]
 [/resources]

Para cargar este fichero realizaremos:

$ sudo cibadmin -C -o resources -x /root/cluster/vm01.xml

16 – Monitorizando

Para ello utilizaremos la herramienta “crm_mon”, con la cual podemos monitorizar los cluster, incluyendo los nodos y los recursos.

$ sudo crm_mon Refresh in 14s

Disponemos tambien de una aplicación gráfica para ello, pero debemos especificar antes un pass para “hacluster”. Para ello:

$ sudo passwd hacluster
$ sudo hb_gui &

Traducción post de AtulAthavale de UbuntuGeek

Bloqueando el acceso a internet para un usuario

enero 10, 2008

Este manual es muy será de ayuda en caso que queramos que un usuario en particular de nuestro sistema no tenga acceso a internet. Imaginemos que disponemos de varios usuarios, papi , mami e hijo, si queremos que “hijo” no disponga de acceso a internet, para ello realizaremos lo siguiente.

Primeramente abriremos un terminal y editaremos el fichero “interfaces” tal y como indico a continuación:

sudo gedit /etc/network/interfaces

Ahora necesitamos añadir una simple regla de “iptables” en el fichero “interfaces” que será aplicada cuando la conexión de internet se inicia.

Simplemente añadiremos la siguiente linea en nuestro fichero interfaces:

pre-up iptables -A OUTPUT -p tcp -m owner –uid-owner username -j DROP (Donde username sería en nuestro caso, hijo).

Para aplicarla ahora, lo que haremos será teclear la siguiente linea en nuestro terminal, substituyendo username por el usuario al cual le queremos quitar los permisos para internet:

sudo iptables -A OUTPUT -p tcp -m owner –uid-owner username -j DROP

Una vez terminado, si cambiamos a dicho usuario, o reiniciamos y entramos con el usuario hijo en nuestro caso, veremos que este no dispone de acceso a internet, habiendo sido bloqueado mediante la regla de iptables introducida.

YouTorrent.com

enero 7, 2008

YouTorrent.com es un buscador (actualmente en fase de desarollo) que nos permite la realizar busquedas de Torrents en tiempo real por la red. Una herramienta online muy buena, con la que ahorraremos mucho tiempo a la hora de realizar busquedas de Torrents.

La herramienta es muy rápida, personalmente, a mi me ha encantado y la he añadido al blogroll de “Herramientas Online”. Ideal para la busqueda de software, películas/series y música. Ventajas del Canón 😀

YOUTORRENT.COM