Make y herramientas de desarrollo en CentOS/RHEL/Debian/Ubuntu?

En centos se puede con

shell> yum groupinstall "Development Tools" 

Que instala el ambiente de desarrollo completo incluido en linux

ó

shell> yum install gcc gcc-c++ kernel-devel

Que instala las herramientas más comunes del ambiente de desarrollo y que generalmente son usadas a la hora de compilar paquetes

En debian se hace con

shell> apt-get install build-essential

Configurando Fecha y Hora en GNU/Linux

Published by in GNU/Linux on febrero 3rd, 2012

No he logrado aprenderme este tipo de comandos de memoria, y cada vez que necesito modificar la hora de mi sistema tengo que mirar en google. Solo por eso lo voy a escribir:

Supongamos queremos poner: 03-Febrero-2012 y la hora 08:53.
Esto lo haremos como root:

shell> date – -set “2012-02-03 08:53″
vie feb 3 08:53:00 COT 2012
Ahora realizaremos el mismo cambio para actualizar la fecha en la BIOS.
# hwclock – -set – -date=”2012-02-03 08:53″
Para comprobarlo tecleamos:
shell> hwclock
vie 03 feb 2012 08:55:03 COT -0.186785 seconds
Y ya está!

Si en algún momento reinicias el PC se creará el fichero /etc/adjtime, y como no vendrá especificada zona horaria, pondrá la local.

Configurando SSH, SCP y Rsync sin pedir contraseña en OpenSSH

Published by in GNU/Linux on febrero 2nd, 2012

En distintas tareas es muy últil poder usar estos servicios sin necesidad de pasar contraseña, solo para aquellos que confiarán en nuestras conexiones.

Lo primero que debemos hacer es asegurarnos que openssh esta corriendo en los dos equipos:

server1> ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

server2> ssh -V
OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010

Donde server 1 es el equipo desde donde vamos a conectarnos, y server2 es el equipo que confiará en nuestras conexiones ssh

Existen dos formas de establecer la conexión sin que sea solicitada una contraseña:

  • No passphrase: Mientras se crea el par de llaves necesarias para la configuración, llave privada y llave publica, el sistema solicitará un password que deberá dejarse en blanco. Tenga en cuenta que este tipo de comunicaciones no deberían hacerse con frecuencia y sin las condiciones de seguridad necesarias, pero son muy útiles para generar scripts automatizados con crontab.
  • Usando Password y SSH Agent: Podemos hacer que nuestra sesión actual no solicite password para estas conexiones, pero una vez terminada esta sesión no tendrá validez. Esto es muy útil para días o jornadas en los que tengamos que realizar muchas conexiones de este tipo y no queremos molestarnos digitando el password en cada una de ellas.

Ahora generamos las dos llaves en el server1:

server1> cd /root
server1> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
16:17:f5:8e:84:53:6f:0d:db:52:78:43:62:ad:ed:03 root@server1

En este caso vamos a realizar las conexiones con root, tanto en server1 como en server2. Tenga en cuenta que si lo desea hacer con root debe asegurarse que en el archivo de configuración de ssh, generalmente /etc/ssh/sshd.conf tiene habilitado conexiones como root en server2:

PermitRootLogin yes

Idealmente realice estas conexiones con usuarios mortales y no con root.

Ahora instale la llave pública en el server remoto, en este caso server2

server1> scp /root/.ssh/id_rsa.pub root@server2:/root/.ssh/authorized_keys2

Luego ajustamos los permisos de esta llave y su directorio en server2

server2> chmod 700 /root/.ssh
server2> chmod 600 /root/.ssh/authorized_keys2

En este punto, si no colocamos password al generar las llaves ya debería funcionar. De lo contrario iniciamos ssh-agent para que no solicite password en la sessión activa:

server1> ps -ef | grep ssh-agent

511       9789  9425  0 00:05 pts/1    00:00:00 grep ssh-agent
server2> ssh-agent $SHELL

server2> ps -ef | grep ssh-agent

 511       9791  9790  0 00:05 ?        00:00:00 ssh-agent /bin/bash
511 9793 9790 0 00:05 pts/1 00:00:00 grep ssh-agent

Ahora cargamos la llave privada en el ssh-agent de server1:

server1> ssh-add

nter passphrase for /root/.ssh/id_rsa: <Enter your passphrase here>
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

Y eso es todo, en este momento de cualquier forma debe estar funcionando.

Instalando y Configurando Squid

De forma muy resumida pones un proxy squid a funcionar de la siguiente forma:

shell> apt-get install apache2
shell> apt-get install squid
shell> apt-get install squidguard

Con esto debemos tener puerto 80 y 3128 abiertos, podemos verificar con nmap localhost.
El archivo de configuración esta en /etc/squid/squid.conf. La siguiente es una configuración mínima para tener squid protegiendo la salida de internet de una LAN.

#http_access allow localnet
#http_access allow localhost
# By Wiccano
acl myred src 190.0.0.0/24
http_access allow myred
http_access allow localhost

#http_port 3128
# By Wiccano
http_port 3128 transparent

# cache_dir ufs /var/spool/squid 100 16 256
# By Wiccano
cache_dir ufs /var/spool/squid 256 16 256

# pinger_program /usr/lib/squid/pinger
# By Wiccano
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

# forward_timeout 4 minutes
# By Wiccano
forward_timeout 30 minutes

# connect_timeout 1 minute
# By Wiccano
connect_timeout 30 minute

# peer_connect_timeout 30 seconds
# By Wiccano
peer_connect_timeout 1800 seconds

# read_timeout 15 minutes
# By Wiccano
read_timeout 30 minutes

# request_timeout 5 minutes
# By Wiccano
request_timeout 30 minutes

# persistent_request_timeout 2 minutes
# By Wiccano
persistent_request_timeout 30 minutes

Luego configuramos las reglas de squidGuard, el archivo de configuración esta en /etc/squid/squidGuard.conf, y las bases de datos para su funcionamiento están alojadas en /var/lib/squidguard/db.

src castigados {
ip 190.0.0.1/32
}

src mortales {
}
src privilegiados {
ip 190.0.0.3/32
}

src lansource {
ip 127.0.0.1/8
ip 190.0.0.0/24
}

#########

dest permitidos {
domainlist permitidos/domains
urllist permitidos/urls
}

dest prohibidos {
domainlist prohibidos/domains
}

#########

acl {

castigados {
pass permitidos none
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u&clientident=%i
}
privilegiados {
pass all
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u&clientident=%i
}
default {
pass permitidos !prohibidos none
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u&clientident=%i
}

}

De esta forma podemos tener un grupo de Ips(privilegiados) donde la navegación no es restringida y otro grupo de Ips(castigados) que no van a poder navegar sino a los dominios o urls declarados como dest permitidos. Así mismo podemos tener una lista de Ips(mortales) con navegación a todas las páginas menos a la lista de dominios o url declarados como dest prohibidos. Al final el acl default permite las Ips que no aparecen declaradas como src apliquen a esta regla, en cuyo caso solo podrían navegar a la lista de dominios o urls declarada como permitidos.

Esta es una forma sencilla de tener control sobre la navegación, pero poco eficiente en la medida que se requieren tener más controles o donde la asignación de Ips se realiza por dhcp.

Squidguard tiene muchas bases de datos de tipo dest que son mantenidas por la comunidad en Internet y que se pueden descargar y agregar en el archivo de configuración, de esta forma:

dest adult
{
domainlist blacklists/adult/domains
urllist blacklists/adult/urls
expressionlist blacklists/adult/expressions
}

dest aggressive
{
domainlist blacklists/aggressive/domains
urllist blacklists/aggressive/urls
expressionlist blacklists/aggressive/expressions
}

Y así luego podemos generar acl de tipo:

default {
pass permitidos !prohibidos !adult !aggressive all
redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u&clientident=%i
}

A continuación un script con el que podemos descargar las bases de datos y dejarlas listas para que squidguard las use.

#!/bin/sh
#
# Script para actualizar blacklist SquidGuard 15/06/2010
#
SQHOME=/var/lib/squidGuard
CONF=/etc/squid/squidGuard.conf

cd $SQHOME
echo “Borrando versiones viejas …”
rm -f *.tar.gz
echo “Obteniendo la ultima version …”
wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
echo “Descomprimiendo bases de datos de squidguard …”
tar xzf blacklists.tar.gz
echo “Reconstruyendo bases de datos …”
/usr/bin/squidguard -c $CONF  -C all
echo “Restablesco las pertenencias squid:squid …”
chown -R squid:squid *
echo “Reiniciando Squid …”
service squid stop
service squid start
echo “Actualización de base de datos de squidguard Finalizada!”

Luego de tener la nueva base de datos de squidguard dedemos informar para que squidguard haga uso de ellas

#!/bin/sh
#
# Script para reconstruir bases de datos SquidGuard 16/06/2010
#
echo “Reconstruye bases de datos …”
/usr/bin/squidGuard -c /etc/squid/squidGuard.conf -d -C all
echo “Recargo el servicio de squid …”
service squid reload
echo “Finalizado …”

En términos generales esta es la configuración principal de squid y squidguard, las cosas específicas dependen ya de las necesidades que se tenga, como fijar horarios o contraseñas para navegación, o unas listas más especializadas o autenticación contra otro tipo de sistemas como ldap.

Podemos probar el funcionamiento de squid de la siguiente forma:

shell> echo “http://www.hotmail.com 127.0.0.1/- – GET” | /usr/bin/squidGuard -c /etc/squid/squidGuard.conf -d

Donde 127.0.0.1 es la ip con la cual queremos realizar la prueba, así estaremos probando si la ip 127.0.0.1 puede navegar a www.hotmail.com según las acls creadas en squidguard.

KVM – Gestión de Máquinas Virtuales

En virtualización existen múltiples tipos de herramientas, pero todos poseen algo en comun, se trata de programas o herramientas que hacen creer a otros programas que son el HW y SW que necesitan.

La virtualización hace posible tener de uno a varios sistemas operativos sobre uno ya existente, permaneciendo este sin verse afectado y pudiendo arrancarlos de manera independiente.

La virtualización permite:

  • Ahorra reinicio en caso de que tengamos que cambiar habitualmente de S.O.
  • Permite lanzar varios sistemas operativos diferentes en una misma computadora.
  • Facilita la administración de los sistemas operativos virtualizados.
  • Tan puede ser ocupado para sistemas de pruebas.
  • Migración dinámica de aplicaciones.
  • Y también porque esta de moda o para aprender.
  • La virtualización favorece en los siguientes punto:
  • Ahorro de costes de HW y alojamiento de equipos
  • Mantenimiento de cada servidor.
  • Sistemas centralizados.
  • Aprovechamiento de recursos.
  • Sistemas de prueba.
  • Simplicidad.
  • Compatibilidad.
  • Seguridad.
  • Consumo de energía.

Tipos de virtualización

Solamente tenemos 3 tipo de virtualización:

  • Emulación
  • Virtualización completa
  • Paravirtualización

 

Emulación

La emulación se basa en crear máquinas virtuales que emulan el hardware de una o varias plataformas hardware distintas. Este tipo de virtualización es la mas costosa y la menos eficiente, ya que obliga a simular completamente el comportamiento de la plataforma hardware a emular e implica también que cada instrucción que se ejecute en estas plataformas sea traducida al hardware real y es demasiado lento en su ejecución.En Linux existen varios emuladores pero los mas conocidos son: qemu, Bochs, VirtualBox y Virtuozzo.

 

Virtualización Completa.

Con este termino se denominan aquellas soluciones que permiten ejecutar sistemas operativos huésped (Guest), sin tener que modificarlos, sobre un sistema anfitrión (Host), utilizando en medio un Hypervisor o Virtual Machine Monitor que permite compartir el hardware real. Esta capa intermedia es la encargada de monitorizar los sistemas huésped con el fin de capturar determinadas instrucciones protegidas de acceso al hardware, que no pueden realizar de forma nativa al no tener acceso directo a el.Su principal ventaja es que los sistemas operativos pueden ejecutarse sin ninguna modificación sobre la plataforma, aunque como inconveniente frente a la emulación, el sistema operativo debe estar soportado en la arquitectura virtualizada.

Existen herramientas para poder hacer una virtualización completa XEN, KVM, Local Domains y VMWARE. Hay que tener en cuenta también que la virtualización completa no se refiere a todo el conjunto de hardware disponible en un equipo, sino a sus componentes principales, básicamente el procesador y memoria.

 

Paravirtualización

Paravirtualización surgió como una forma de mejorar la eficiencia de las máquinas virtuales y acercarlo al rendimiento nativo. Para ello se basa en que los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor.Los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor.

Con la paravirtualización, se puede alcanzar alto rendimiento incluso en arquitecturas (x86) que no suelen conseguirse con técnicas tradicionales de virtualización. A diferencia de las máquinas virtuales tradicionales, que proporcionan entornos basados en software para simular hardware.

Características KVM

KVM (Kernel-Based Virtual Machines), es una solución de virtualización completa sobre GNU/Linux que depende de la extensión de espiritualizaron de los procesador como INTEL VT” o AMD-V. KVM se incluyo oficialmente en el kernel 2.6.20 y consiste en un modulo para el kernel “kvm.ko” que ṕorṕorciona al nucleo la infrestructura de virtualizacion y tiene un modulo por cada tipo de procesador.

  • INTEL “kvm-intel.ko”
  • AMD “kvm-amd.ko”

Se completa con la version de QEMU que porciona toda funcionalidad de Hardware Virtual para los sistemas virtualizados. Todo la nuevas tecnologicas de desarrollo estan llevando acabo en KVM, ya que va hacer la solucion mas recomendada, soportada por varios sistemas operativos como GNU/Linux, BDS, Solaris, MAC y Windows. Tambien te mayor seguridad entre las maquinas virtuales y una configuracion mas amigable para los administradores, en varias distribuciones que van a cambiar a KVM por Xen entre estas ya estan debian, ubuntu, RHEL, Centos, Fedora, opensuse, mandriva y entre otras mas.

Ventajas de KVM:

  • Esta diseñado para procesadores x86, centrando en un virtualizacion total.
  • No se modifica el kernel de GNU/Linux.
  • Solamente es un modulo que no necesita parches.
  • Contiene soporte de paravirtualización.
  • KVM funciona en todo tipo de máquinas, servidores, escritorio o laptop.
  • Migración en caliente de máquinas virtuales.
  • Tiene administarcion via web, grafica y consola.
  • La administracion de las maquinas virtuales de hacen por medio de un usuario mortal.
  • Podemos utilizar utilizar el comando kill para matar maquina virtuales ya con KVM son reconocidos como procesos.
  • Maneja 3 tipos de configuracion de red, “Bridge, Route, NAT”.
  • Permite ejecutar multitples maquinas virtuales cada una con su propia instancia.

Instalar KVM

Antes de poder instalar es necesario ver los requisitos:

  • Como mínimo un 1 GB de memoria.
  • Disco duro con buena capacidad.
  • Procesador con soporte virtualización.
  • Particiones independientes para el sistema ya de forma clásica o LVM:
       /boot
       /tmp
       /
       /swap
       /home
       /var
  • Partición independiente para las máquinas virtuales:
/vm
  • Instalación de la distribución debian Lenny y actualizada.
  • Tarjetas de red de buen rendimiento.

 

Verificación del modulo virtualización

Antes de todo es necesario saber que si nuestro procesador tiene el modulo de virtualización integrado en el procesador. Para esto tendremos que saber si nuestro procesadores tiene soporte, para INTEL es vmx y Amd es svm. Ya sabiendo esto solo queda consultar, por medio del siguiente comando:

hades:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo

Nos tiene que devolver la siguiente información:

flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm syscall nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

Con esto indica que el procesador es del tipo INTEL, en caso de que no muestre ninguna información puede ser que el modulo este desactivado y lo tendrán que dar de alta desde el BIOS o no viene integrado con el modulo. Si KVM no detecta el modulo de virtualización asistida por Hardware entonces KVM trabajara de modo paravirtualización pero sin modificar el kernel de GNU/Linux.

Instalación de KVM

Ya que tenemos toda la información para poder iniciar la instalación, se requieren los siguientes paquetes:

  • kvm: El paquete kvm instalar el modulo para el kernel en el cual permitirá tener máquina virtuales huésped
  • libvirt-bin: La librería libvirt-bin es la encargada de la virtualizar a las máquinas huésped.
  • virtinst: La herramienta virtinst nos ayudara a la instalación, administración y configuración de la máquinas huésped.

Con esto ya sabremos para que nos sirve cada paquete solo queda instalarlos.

hades:~# apt-get install kvm libvirt-bin virtinst

 

Usuario KVM

Cuando se termine la instalación, tendremos que asignar un usuario mortal el cual sera el encargado de instalar, administrar y configurar las máquinas virtuales, este usuario se ocupa como medida de seguridad ya que la configuración con XEN es por medio del usuario root y es muy peligroso. Por eso KVM usa un usuario mortal y que que pertenezca al grupo de libvirt.

hades:~# adduser administrador libvirt
Añadiendo al usuario `administrador' al grupo `libvirt' ...
Añadiendo al usuario administrador al grupo libvirt
Hecho.

Como podemos ver agregamos al usuario administrador al grupo libvirt.

Partición VM

Se recomienda tener las máquinas virtuales dentro de una partición del disco duro independiente o si se puede mejor en otro disco duro y partición se llamada /vm. La partición debe tener un tamaño superior y dependiendo de cuantas máquinas virtuales se van a alojar con su capacidad de cada disco virtual. Debe pertenecer al grupo libvirt con los siguientes permisos.

hades:~# chown root.libvirt /vm
hades:~# chmod 775 /vm

RED en KVM

Existen tres tipos de redes en la configuración KVM:

  • bridge
  • Nat

Pero se recomienda la configuración tipo bridge ya que es la fácil de configurar y la que mas se ocupa en los servidores.

 

Bridge

Este tipo de configuración nos permite crear un puente entre las tarjeta de red física y las virtuales, permitiéndonos conectarnos a la red local de la empresa como si fueran otras máquinas que estuvieran en la red local. Para pode tener este tipo de configuración es necesario instalar el siguiente paquete.

hades:~# apt-get install bridge-utils

 

Configuración modo Bridge

Como sabemos estamos ocupando la distribución debian lenny, por cual tendremos que configurar nuestro puente en el archivo /etc/network/interfaces. Abrimos el archivo con nuestro editor vim.

hades:~# vim /etc/network/interfaces

Dentro de este archivo de configuración encontraremos la interfaz loopbak o local “lo” y la interfaz de red “eth0”, por el cual obtendrá una IP Dinámica de nuestra red.

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Con esta configuración no podremos hacer el puente, lo que tenemos que hacer es cambiar la configuración de la tarjeta de red “eth0”.

allow-hotplug eth0
iface eth0 inet dhcp
por
auto eth0
iface eth0 inet manual

Con esto hemos cambiado la interfaz eth0 a un modo de configuración especial en nuestro caso la vamos a hacer tipo puente.

Agregaremos dentro de mismo archivo la configuración la interfaz br0 la cual se encargara de crear y dejar funcionando nuestro puente entre las máquinas virtuales para que sean visibles dentro de nuestra red local.

auto br0
iface br0 inet static
        address 192.168.1.244
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        bridge_ports eth0
        bridge_stp off
        bridge_maxwait 5

A esta interfaz tendremos que asignar una IP estática, mascara de red, segmento de red, broadcast, puerta de enlace, tarjeta física que esta permitiendo el puente. Con esto guardamos el archivo y reiniciamos el servicio de red de debian lenny.

hades:~# /etc/init.d/networking restart

Para comprobar que nuestra configuración quedo realizada ejecutamos el comando ifconfig, para que nos muestre las interfaces de red que tiene nuestro sistema.

hades:~# ifconfig
br0       Link encap:Ethernet  HWaddr 00:b0:c4:00:35:c1
          inet addr:192.168.1.244  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2b0:c4ff:fe00:35c1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1319 errors:0 dropped:0 overruns:0 frame:0
          TX packets:774 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1414607 (1.3 MiB)  TX bytes:73115 (71.4 KiB)
eth0      Link encap:Ethernet  HWaddr 00:b0:c4:00:35:c1
          inet6 addr: fe80::2b0:c4ff:fe00:35c1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6541519 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3021817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1286103822 (1.1 GiB)  TX bytes:205104301 (195.6 MiB)
          Interrupt:20 Base address:0xa000
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1008 (1008.0 B)  TX bytes:1008 (1008.0 B)

Como podemos ver nos mostró 3 tres interfaces:

  • interfaz lo: como interfaz loopback o local.
  • interfaz eth0: configuración en modo puente.
  • Interfaz br0: conexión a la red para la máquinas virtuales.

Con todos estos pasos hemos creado un puente para que las máquinas virtuales pertenezcan a la red local de nuestra empresa

 

NAT

Este tipo de configuración nos permitirá tener nuestra máquinas virtuales dentro de una red virtual, que nos ayudaría tener mayor seguridad para las MV. Para poder tener este tipo de configuración es necesario instalar el siguiente paquete.

lucifer:~# apt-get install uml-utilities

En este tipo de caso la máquina física toma la petición de algún servicio, la analiza y si se cuenta con el acceso a este mismo de una MV sera permitido conectarse de lo contrario la petición sera denegada, todas estas solicitudes serán analizadas por medio de un firewall.

Configuraron modo NAT

Para poder configurar este tipo de red, primero tendremos que checar que tipo de redes tenemos habilitadas dentro de nuestro KVM, para eso ejecutaremos el siguiente comando.

lucifer:~# virsh net-list --all
Name                 State      Autostart
-----------------------------------------

En nuestro caso no tenemos configurada ninguna red dentro de KVM, por lo cual procederemos a crear nuestra red virtual. Por default KVM ya tiene configurado una red virtual controlada por un servidor DHCP integrado en KVM. Definimos nuestra red virtual que utilizara kvm.

Lucifer:~# virsh net-define /etc/libvirt/qemu/networks/default.xml
Network default defined from /etc/libvirt/qemu/networks/default.xml

Indicamos que cada vez que se inicie el sistema KVM levantara la red virtual.

Lucifer:~# virsh net-autostart default
Network default marked as autostarted

Iniciamos la red virtual.

lucifer:~# virsh net-start default
Network default started

Como va ser una configuración tipo NAT, es conveniente habilitar el reenvío de paquetes a la red virtual. Para esto editamos el archivo de configuración sysctl.conf.

lucifer:~# vim /etc/sysctl.conf

Buscamos el parámetro net.ipv4.ip_forward y lo modificamos.

net.ipv4.ip_forward = 0

por

net.ipv4.ip_forward = 1

Con esto ya tendremos configurada nuestra red virtual.

Configuración de Dnsmasq

Dnsmasq es un servidor que tiene agregado los servicios de DNS/DHCP, por lo cual puede resolver los nombres tus equipo, como también puede ser un servidor DNS Cache el cual almacenara las IP consultadas, con esto hacemos que sea mas rápido el acceso a internet. Lo que vamos hacer es permitir la resoluciones de dominios de las MV dentro de la red virtual. Para esto editaremos el archivo de configuración dnsmasq.conf.

lucifer:~# vim /etc/dnsmasq.conf

Modificaremos el parámetro listen-address, para indicarle en donde se encuentra escuchando el servicio.

listen-address=eth0

por

listen-address=127.0.0.1

Habilitaremos el parámetro bind-interfaces, obliga a escuchar en la tarjeta o la IP especificada.

#bind-interfaces

por

bind-interfaces

Reiniciamos el servicio.

lucifer:~# /etc/init.d/dnsmasq restart

 

Configuración de interfaces de red

También tendremos que configurar nuestra tarjeta de red vlan0, la cual se encargara del controlar la red virtual para eso tenemos que agregarla dentro del fichero interfaces.

lucifer:~# vim /etc/network/interfaces

Se recomienda que la tarjeta de red física siempre tenga una IP estática.

allow-hotplug eth0
iface eth0 inet dhcp
por
auto eth0
iface eth0 inet static
       address 192.168.1.248
       network 192.168.1.0
       netmask 255.255.255.0
       broadcast 192.168.1.255
       gateway 192.168.1.1

Agregaremos la configuración de la interfaz vlan0, encargada de la red virtual.

auto virbr0
iface virbr0 inet static
        address 192.168.122.1
        netmask 255.255.255.0
        network 192.168.122.0
        broadcast 192.168.122.255

Reiniciamos el servicio de red.

lucifer:~# /etc/init.d/networking restart

Para comprobar que nuestra configuración quedo realizada ejecutamos el comando ifconfig, para que nos muestre las interfaces de red que tiene nuestro sistema.

lucifer:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:08:54:b2:d9:74
          inet addr:192.168.1.248  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::208:54ff:feb2:d974/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17905 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3638 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2470005 (2.3 MiB)  TX bytes:978871 (955.9 KiB)
          Interrupt:20 Base address:0xa000 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:280 (280.0 B)  TX bytes:280 (280.0 B) 

virbr0    Link encap:Ethernet  HWaddr 00:ff:20:05:7a:85
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          inet6 addr: fe80::502d:d9ff:fe75:474/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107 errors:0 dropped:0 overruns:0 frame:0
          TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9675 (9.4 KiB)  TX bytes:9928 (9.6 KiB) 

vnet0     Link encap:Ethernet  HWaddr 00:ff:20:05:7a:85
          inet6 addr: fe80::2ff:20ff:fe05:7a85/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4294 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:6108 (5.9 KiB)  TX bytes:225566 (220.2 KiB)

Con este tipo de configuración deben aparecer 4 interfaces de red:

  • interfaz lo: como interfaz loopback o local.
  • interfaz eth0: configuración en modo puente.
  • Interfaz virbr0: conexión a la red virtual.
  • Interfaz vnet#: esta interfaz sera levantada cada ves que una MV se conecta a la red virtual.

Configuración del firewall

Debemos crear las reglas de iptables para poder permitir el acceso a los servicios que tienen alojados las MV, pero desde la IP física con el manejo de puertos. Ejemplos Todas la peticiones hacia el puerto 80 de la red local, redirigirlas hacia la red virtual con la MV con IP 192.168.122.10 al puerto 80.

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.122.10:80

Todas la peticiones hacia el puerto 59345 de la red local, redirigirlas hacia la red virtual con la MV con IP 192.168.122.20 al puerto 22.

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 59345 -j DNAT --to 192.168.122.20:22

Esta la configuración de KVM en modo NAT, en este diagrama se tienen varios servicios como 2 Servidores Apache, 1 FTP y conexión remota vía ssh a los 3 servidores virtuales.

Toda la peticiones serán analizadas en el servidor por el firewall, si una petición es verdadera entonces la redireccionara dentro de la red virtual hacia la MV que esta ofreciendo el servicio, de lo contrario denegara la petición.

Administración vía consola

La administración de Máquinas Virtuales, es muy importante dentro KVM, ya por medio de esta nosotros podremos:

Instalar MV. Eliminar MV. Estado MV.
Características. Modificar recursos. Configuración de red.

 

Para esto ocuparemos la herramienta virsh, esta herramienta funciona bajo la librería libvirt y funciona de modo de solo lectura para el usuario con permisos al grupo libvirt y el usuario administrador es el único que puede modificar los datos. Nos conectaremos de la siguiente manera:

administrador@hades:~$ virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type:  'help' for help with commands
       'quit' to quit
virsh #

Tendremos la habilidad de tener un interprete de comandos internos de la herramienta virsh, con los cuales administraremos las MV.

Instalación VM vía comandos

Para poder hacer la instalación desde consola de una MV, tendremos que ejecutar el comando virt-install.

virt-install [conexión][opciones]

En tipo de conexión siempre va hacer –connect qemu:/system y en opciones podremos poner los siguientes parámetros:

Parámetro Descripción
-n Nombre la máquina virtual.
-r Memoria RAM virtual.
-f Ruta del Disco Duro Virtual.
-s Tamaño del disco duro
-c Unidad DVD/CDRom o imagen ISO.
-l Indicamos si la instalación va hacer vía red por medio de http, ftp o nfs.
–network=br0 Modo de conexión a la red física en puente.
-w network=default Modo de conexión a la red virtual en NAT.
-vcpus Numero de CPU virtuales.
–vnc Conexión tipo VNC.

 

Ejemplos:

  • Modo BRIDGE
virt-install --connect qemu:///system -n Centos-db -r 512 -f /vm/centos-db.img
-s 20 -c CentOS-5.3-i386-bin-DVD.iso --network=br0
  • Modo NAT
virt-install --connect qemu:///system -n mantis -r 512 -f /vm/mantis.img -s 20
-l [http://192.168.1.109/isos/centos] -w network=default

Con esto nos desplegara la pantalla de instalación de S.O a instalar, la instalación depende de cada S.O

Visualizar una MV

Cuando hayamos terminado de instalar o ya tengamos instalada una máquina virtual y queremos visualizar que esta pasando en un modo gráfico para esto nos sirve la herramienta virt-viewer, ver figura 2.1.

administrador@lucifer:~$ virt-viewer -c qemu:///system belzebu

Conectarse al hypervisor

Para poder conectarse al hypervisor para poder ejecutar comandos de administración en consola.

administrador@lucifer:~$ virsh -c qemu:///system

Listar Máquinas Virtuales

Para poder listar las máquinas virtuales que están encendidas.

virsh # list
 Id Name                 State
----------------------------------
  1 ascariote            running
Podemos ver todas las máquinas de la siguiente manera:
virsh # list --all
 Id Name                 State
----------------------------------
  1 ascariote            running
  - belzebu              shut off

Iniciado automáticamente de MV

Cuando nuestro sistema tienen un apagado físico y queremos que nuestras máquinas virtuales se enciendan automáticamente, tenemos que hacer lo siguiente:

virsh # autostart belzebu
Domain belzebu marked as autostarted

Si ya teníamos a nuestra máquina virtual en encendido automático y lo queremos desactivar.

virsh # autostart --disable ascariote
Domain ascariote unmarked as autostarted

Iniciando Máquina Virtual

Cuando nuestra máquina virtual le indicamos que no inicie en automático, entonces haremos un encendido manual de la máquina virtual.

virsh # start ascariote
Domain ascariote started

Suspender Máquina Virtual

También podemos suspender una máquina virtual, es como si pusiéramos en pausa la máquina virtual.

virsh # suspend belzebu
Domain belzebu suspended

Reanudar Máquina Virtual

Para poder reanudar una máquina virtual suspendida solamente tendremos que hacer lo siguiente:

virsh # resume belzebu
Domain belzebu resumed

Apagar Máquina Virtual

Apagar una máquina solamente tenemos que hacer lo siguiente:

virsh # shutdown belzebu
Domain belzebu is being shutdown

Reiniciar Máquina Virtual.

Reiniciar máquinas virtuales es de la siguiente manera:

virsh # reboot minos
Domain minos is being reboot

Matar Máquina Virtual

En caso de que nuestra máquina virtual no pueda apagarse, apagar o el sistema operativo este congelado.

virsh # destroy thanatos
Domain thanatos destroyed

Información Máquina Virtual

Con esto obtendremos la información de la máquina virtual, como nombre, estado,CPU, Memoria ,etc.

virsh # dominfo minos

Estado de las máquinas virtuales

Por este comando sabremos el estado de la maquina, encendido, apagado, pausado, etc.

virsh # domstate belzebu

Información Máquina física

Muestra información relacionada de la máquina física, como del CPU, memoria.

virsh # nodeinfo

Capacidad de la Máquina física

Muestra la capacidad de las plataforma en KVM.

virsh # capabilities

Información de CPU virtuales

Ver cuantos CPU virtuales tiene la máquina virtual.

virsh # vcpuinfo hypnos

Editar información de la Máquina virtual

Podemos editar la información de la máquina virtual de la siguiente manera.

virsh # edit hypnos

Memoria de intercambio de CPUS

Esta opción solamente nos funciona cuando tenemos de dos a mas procesadores ya que verifica la memoria que se esta ocupando entre la comunicación en los CPU.

virsh # freecell

Nombre la máquina física

Saber el nombre o como se llama la máquina física que aloja el servicio de KVM.

virsh # hostname

Consola de Máquina virtual

Dispositivo físico de salida para la consola tty en máquinas virtuales.

virsh # ttyconsole belzebu

Redes virtuales configuradas.

Veremos las redes virtuales configuradas en KVM

virsh # net-list

Información de redes virtuales

Información sobre la configuración y propiedades de una red virtual.

virsh # net-dumpxml default

Crea y inicia red virtual

Para poder crear una red virtual, se debe generar un archivo en formato xml y se recomienda que este almacenado en /etc/libvirt/qemu/networks y debe contener la siguiente información.

<network>
  <name>factor</name>
  <uuid>6cbbd170-c641-8d6c-ae79-6791b3288426</uuid>
  <forward mode='nat'/>
  <bridge name='virbr1' stp='on' forwardDelay='0' />
  <ip address='192.168.200.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.200.100' end='192.168.200.200' />
    </dhcp>
  </ip>
</network>

Ya creado el archivo solamente tenemos que ejecutar el siguiente desde la consola de virsh e indicando la ruta del archivo de configuración de la nueva red virtual.

virsh # net-create /etc/libvirt/qemu/networks/factor.xml

Crear red virtual

Crea una red virtual pero no la inicia, solamente se define dentro de KVM.

virsh # net-define /etc/libvirt/qemu/networks/linuxparatodos.xml

Iniciar red virtual.

Iniciando una red virtual.

virsh # net-start linuxparatodos

Iniciar automáticamente red virtual

Iniciar automáticamente una red virtual cuando la máquina física tenga un encendido.

virsh # net-autostart factor

Editar una red virtual

Desde la consola de virsh, podemos editar el archivo de configuración de una red virtual.

virsh # net-edit factor

Destruir una red virtual

Esta opción nos permite detener y destruir una red virtual.

virsh # net-destroy factor

Listar volúmenes de almacenamiento

Veremos en donde se encuentran almacenados los disco duros virtuales.

virsh # pool-list

Capacidad del volumen fisico

En nuestro caso el volumen vm es un partición por lo cual nos mostrara la información del tamaño de la partición, lo ocupado y disponible que tenemos en la misma.

virsh # pool-info vm

Editar del volumen fisico

Tenemos la propiedad de editar el volumen.

virsh # pool-edit vm

Lista del volúmenes virtuales

Listara todos los discos duros virtuales.

virsh # vol-list vm

Capacidad de volumen virtual

Muestra la capacidad del disco duro virtual, como espacio ocupado y libre.

virsh # vol-info /vm/mantis.img

Ayuda en linea

Cuando tenemos dudas sobre algún comando que están dentro de la herramienta virsh, solamente ejecutamos el comando help seguido del comando que tenemos duda.

virsh # help vol-list

Salir del administrador

Para poder salir del administrador de máquinas virtual, solamente tecleamos.

virsh # quit

Guardar el estado actual de una máquina virtual

virsh # save factor factor20120509.state

Restaurar una máquina virtual desde un estado previo

virsh # restore factor20120509.state

 

Administración Gráfica

La instalación de la Máquinas virtuales dentro de KVM, existen dos métodos por el cual lo podemos realizar.

  • virt-manager: Que es una herramienta en modo gráfico que nos permite instalar la máquinas virtuales.
  • virt-install: Este método es por medio de comando desde una terminal o interprete de comandos.

Estas 2 herramientas vienen dentro del paquete virt-manager, por lo cual procederemos a su instalación.

hades:~# apt-get install virt-manager

Terminada la instalación reiniciamos el servicio libvirt.

/etc/init.d/libvirt-bin restart

Con esto ya podremos instalar las máquinas virtuales.

Virt-Manager

Esta herramienta nos permitirá realizar las siguientes características:

  • Instalación de Máquinas Virtual.
  • Administración de la máquinas.
  • Recursos de las máquinas virtuales “memoria,cantidad de procesadores virtuales, entre otros dispositivos de los mismos”.
  • Uso de CPU, Memoria de la máquina física.
  • Termine iniciar, pausar, reiniciar, apagar y forzar el apagado sencillamente.
  • Permite ver el estado actual de las máquinas virtuales. Numero de proceso, Estado “Ejecutándose o Callar”, uso de CPU, procesadores virtuales y cantidad de memoria ocupada.
  • Borrado de las máquinas virtuales.
  • Configuración del almacenaje de los discos duros de las máquinas virtuales.
  • Configuración de red interna por medio de DHCP.
  • Tiempo de refresco de la información.

 

Instalando VM con Virt-Manager

Para poder ocupar la herramienta tendremos que ir al Menú Aplicaciones —> Administración —> Administración de máquinas virtuales Con esto nos abrirá la aplicación y nos mostrara en pantalla la palabra localhost, ver figura 4.1, el localhost es la máquina física, en la cual es la que esta alojando a la máquinas virtuales.

Para poder conectarnos a KVM tendremos que dar click derecho sobre localhost y nos permitirá conectarnos al dominio 0. Con esto podremos crear las máquinas virtuales, tendremos que dar click sobre el botón de Nuevo para iniciar el asistente de instalación.

Dentro del asistente nos preguntara los siguientes requisitos que necesita para la instalación de la máquina virtual:

  • Nombre de la MV.
  • Virtualización completa o Paravirtualización.
  • Método de instalación.
  • Ruta del Disco Duro virtual.
  • Memoria y CPU.
  • Configuración de la red virtual.

Primero nos pregunta el nombre de la máquina virtual. Esto nos sirve para tener un control de las máquinas virtuales ya que la administración de ellas, es por el nombre o ID. Con esto KVM puede iniciar, apagar, reiniciar, pausar en la máquinas virtuales. También por el nombre es controlado la administración de recursos como memoria, cpu, etc. Y su estado actual de la máquina virtual.

En el método de virtualización solamente tenemos dos opciones:

  • Paravirtualización.
  • Completamente virtual izado.

Podemos seleccionar la arquitectura del procesador de los cuales tenemos disponibles:

 

686 mips sparc
X86_64 mipsel ppc

 

Método de hipervisor lo tenemos a qemu.

Tenemos a disposición varios métodos de instalación como:

  • Imagen ISO o DVD/CDRom.
  • Vía red por medio de HTTP, FTP o NFS.
  • Booteo por medio de red PXE.

Nos permite seleccionar que sistema operativo se va a instalar:

 

Linux Windows Genérico Unix Otros

 

También nos pregunta que versión del sistema operativo deseamos instalar o su distribución que esta por instalar.

Ubicando el medio óptico para la instalación, en nuestro caso tenemos la imagen iso de la distribución de debian y en su caso contáramos con algún dispositivo DVD/CDRom podremos utilizarlo sin ningún problema. Este pantalla puede ser diferente dependiendo del método de instalación.

Asignación de espacio para la máquina virtual, tenemos dos opciones:

  • Una partición del disco duro físico.
  • Un archivo simple.

Indicamos la ruta en donde se encuentra el disco duro virtual para la instalación. Siempre se ha utilizado la opción de archivo simple para generar un disco duro es de la siguiente manera:

Con esto estamos creando un disco duro de 20 GB.Configuración de la red de las máquinas virtuales, tenemos la opciones de:

  • Red virtual: Este método nos sirve si tenemos una vlan en modo route o nat.
  • Dispositivo físico compartido: Este método nos permite conectarnos a nuestra red local de nuestra oficina o casa.
  • Configuración por medio de MAC: Con esto ya tendremos configurado el método de red de las máquinas virtuales.

Configuramos la memoria virtual que tendrán la máquina virtual por default tenemos 512 MB y nos marca que tenemos un limite de 1.48 GB en memoria virtual para la máquina virtual. Podemos asignarle cuantos CPU virtuales puede tener nuestra máquina virtual, por default siempre es uno y tenemos en nuestro caso un máximo de 16 procesadores virtuales.

Este seria el ultimo paso y este nos genera un resumen total de toda la información solicitada por virt-manager para poder iniciar la instalación de la máquina virtual. Muestra las siguientes características:

 

Nombre de la MV. Cantidad de CPU.
Método de virtualización. Sistema operativo y versión.
Memoria inicial y máxima. Ruta del disco duro virtual y tamaño.
Tipo de conexión red Sin sonido.

 

Con todos estos pasos ya instalación comenzara sin ningún inconveniente.

Estado de las MV

Al abrir la aplicación de virt-manager, nos mostrara las MV que tenemos ya instaladas y configuradas. Pero con esta herramienta nos informa del estado actual de nuestra MV y sus características:

Nombre de la MV Numero Identificador MV Ejecutando o apagado
Uso de CPU Cuantos VCPUS Uso de memoria

 

Nos muestra información en tiempo real de lo que esta pasando en las MV. Pero también nos muestra la información de la máquina física, comúnmente llamada localhost.

Administración de MV

La administración de las MV por medio de la herramienta de virt-manager, no simplifica la manera de:

Iniciar Apagar MatarPausar Reiniciar

 

Nuestras MV instaladas dentro del servidor, por cual solamente tendremos que seleccionar la MV y dar click con el botón derecho y nos aparecerán todas las opciones anteriormente comentas. Con esto nosotros podemos iniciar, apagar, reiniciar, etc una MV con un simple click de ratón.

Propiedades de las MV

Para poder las propiedades de las MV virtuales tendremos que seleccionar la MV y dar en botón de abrir, mostrara una nueva pantalla con la información mas relevante del sistema.Obtendremos las siguientes características:

  • Conexión a la consola o al ambiente gráfico del S.O.
  • Repaso, encontraremos la información actual de la cantidad usada en CPU y Memoria.
  • Hardware, tendremos toda la información del hardware de la MV.
  • Tenemos las opciones de apagar, reiniciar, pausar, matar, etc.
  • Podremos tomar fotos de la MV.
  • Vista completa o escalada
  • Entre mas opciones.

Configuraciones Máquina Física

Como obtener información y configuraciones de la máquina física, ya que es muy importante saber como se encuentra.. Para obtener esta información tendremos que ir al menú de editar —> Editar —> Connection Details, nos desplegara una pantalla con 3 pestañas:

  • Repaso.
  • Redes Virtuales.
  • Grupos de Almacenaje.

 

Repaso

Esto mostrara el estado actual de nuestra información de la máquina física.

 

Nombre la máquina física Cantidad de memoria física y ocupada Tipo de procesador físico y su estado

 

Redes Virtuales

En este apartado nosotros podremos configurar nuestra red interna que tendrán nuestra MV, ya que el mismo KVM tiene por default integrado un servidor DHCP. Esta configuración nos permitirá tener una red del tipo NAT dentro del mismo KVM para las MV.

 

Grupos de Almacenaje

Esta ultima pestaña nos muestra la información en donde se encuentran los discos duros virtuales y la capacidad física de la misma como su porcentaje de utilizado. Para los discos duros virtuales nos mostrara:

  • Nombre del disco duro virtual.
  • Tamaño del disco duro virtual
  • Ruta en donde se encuentran alojados los discos duros virtuales.

Villancico Linuxero 2011

De las cosas curiosas que te puedes encontrar navegando por Internet O_o

<sarcasmo>Lo nuevo del grupo Pánico en el nucleo!!</sarcasmo>

Instalación Jabberd2 Sobre Debian Sqeeze

El propósito es instalar Jabberd2 en un server montado sobre Debian Sqeeze. Antes de empezar  es bueno aclarar que se intentaron instalar distintas versiones de Jabberd compilando sus fuentes sin obtener éxito. Se intento con las versiones fuente jabberd-2.1, jabberd-2.2.0, jabberd-2.2.14, tanto en Debian como en Centos5 sin lograr que subiera completamente el servicio, no vamos a referirinos a esos problemas.

La opción entonces fue intentar instalarlo a través de apt-get. He aquí el primer problema: Jabberd2 no esta, a la fecha(Nov 2011), disponible en los repositorios de Debian para Squeeze. Para esta versión de Debian, sólo esta disponible Jabberd14 que es la version anterior.

Luego de mucho buscar encontramos los paquetes en Debian para la versión “Sid”. Es bueno aclarar que esta versión, es una versión inestable a la fecha, según Debian, no obstante decidimos por tomar este camino. El paquete lo encontramos acá http://packages.debian.org/sid/jabberd2 y procedimos así:

  1. Añadir el repositorio del paquete
    • Edite el archivo /etc/apt/sources.list
    • Añada la linea: deb http://ftp.br.debian.org/debian sid main
      http://ftp.br.debian.org/debian es el mirror que escogimos del repositorio. En http://packages.debian.org/sid/amd64/jabberd2/download  encontrara otras opciones.
    • shell> apt-get update
    • shell> aptitude search  jabberd2
      Debería mostrar algo como:
      shell> aptitude search jabberd2
      p   jabberd2                                        – Jabber instant messenger server
      p   libjabberd2                                   – Runtime library for the Jabber/XMPP instant messaging server
      p   libjabberd2-dev                           – Development files for the Jabber/XMPP instant messaging server
  2. Instalar Mysql
    • shell> apt-get install mysql-server-5.1 libmysqlclient-dev
      En la instalación solicitara el password de root. Al finalizar y consultar los paquetes instalados de mysql debería mostrar algo así (o sus correspondientes versiones):
      shell>  dpkg –list | grep mysql
      ii  libdbd-mysql-perl                   4.016-1                    Perl5 database interface to the MySQL database
      ii  libmysqlclient-dev                  5.1.58-1                   MySQL database development files
      ii  libmysqlclient16                    5.1.58-1                     MySQL database client library
      ii  mysql-client-5.1                    5.1.49-3                     MySQL database client binaries
      ii  mysql-common                        5.1.58-1                   MySQL database common files, e.g. /etc/mysql/my.cnf
      ii  mysql-server-5.1                    5.1.49-3                     MySQL database server binaries and system database setup
      ii  mysql-server-core-5.1               5.1.49-3                 MySQL database server binaries
  3. Instalar Jabberd2
    • shell> apt-get install jabberd2
      Al finalizar y consultar los paquetes instalados de Jabberd2 debería mostrar algo así:
      shell>  dpkg –list | grep jabberd2
      ii  jabberd2                            2.2.8-2.2                    Jabber instant messenger server

El servicio Jabberd2 se inicializa automaticamente por lo cual queda detenerlo y realizar la configuración respectiva en los archivos que quedan almacenados en /etc/jabberd2/

Dentro de /usr/share/doc/jabberd2 puede encontrar tanto la documentación como los scripts para inicializar la base de datos que se vaya a usar.

Antes de iniciar con la configuración de archivos debemos poner a punto la base de datos.

shell> cd /usr/share/doc/jabberd2
shell> gzip -d  db-setup.mysql.gz
shell> mysql –user=root -p mysql
mysql> .\ db-setup.mysql
mysql>  GRANT ALL PRIVILEGES ON jabberd2.* TO ‘jabberd2′@’localhost’ IDENTIFIED BY ‘clave’ WITH GRANT OPTION;

Luego, en los archivos de configuración se modifican 2 archivos, c2s.xml y sm.xl. En los dos se deben fijar bien los valores de la base de datos y fijar la base de datos a usar, por defecto viene con mysql.

En sm.xml colocar el dominio de la empresa, p.e. midominio.com. Así las cuentas de usuario van a quedar como usuario@midominio.com

Luego de esto un /etc/init.d/jabberd2 start deberia ponernos disponible el Jabberd.

Comprimir y Descomprimir en GNU/Linux

Esta es una guía rápida para comprimir y descomprimir ficheros en la consola de Linux con los algoritmos de comprensión más usados actualmente como son: .tar.gzip.tar.gz.bz2.tar.bz2 y los no menos importantes en plataformas Linux, .zip y .rar.

.tar (tar)

  • Comprimir .tar
    tar cvf fichero.tar /var/www/vhosts/*
  • Descomprimir .tar
    tar xvf fichero.tar
  • Listar ficheros .tar
    tar tvf fichero.tar

.gz (gzip)

  • Comprimir .gz
    gzip -q fichero (El archivo lo comprime y lo renombra como “fichero.gz”)
  • Descomprimir .gz
    gzip -d fichero.gz (El archivo lo descomprime y lo deja como “fichero”)
  • Nota: gzip solo comprime ficheros, no directorios.

.tar.gz (tar con gzip)

  • Comprimir .tar.gz
    tar czvf fichero.tar.gz /var/www/vhosts/*
  • Descomprimir .tar.gz
    tar xzvf fichero.tar.gz
  • Listar ficheros .tar.gz
    tar tzvf fichero.tar.gz

.bz2 (bzip2)

  • Comprimir .bz2
    bzip2 fichero (El archivo lo comprime y lo renombra como “fichero.bz2″)
  • Descomprimir .bz2
    bzip2 -d fichero.bz2 (El archivo lo descomprime y lo deja como “fichero”)
  • Nota: bzip2 solo comprime ficheros, no directorios.
  • bunzip2 archivo.bz2
    El comando bunzip2, que no es más que un enlace a bzip2.

el comando bunzip2, que no es más que un enlace a bzip2.

.tar.bz2 (tar con bzip2)

  • Comprimir .tar.bz2
    tar -c ficheros | bzip2 > fichero.tar.bz2
  • Descomprimir .tar.bz2
    tar jvxf archivo.tar.bz2
  • Listar ficheros .tar.bz2
    bzip2 -dc fichero.tar.bz2 | tar -tv

.zip (zip)

  • Comprimir .zip
    zip fichero.zip /var/www/vhosts
  • Descomprimir .zip
    unzip fichero.zip
  • Listar ficheros .zip
    unzip -v fichero.zip

.rar (rar)

  • Comprimir .rar
    rar -a fichero.rar /var/www/vhosts
  • Descomprimir .rar
    rar -x fichero.rar
  • Listar ficheros .rar
    rar -v fichero.rar
Tags: , , , ,

Repositorios GNU/Linux Debian 6.0 Squeeze

  • debian 6.0

### REPOSITORIOS OFICIALES

# Repositorio Oficial
deb http://http.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://http.us.debian.org/debian/ squeeze main contrib non-free

# Repositorio de Seguridad
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.us.debian.org/debian/ squeeze-proposed-updates main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze-proposed-updates main contrib non-free

# Repositorio Squeeze – Backports
deb http://backports.debian.org/debian-backports squeeze-backports main

# Repositorio Multimedia – http://www.debian-multimedia.org/
# aptitude install debian-multimedia-keyring
deb http://www.debian-multimedia.org squeeze main non-free
deb-src http://www.debian-multimedia.org squeeze main non-free

### REPOSITORIOS EXPERIMENTALES

# Repositorio KDE Experimental – http://qt-kde.debian.net/
# aptitude install pkg-kde-archive-keyring
deb http://qt-kde.debian.net/debian experimental-snapshots main
deb-src http://qt-kde.debian.net/debian experimental-snapshots main

# Repositorio Iceweasel 4 Experimental
# apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 06C4AE2A
# apt-get install -t squeeze-backports iceweasel
deb http://mozilla.debian.net/ squeeze-backports iceweasel-4.0

### REPOSITORIOS NO OFICIALES

# Unofficial Maintainer – http://unofficial.debian-maintainers.org/
# wget -q -O – http://unofficial.debian-maintainers.org/project/openpgp/archive-key.asc | apt-key add -
deb http://unofficial.debian-maintainers.org/ squeeze main contrib non-free restricted

# Repositorio Escritorio Enlightenment
# wget -q http://packages.enlightenment.org/repo.key -O- | apt-key add -
deb http://packages.enlightenment.org/debian squeeze main extras

### REPOSITORIOS DE TERCEROS

# Repositorio Compiz Fusion
# wget http://download.tuxfamily.org/shames/A42A6CF5.gpg -O- | apt-key add -
deb http://download.tuxfamily.org/shames/debian-sid/desktopfx/unstable/ ./

# Repositorio Virtualbox – http://www.virtualbox.org
# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib

# Repositorio Reproductor VLC – http://www.videolan.org/vlc
# apt-get install vlc libdvdcss2
deb http://download.videolan.org/pub/videolan/debian sid main
deb-src http://download.videolan.org/pub/videolan/debian sid main

# Repositorio Wine – http://www.winehq.org
# wget -O – http://www.lamaresh.net/apt/key.gpg | apt-key add -
deb http://www.lamaresh.net/apt squeeze main

# Bimoid Messenger – http://bimoid.com/
# wget -O – http://www.bimoid.com/debian/apt.key | apt-key add -
deb http://www.bimoid.com/debian/ stable non-free

# Repositorio Esmska – http://code.google.com/p/esmska/
# wget -q -O – http://repo.palatinus.cz/repo.key | apt-key add -
deb http://repo.palatinus.cz/stable /

# Repositorio Webmin – http://webmin.com/
# wget -q http://www.webmin.com/jcameron-key.asc -O- | apt-key add -
deb http://download.webmin.com/download/repository sarge contrib

### NAVEGADORES WEB

# Repositorio Navegador Opera – http://deb.opera.com/
# wget -O – http://deb.opera.com/archive.key | apt-key add -
deb http://deb.opera.com/opera/ squeeze non-free

# Repositorio Navegador Opera (Versiones Beta) – http://deb.opera.com/
# wget -O – http://deb.opera.com/archive.key | apt-key add -
deb http://deb.opera.com/opera-beta/ squeeze non-free

# Repositorio Google Linux – http://www.google.com
# wget -q -O – https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
deb http://dl.google.com/linux/deb/ stable non-free main

# Repositorio Google Linux (Versiones de Prueba) – http://www.google.com
# wget -q -O – https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
deb http://dl.google.com/linux/deb/ testing non-free

### APLICACIONES MANTENIDAS EN LAUNCHPAD

# Repositorio BURG
deb http://ppa.launchpad.net/bean123ch/burg/ubuntu maverick main
deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu maverick main

### APLICACIONES PARA VIDEOLLAMADAS

# Repositorio Skype – http://www.skype.com
# gpg –keyserver pgp.mit.edu –recv-keys 0xd66b746e && gpg –export –armor 0xd66b746e | apt-key add -
deb http://download.skype.com/linux/repos/debian/ stable non-free

# Repositorio Jitsi – http://www.jitsi.org/
# apt-key adv –keyserver keyserver.ubuntu.com –recv-keys EB0AB654
deb http://download.jitsi.org/deb unstable/

### JUEGOS

# Repositorio PlayDeb – http://www.playdeb.net/
# wget -q -O- http://archive.getdeb.net/getdeb-archive.key | apt-key add -
deb http://archive.getdeb.net/ubuntu maverick-getdeb games

# Repositorio Ubuntu Games
# wget -q -O- http://archive.ubuntugames.org/ubuntu-games.key | apt-key add -
deb http://archive.ubuntugames.org ubuntugames main

Ajustes posteriores a la instalación de CentOS 6.

Luego de realizar la instalación mínima de CentOS 6.0, estos son algunos de los ajustes que se deben realizar para poner a punto un servidor.

Se asume que ya tiene una instalación mínima de CentOS 6, sino es así puede consultar, entre otros, este documento que detalla como hacerlo:

http://www.alcancelibre.org/staticpages/index.php/procedimiento-instalar-centos6

 

Configuraciones de Red

Probablemente los dispositivos de red están desactivados. Edita los archivos de interfaz de tús dispositivos de red:

shell> vi /etc/sysconfig/network-scripts/ifcfg-eth0

Asegúrate que al menos una de las interfaces de red tenga el parámetro «ONBOOT» con el valor «yes»

Si el equipo se va a usar como servidor, conviene desactivar que la gestión de las interfaces de red se haga a través del servicio NetworkManager, y dejar que el servicio network se encargue de esto. Cambie NM_CONTROLLED=”yes”, por NM_CONTROLLED=”no”:

DEVICE="eth0"
HWADDR="E8:9A:8F:83:B1:8E"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
#DHCP_CLIENT_ID=pruebas-centos6
IPV4_FAILURE_FASTAL=yes
IPV6INIT=no
NAME="System eth0"
IPADDR=192.168.200.10
GATEWAY=192.168.200.1
NETMASK=255.255.255.0
UUID=5fc05db0-0bb0-7ffb-45f1-c6efc65f3e32

Edite el archivo de servidores DNS

shell> vi /etc/resolv.conf

Y deje algo de este tipo

domain dominio.co
search dominio.co
nameserver 192.168.0.253

Luego para que todo surja efecto:

shell> service network restart

 

Instalar herramientas útiles

Antes de iniciar y como ya tenemos interfaz de red configurada, y suponemos de una salida a Internet podemos asegurarnos de tener las últimas actualizaciones del sistema:

shell> yum update
shell> yum upgrade

Instalamos nmap, usado comúnmente para escanear los puertos, en este caso de nuestra propia máquina, así podemos verificar que puertos vamos abriendo.

shell> yum install nmap

Instalamos man en caso que necesitemos ayuda

shell> yum install man

Luego instalamos setuptool que nos permite tener el comando setup que abre una interfaz modo texto que ya todos, me imagino, conocemos, así como otras herramientas que seguro necesitarás.

shell> yum -y install system-config-firewall-tui openssh-clients
shell> yum -y install system-config-network-tui bind-utils
shell> yum -y install policycoreutils-python
shell> yum -y install selinux-policy-targeted selinux-policy-mls
shell> yum -y install vim-enhanced wget

Para poder adminsitrar los servicios del sistema, en que niveles de la máquina arrancan o cuales están habilitados o desabilitados podemos usar ntsysv o chkconfig. El segundo viene desde la instalación mínima. Instalamos ntsysv

shell> yum install ntsysv

 

Localización.

Si durante la instalación estableciste «Español» como idioma predeterminado, se establecerá la variable de entorno «LANG» con el valor «es_ES.UTF-8,» lo cual resultará conveniente para los usuarios que radican en España. Sin embargo, ésto hará que en los números las divisiones de miles se hagan con un punto, y que la división para decimales se haga con una coma..

Edita el archivo /etc/sysconfig/i18n:

shell> vi /etc/sysconfig/i18n

Localiza LANG=”es_ES.UTF-8″:

LANG="es_ES.UTF-8"
SYSFONT="latarcyrheb-sun16"

Cambia LANG=”es_ES.UTF-8″ por LANG=”es_MX.UTF-8″ (español de México), o bien la localización que corresponda a tú país:

Edita el archivo /boot/grub/grub.conf:

shell> vi /boot/grub/grub.conf

Localiza en éste LANG=es_ES.UTF-8 (sin comillas) y cambia LANG=es_ES.UTF-8 por LANG=es_MX.UTF-8 (español de México, sin comillas), o bien la localización que corresponda a tú país.

Reinicie el sistema para que surtan efecto los cambios.

shell> reboot

Desactivar Plymouth.

Plymouth es la nueva implementación para mostrar un arranque gráfico. Si se hizo una instalación mínima, el arranque del sistema no se mostrará detallado sino que se van a mostrar unas barras de colores azules indicando el cargue del sistema.

Para visualizar que ocurre detrás de Plymouth, solo hay que pulsar la tecla «Supr» para conmutar al arranque tradicional en texto, y viceversa.

En un servidor, probablemente resulte poco conveniente, y se prefiera un arranque tradicional, mostrando los mensajes de inicio de los servicios.

Edita el archivo /boot/grub/grub.conf:

shell> vi /boot/grub/grub.conf

Debes buscar y eliminar rhgb que es el encargado de monstrar el inicio de esta forma.

Reinicie el sistema para que surtan efecto los cambios.

shell> reboot

 

Instalar, y habilitar, el modo gráfico.

Si considera que requiere utilizar el modo gráfico, omita la sección anterior (Desactivar Plymouth), e instale los siguientes grupos:

shell> yum -y groupinstall x11 basic-desktop general-desktop

Complemente instalando algunos paquetes de herramientas de administración.

shell> yum -y install system-config-services system-config-date
shell> yum -y install system-config-printer system-config-lvm
shell> yum -y install system-config-language system-config-keyboard
shell> yum -y install cups-pk-helper policycoreutils-gui
shell> yum -y groupinstall x11 basic-desktop general-desktop
shell> yum -y install system-config-services system-config-firewall

Probablemente quiera eliminar los siguientes paquetes, que solo son útiles para realizar depuración del núcleo, y enviar reportes de errores de las aplicaciones gráficas a los desarrolladores de CentOS.

shell> yum remove kexec-tools abrt-*

Luego, hay que editar el archivo /etc/inittab.

shell> vi /etc/inittab

Al final del archivo, localice la siguiente línea:

id:3:initdefault:

Y reemplazar en ésta el 3 por un 5:

id:5:initdefault:

Guarde el archivo, salga del editor de texto

Instale el complemento para GDM (el gestor de pantalla de GNOME), con la finalidad de que los mensajes de error que se pudieran generar al arrancar el sistema, se muestren con icono de advertencia en la pantalla gráfica de autenticación:

shell> yum -y install plymouth-gdm-hooks

Ejecute lo siguiente para instalar, y establecer, el tema gráfico predeterminado de CentOS 6 (rings) para Plymouth:

shell> yum -y install plymouth-theme-rings
shell> plymouth-set-default-theme rings
shell> /usr/libexec/plymouth/plymouth-update-initrd

Si desea un tema más atractivo, y vistoso, establezca el tema solar:

shell> yum -y install plymouth-theme-solar
shell> plymouth-set-default-theme solar
shell> /usr/libexec/plymouth/plymouth-update-initrd

Plymouth solo se mostrará si el sistema dispone de una tarjeta de gráficos con soporte para KMS (Kernel mode-setting) en el núcleo de Linux, o bien definiendo manualmente una resolución como parámetro de inicio del núcleo de Linux (ejemplo: vga=0×315 activará la resolución a 800×600, vga=0×317 activará una resolución de 1024×768).

Reinicie el sistema para que surtan efecto los cambios.

shell> reboot

 

 

 

 

 

 

© ToXTy Labs.