Translate - ترجم - Traduire - 翻訳する

sábado, 29 de septiembre de 2012

0 Crear Maquina Virtual con ZeroShell 2.0 RC1 usando KVM en Ubuntu 12.04

INTRODUCCIÓN

Buenas tardes, días o noches, he estado probando ZeroShell desde hace ya como 6 meses, aunque la verdad no he tenido tiempo para levantar todos los servicios que este trae, así que antes que nada, ¿Que es ZeroShell?, en su pagina, podemos encontrar lo siguiente:

ZeroShell es una distribución Linux para servidores y dispositivos integrados destinados a proporcionar los servicios de red principal de una LAN requiere. Está disponible en forma de Live CD o de imagen de Compact Flash y se puede configurar y administrar utilizando el navegador web. Las principales características de esta distribución de Linux para aplicaciones de red se enumeran a continuación.
Como es una lista bastante grande en la cual encontraran no solo que hace cada servicio, sino un tuto de como hacerlo funcionar, pueden verla en su pagina oficial http://www.zeroshell.net/.
Bien ahora yo lo uso, o mejor dicho he estado estudiando sobre el RADIUS, y el Portal Cautivo, así como el Firewall y como maneja IPTABLES, aunque lo mas maravilloso es como esta hecho, es decir el autor ha creado una maravilla de sistema operativo, ademas de ser super liviano tiene todas las características que puede desear un sistema administrador de conexiones, usuarios, validación de usuarios, trafico, e incluso puedes controlar por así decirlo el consumo de cada usuario =D. Bueno el caso es que ZeroShell solo venia con un unico sabor (LiveCD) y después de un tiempo ya venia como imagen para IDE, SATA, etc.
Ahora lo interesante, como es una imagen muy liviana, y ademas venia en LiveCD e IMG DISK, los cuales probé e hice virtuales en KVM, primero trabajaba como LiveCD ya que este te permite salvar tus perfiles, ya sea en una USB u otro medio de almacenamiento, esto gracias a su interfaz web la cual de dejaba exportar el archivo DB (DataBase). Sin embargo es algo tedioso estar montando un usb, o enviándolo vía SSH, así que me vi a la tarea de poder instalarlo en un disco de 2GB cuando mucho, así que opte por la imagen de disco, e hice una maquina virtual separando espacio en disco y copie la imagen de forma binaria(gunzip -c ZeroShell-1.0.beta1-CompactFlash512.1.img.gz >> /dev/hdx), esto funciona perfectamente, sin embargo aquí viene el problema, hay una nueva versión de ZeroShell, y eso de actualizar la anterior es algo que honestamente no recomiendo, si puedes exporta tu base de datos o busca como sacar tus configuraciones, así tendrás un sistema limpio y con todas tus configuraciones. La maravilla de la nueva versión es que ya viene lista para KVM, sin embargo aquí viene otro problema, este .tar nos proporciona el raw (zeroshell.img) y el descriptor de la imagen (zeroshell.xml) que bonito que bonito, Oh oh OH... el descriptor viene con unas configuraciones diferentes a como creamos el Host de Maquinas virtuales, es decir como tenemos preparada la maquina anfitrión para generar maquinas virtuales (ademas parece que no es la misma configuración dependiendo de el KVM + Ubuntu/Debian/CentOS, etc).

Solución

Buena lo manera de solucionar esto es comenzar desde cero, si usamos virsh para crear/manipular nuestras maquinas virtuales, entonces simplemente modificamos el archivo descriptor que anteriormente como es mi caso copie a "/etc/libvirt/qemu/", al igual que moví la imagen de disco virtual a la respectiva carpeta de imágenes "/var/lib/libvirt/images/", ahora bien, lo mas importante, o lo que creo que debemos considerar es!!!, primero checa que los archivos que descargamos tengan los permisos necesarios para cada carpeta, ya que puede que mientras traslademos, copiemos a usb, etc, incluso el usuario que los usa o mueve pueden alterar los permisos de dichos archivos, así que MUCHO OJO!!!.
Ahora simplemente modificamos el xml a nuestro antojo, como podrán ver, si tenemos otras maquinas virtuales notaran que el que creo esa imagen y descriptor de maquina tienen configuraciones muy diferentes, desde que programa usa para usar la emulación o virtualización, usa (AQUI PONDRE CONFIG), ademas de que en el dispositivo de red que declararon maneja puenteo y no es network, etc, ahora bien aquí viene lo divertido.  Modificamos el documento colocando los valores predeterminados, es decir ZeroShell es tan noble y tiene todos los drivers para dispositivos "virtio", "cirrus", etc, así que podemos dejar algunos de estos dispositivos para el arranque, ahora bien debemos tomar en cuenta donde esta nuestra imagen y la ruta en la que dice que se encuentra, modificamos la ruta si no este en la misma ruta, o no tienen el mismo nombre, después de hacer las modificaciones necesarios podemos levantar este dominio desde virsh con el comando:
$virsh
#define /ruta/nombrearchivo.xml
Si no tenemos errores en el archivo, este nos deberá crear dominio llamado ZeroShell o el nombre que nosotros le demos, ahora solo encendemos esta maquina(#start ZeroShell). Si todo esta correcto simplemente arrancara y podremos verla desde un visor de escritorios remotos o podremos ver que esta activa con el comando #list --all.
Y listo tendremos nuestra maquina virtualizada en KVM, sin problemas, ahora solo hay que configurar y cambiar la ip el password de Admin etc.
Espero esto les sirva ya que si somos nuevos es muy difícil saber que esta ocurriendo con KVM cuando no trabajamos con virt-manager ( aunque en mi opinión VIRSH es la mejor herramienta para la manipulación del host y sus guest.).

NOTAS

  • Unos cuantos datos, tratemos de usar el usuario con mas privilegios, ademas de tener a punta nuestro host de maquinas virtuales, y de ser necesario usar root para no tener problemas de permisos.
  • Si con virsh no logramos montar esta maquina virtual, podemos usar virt-install con los comandos genéricos para una maquina en Linux con kernel < 2.6.X, ahora bien simplemente le decimos que agarre un CD booteable, o un iso de cualquier otra distro (esto es nomas por requisito ya que después lo expulsaremos virtualmente y deberá bootear desde el disco duro), y obviamente le ponemos la ruta de donde se localiza nuestra imagen de disco.
  • Por ultimo también podemos usar virt-manager para crearla por si todo lo demás nos retorna un error; como es un asistonto, simplemente seguimos los pasos, y usamos la imagen de disco de ZeroShell la cual ya debemos tener en el directorio de imágenes. Este quizás nos de un error pero sera al tratar de acceder a la consola de la imagen la cual cambiara automáticamente gracias a virt-viewer que ya viene integrado al virt-manager, solo cancelamos la ventana que este en foco en ese momento y en la lista de maquinas virtuales veremos nuestra maquina lista para ser usada (obviamente como en el dato anterior, si abrimos el visor de escritorios veremos la imagen que usamos para crear esta maquina, solo hay que configurar que el boot sea por el disco duro y expulsamos el iso, en el siguiente arranque configurara la maquina para los dispositivos virtuales que le configuramos y listo.


Voalá a jugar con ZeroShell.

viernes, 24 de agosto de 2012

0 Un Wiki en 5 min con MediaWiki

Introducción

Buenas buenaaaaas!!!... hoy les traigo una instalación muy sencilla, pero antes que nada que es un Wiki?....
según la wikipedia un wiki es:

Un wiki o una wiki (del hawaiano wiki, 'rápido')1 es un sitio web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un mismo texto que comparten. Los textos o «páginas wiki» tienen títulos únicos. Si se escribe el título de una «página wiki» en algún lugar del wiki entre dobles corchetes ([[...]]), esta palabra se convierte en un «enlace web» a la página wiki.
En una página sobre «alpinismo», por ejemplo, puede haber una palabra como «piolet» o «brújula» que esté marcada como palabra perteneciente a un título de página wiki. La mayor parte de las implementaciones de wikis indican en el URL de la página el propio título de la página wiki (en Wikipedia ocurre así: http://es.wikipedia.org/wiki/Alpinismo), facilitando el uso y comprensibilidad del link fuera del propio sitio web. Además, esto permite formar en muchas ocasiones una coherencia terminológica, generando una ordenación natural del contenido.
La aplicación de mayor peso y a la que le debe su mayor fama hasta el momento ha sido la creación de enciclopedias colectivas, género al que pertenece la Wikipedia. Existen muchas otras aplicaciones más cercanas a la coordinación de informaciones y acciones, o la puesta en común de conocimientos o textos dentro de grupos.
La mayor parte de los wikis actuales conservan un historial de cambios que permite recuperar fácilmente cualquier estado anterior y ver qué usuario hizo cada cambio, lo cual facilita enormemente el mantenimiento conjunto y el control de usuarios nocivos. Habitualmente, sin necesidad de una revisión previa, se actualiza el contenido que muestra la página wiki editada.

Instalación 

 Así o mas claro!!... bueno la instalación hoy en día es muy sencilla, en el caso de Debian Squeeze simplemente introducimos :
                          $ apt-get install mediawiki
Esto nos instalara todas las dependencias necesarias, claro hay una forma de hacerla a un poco mas completa y a mano, es decir instalar todas las dependencias a manita (php, apache, mysql etc), lo cual hoy en día creo que es innecesario, claro hay unas distribuciones en las cuales hacer una instalación de algún programa o paquete, requiere mas que un comando, en esos casos debemos hacer un backport (mostrare un poco mas de esto en post posteriores con un CCTV llamado Zoneminder). Así de fácil, como ven les tomara mas tiempo leer este post que instalar el programa.

Configuración

Con eso el programa ya esta instalado pero aun no es posible accesible desde una ruta en internet, o en este caso desde un navegador, para eso introducimos lo siguiente:
                       $ ln -s /var/lib/mediawiki /var/www
Con esto creamos una liga simbólica la cual en este caso decimos que a mediawiki tendremos acceso si tecleamos var/www, ojo, si ya tenemos otros servicios que usen apache tendremos varias ligas hacia var/www esto no debe afectar, si esto pasa debemos verificar todas las aplicaciones las cuales tengan ligas desde var/www. Ahora solo debemos mover la carpeta mediawiki a var/www que es donde se localizan nuestras paginas web. 
                       $ mv /var/www/mediawiki /var/www/wiki
Como indica el comando movemos la carpeta mediawiki a la misma carpeta donde están nuestras paginas web, como pueden ver es un poco ambiguo, o por así decirlo recursivo, sin embargo es necesario, ahora en /var/www/wiki podemos poner el nombre que queramos simplemente cambiamos wiki por miwiki etc =D.

Ahora intentamos acceder desde el navegador a nuestro Wiki con http://127.0.0.1/miwiki y seguimos las instrucciones que nos den ahí.

Con esto ya tenemos listo un wiki para lo que necesitemos =D


Notas:

  1. En mi caso tuve unos problemas con permisos ya que al hacer esas ligas se movieron algunos de las ya establecidas, simplemente hay que verificar los permisos para esa carpeta, cambiarlos a 764 esos uso yo en lo particular creo que son los que requiero en mi Wiki (chmod 764 /ruta)
  2. Yo ya tenia configurado mi mysql así que en el proceso de instalación quizás les aparezca una ventana gráfica (en terminal) que les dirá crear nuevo usuario root, este lo requerirán en la configuración del wiki así que NUNCA lo pierdan, deben otorgarla en la configuración de la base de datos del Wiki
  3. Este tutorial lo podrán encontrar en  http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_GNU/Linux ahí encontraran incluso como instalarlo a manita como gente grande =D.

8 Squid3 en Ubuntu/Debian como Proxy transparente

Introducción

Squid3 es una herramienta de filtrado de contenido(Proxy), la cual puede leer las cabeceras de ciertos protocolos dentro de las tramas de una conexión. Antes de llevar acabo esta instalación, debemos cerciorarnos de donde sera instalado, eso es HARDWARE ya que squid3 esta diseñado para trabajar con dos tarjetas de red (ethX, ethX:0), en el caso de no tenerlas, debemos hacer una subinterface de la tarjeta que se tenga en ese momento (lo inverso a suma de puertos [Bonding]). 

Instalación

Debemos asegurarnos de haber hecho una actualización de nuestras maquinas (Linux) con el siguiente comando:
                           
                   $ sudo apt-get update && upgrade
Ahora ya que el sistema tiene la lista de repositorios mas recientes, instalamos “Squid3” (ojo es la nueva versión de Squid, a diferencia de Squid2.9Estable este incluye mas opciones y herramientas para administración del mismo) con el siguiente comando:

                   $ sudo apt-get install squid3
Esto instalara squid3 en nuestras maquinas, ahora lo importante se encuentra en /etc/squid3/ la cual es la carpeta donde se encuentra un archivo de configuración (“squid.conf”), del cual haremos un respaldo en donde queramos, recomiendo el escritorio para rápido acceso ya que incluye todo un manual completo de uso. Ahora después de hecho el respaldo, eliminamos el fichero o modificamos para aquellos temerosos que no viven al limite =D. 

Configuración

Ahora creamos un nuevo archivo de configuración o modificamos el squid.conf y agregamos las lineas que hagan falta obviamente cambiando mis IP por las suyas, lo llenamos con lo siguiente:
        
##Declaracion de Reglas del Squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 22               # SSH
acl Safe_ports port 80               # http
acl Safe_ports port 21               # ftp
acl Safe_ports port 443 563 1863 # https
acl Safe_ports port 70               # gopher
acl Safe_ports port 210              # wais
acl Safe_ports port 1025-6553    # unregistered ports
acl Safe_ports port 280              # http-mgmt
acl Safe_ports port 488              # gss-http
acl Safe_ports port 591              # filemaker
acl Safe_ports port 777              # multiling http
acl CONNECT method CONNECT

##Aqui se aplican/ejecutan los parametros definidos en las reglas
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
always_direct allow all         #Esta linea es una caracteristica nueva de squid3
acl hora time MTWHF 10:00-22:00 # horario en el que permite el acceso a internet
acl redLan src 192.168.1.0/27 # acceso de red
acl paginas dstdomain .youtube.com .facebook.com #se definen paginas o listas
#Empezamos con las politicas de acceso
http_access deny !hora   #negamos la hora es decir decimos que nadie se puede conectar en un horario diferente al definido
http_access deny paginas  #El proxy puede bloquear paginas por dominio o ip, aqui se dice que bloqueara lo definido en "paginas"
http_access allow redLan #Aqui definimos que nuestra lan tendra acceso a internet
http_access allow localhost #nos permite que el usuario local pueda trabajar localmente acceso a internet ssh etc
http_access deny all #squid trae unas variables definidas, all es una de ellas y se entiende que lo que no declaramos sera bloqueado.

##Definicion de paginas que no queremos guardar cache
##  ejemplo:
##     hierarchy_stoplist cgi-bin ? hotmail gmail yahoo escuela.factor.com.mx
hierarchy_stoplist cgi-bin ?

##Configuracion estandar para la cache
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:                1440    20%     10080
refresh_pattern ^gopher:     1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0  0%      0
refresh_pattern .            0       20%     4320

##Configuraciones para que sea Transparente, Tenga dominio, las paginas
##de error esten en español, acepte el puerto 3130 y se configura la cache
http_port 3128 transparent #aqui se indica que el proxy sera trasparente y estara escuchando en el puerto 3128
#icp_port 3130
visible_hostname VM_Proxy #el nombre de nuestro proxy
cache_dir ufs /var/spool/squid3 10240 16 256   #Esto nos dice que constara de 10GB en 16 directorios con 256 subdirectorios   
error_directory /usr/share/squid3/errors/Spanish #Esto indica que idioma queremos usar en las paginas de bloqueo u error

  Como podemos ver en el se encuentran declarados puertos, paginas e incluso como debe estar configurado el cache, ahora para que esta configuración tenga efecto debemos reiniciar el servicio para eso tenemos de 3 sopas:

                $ sudo squid3 -k reconfigure
                $ sudo /etc/init.d/squid3 restart
                $ sudo service squid3 restart
Esto reiniciara el servicio, pero como la configuración para el squid3 es TRANSPARENTE debemos modificar unas cosas en el IPTABLES de Linux, el cual nos permitirá además de dar acceso, controlar las interfaces de entrada, salida e incluso podríamos dejar que el squid3 solo bloquee lo que el IPTABLES filtre (es decir solo sera cache, si queremos el IPTABLES puede ser un Firewall y ademas permitir acceso solo a lo que querramos). Para eso se utilizara el siguiente script, el cual consiste en solo direccionar (NO BLOQUEAR) los puertos de Http hacia el squid3, solo los protocolos reconocidos por el squid3 que se encuentran declarados en el “squid.conf”. El script nos queda de esta manera (ojo se recomienda usar el script con una configuración de IPTABLES básica es decir que no tenga configuraciones anteriores ya que el script reiniciara algunas tablas a tablas básicas para que el script funcione adecuadamente):

#!/bin/sh

# Squid server IP
SQUID_SERVER="172.16.0.12" #ip de la interfaz donde escuchara nuestro proxy

# Interface connected to Internet
INTERNET="eth0"

# Address connected to LAN
LOCAL="192.168.1.0/27" #como declaramos en squid.conf es el rango de ips a escuchar

# Squid port
SQUID_PORT="3128" #el puerto en que escucha el proxy (para redirigir el trafico a el)

Limpiamos firewall anterior
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Se cargan modulos de IPTABLES para NAT e "IP conntrack support"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp

# Habilitamos forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Configuramos una politica de filtrado por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

# Permitimos el acceso ilimitado al loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Permitimos UDP, DNS y Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT

# Esta es la mas importante ya que prepara este systema como router para la LAN
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
iptables -A FORWARD -s $LOCAL -j ACCEPT

# Permitimos que la LAN tenga acceso ilimitado
iptables -A INPUT -s $LOCAL -j ACCEPT
iptables -A OUTPUT -s $LOCAL -j ACCEPT

# Redireccionamos (DNAT) las peticiones del puerto 80 de la LAN al squid por el puerto 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -s $LOCAL -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
#OJOOOO!!!! el squid3 NO repito NO hace cache de HTTPS (443) en las notas dire por que
#iptables -t nat -A PREROUTING -s $LOCAL -p tcp --dport 443 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

# si son del mismo proxy
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
#iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 443 -j REDIRECT --to-port $SQUID_PORT

#abrimos los demas puertos desde internet a la lan
iptables -A INPUT -i $INTERNET -j ACCEPT
iptables -A OUTPUT -o $INTERNET  -j ACCEPT

# DROP lo demas y lo agregamos al LOG
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP


Ahora guardamos el script con el nombre que queramos, y lo ejecutamos con el siguiente comando:

                   $ sudo sh squid3script.sh
Con esto ya se puede usar el squid3 como proxy transparente, es decir simplemente lo ponemos antes de nuestros routers, y dejamos que el trafico pase por ellos, en pocas palabras este sera el gateway de nuestra lan.


       Notas:
           Se debe considerar que por una interfaz entrara el trafico, así que esta
                   NO debe tener gatway, o puerta de enlace predeterminada a internet.
                   La otra interfaz debe estar configurada para permitir el acceso a internet
                   y evitar conexiones provenientes de ella (considerando que no existan IDPS
                   u otro método de verificación y protección).
                   Se debe tener cuidado al agregar mas reglas a la tabla IPTABLE, ya que NO
                   sobreescribe las anteriores. (después posteare una configuración para por así decirlo
                   mejorar el rendimiento de nuestro Proxy ya que genera un Firewall básico.
                   Squid3 no maneja HTTPS el protocolo no esta soportado en la compilacion,
                   sin embargo se puede agregar la bandera al momento de la compilacion para que 
                   use SSL y otras cosillas por ahí con las cuales por cuestiones legales no podemos usar
                   en la institución donde logre esto. Ahora si es posible encontrar estos paquetes en la red.
                   Tener sumo cuidado en el formato en el squid.conf ya que si no se lleva el
                   orden adecuado, este mostrara errores.

viernes, 20 de julio de 2012

0 Ubuntu 12.04 Precise Pangolin + KVM

NOTAS

Buenas noches, días o tardes, hoy nomas paso para informarles que el post anterior Ubuntu 10.04/12.04 server + KVM + Bonding se puede resumir hoy en día a unos cuantos clics en la instalación inicial, si así es, si deseamos crear un HOST de MAQUINAS VIRTUALES, simplemente necesitamos una maquina que tenga las capacidades y un disco del nuevo Ubuntu 12.04, el cual ya viene con el nuevo kernel 3.0, ademas que incluye el mas nuevo y estable de los KVM, y es tan simple con unos simples clics (si así es tan sencillo como los clics de cierto sistema operativo, como lo son el clic singular, el doble clic, el clic derecho, cerrar los ojos dar una vuelta clic, etc.). Regresando al tema, al introducir el disco de Ubuntu desde el 10.04 en su versión SERVER, simplemente al momento de pedirnos que paquetes queremos instalar, encontraremos una opción que tiene virtual host o similar dependiendo del lenguaje de el sistema, esto solo nos dejara la maquina lista como host de maquinas virtuales, es decir instalara los paquetes libvirtd, kvm, virsh, virt-install, todos los paquetes relativos a KVM y la virtualización, ahora como mencione anteriormente, podemos hacer uso de la virtualización de KVM aun sin tener la aceleración por hardware, o las flags necesarias, esto es un tema aparte, pero quería hacer énfasis que incluso pude virtualizar una maquinita que corre Android x86, en una Acer netbook aspire one, y corre sin problemas, sin ningún problema, ahora lo malo es que esta netbook tiene RAM limitado, así que si tenemos varios procesos en la RAM la maquina obviamente se alentara.

FAQ


  • Bueno ahora supongamos que queremos instalarlo en una Desktop, bueno en Desktop tenemos las maravillas del clic, así que solo (en el caso de Ubuntu) nos vamos a el gestor de paquetes, o por repositorios y lo instalamos con unos cuantos clics. Incluso nos instalara una herramienta super útil de la cual incluso podemos administrar (crear, migrar, borrar, clonar, etc.) otros host de virtualización, esta herramienta es Virt-Manager, con una interface sencilla y muy intuitiva.
  • Ahora suponiendo que tengo una maquina en Debian o Ubuntu, simplemente seguir el post anterior referente al mismo tema, y tendrán listo el servidor para sostener maquinas virtuales.
  • Con referente al Bond y bridge, yo recomiendo primero sostener un Bond (EtherChannel, en el caso de un switch cisco), y despues poner el puente sobre los puertos del Bond, hablando del caso de 10.04 hay un bug que cuando se reinicia la maquina el Bond no esta arriba, simplemente hay que levantar la interfaz y listo.(ifconfig bond0 up).
  • Otro detalle es en el caso de 12.04, al cual puede que nos de un error el Virt-manager al tratar de agregar la conexión a esta maquina, este se resuelve simplemente conectándonos a la maquina host vía SSH por primera ves, para que esta este ya en el archivo de host conocidos.
Si tienen algún comentario u otra duda, favor de comentar para que podamos resolverlas juntos, ya que no soy experto, es decir siempre habrán problemas que quizás alguien que este de paso pueda resolver. =D saludos

martes, 17 de julio de 2012

0 Problemas con el blog

Buenos días, tardes o noches, hoy paso para corregir algunos problemas que puedan existir con el blog ya que veo en ciertos dispositivos y laptops la pagina carga con problemas y sin estilos, por mas que agrego las etiquetas HTML, estos no son reconocidos, así que regrese a una vista básica del blog, y en futuros días debería estar ya listo, ademas de poner nuevas entradas como ZoneMinder en Linux, con todos los problemas que pudiésemos tener, ya que como dije en la entrada anterior, uno se harta de los tutos o guías en Internet donde todo te sale bien en un ambiente controlado, o de laboratorio, y después no nos resulta o tenemos errores en el cual el autor no tiene solución o muchas veces nunca responde. Bueno regresando al tema, hoy solo pasare a arreglar el post anterior y debería estar ya mas que legible, lamento los problemas que pudieron tener al internar leerlo, y les pido una disculpa por eso.

hasta pronto =D.

jueves, 3 de mayo de 2012

0 Ubuntu 10.04/12.04 server + KVM + Bonding

INTRODUCCIÓN


Muy buenos días tardes o noches, hoy comencé a reiniciar el blog, ya que ahora tiene un fin, y es DIVULGAR el conocimiento que he adquirido en muchos temas, y en particular en mi carrera =D, que en este caso es Ciencias de la Computación, sin mas presentaciones hoy les traigo una problemática que he tenido en el área de Comunicaciones de la Facultad de Matemáticas, la cual se encarga no solo de la interconectividad(intranet) sino de la telefonía, pagina web, etc., y seguridad de las mismas. Es la falta de equipos "fisicos" o hardware de altas prestaciones, como lo son los servidores, ya sean DELL, APPLE, IBM, SUN, así como sus Arquitecturas i386, ARM, AMD64, etc etc etc. Bien, cuando entre a trabajar, solo existía una maquina que daba el servicio de virtualización, un servidor SUNFIRE de Sun MicroSystems, bastante bueno el equipo, sin embargo corría Windows server 2000, es decir no entre a inovar a el area, ademas no es un tema nuevo, sin embargo es un tema poco explotado (hoy en dia si ya hay incluso servidores y Sistemas operativos dedicados como es el caso de VMWareSphere y Parallels. Regresando al tema, el servicio era muy pobre, ademas de que al pobre servidor le ponen a virtualizar Win7 y otros SO que consumen muchos recursos de hardware solo para que puedan correr el SO, y ademas estos Guest(huéspedes) se dedicaban a realizar tareas, o tener servicios muy poco demandantes para el consumo en virtualización, es decir simplemente se desperdiciaba espacio, procesamiento, va!, recursos del sistema Host(Anfitrión), entonces vine con la idea de usar linux para crear guests que no consuman tanto y rindan el doble, ya que con linux para ser mas exactos Ubuntu 10.04 el cual era el LTS del momento, tenemos muchas herramientas mas que necesarias y suficientes para cualquier tarea que se requiera, desde un servidor Apache(http) hasta incluso un sistema autónomo e inteligente en cluster para ser IDS/IPS/FIREWALL/PROXY/ROUTER/... del cual hablaremos en otro post. Bien ahora resulta(en aquel entonces no sabia que existía KVM, sigue siendo relativamente es nuevo) entonces el encargado, mi jefe en el area, me dice tienes razón, investiga como hacer maquinas virtuales en linux(a es que no me supe explicar y el penso que yo quería mudar el sistema xD), así que investigue y di con este estupendo paravirtualizador/virtualizador/emulador de hardware de código libre y para Linux ademas de ser la solucion de Ubuntu en cuanto a virtualización. Antes de empezar a joder nuestro sistema Linux, ya lo he instalado en las siguientes maquinas: 1.-Dell 2.-SunFire 3.-Apple Xserve 3.1 y cada uno tiene sus características muy llamativas en cuanto a errores y configuraciones. Ahora bien lo primero es entender un poco de KVM y Virtualización, lo cual uds deben aprender xD, yo solo dare pautas para lograr una instalación exitosa y resolver dudas y obvio como dar mantenimiento, ya que ODIO que los post en la red digan -así se hace-, y LO EMULAN VIRTUALIZANDO EL HARDWARE ya sea VirtualBox o VMWare, y al final cuando sigues sus "tutoriales" nunca compila/funciona/es para tu arquitectura, estas personas no responden tus dudas o simplemente jamas tuvieron problemas ni dieron mantenimiento a el problema que "resolvieron" y terminamos en las mismas... Regresando al tema, pueden conseguir mas información en:

https://help.ubuntu.com/community/KVM
http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine​  https://help.ubuntu.com/community/UbuntuBonding 
PREÁMBULO


Kernel-based Virtual Machine o KVM, (en español, Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. 
Está formada por un módulo del núcleo (con el nombre kvm.ko) y herramientas en el espacio de usuario, siendo en su totalidad software libre. 
El componente KVM para el núcleo está incluido en Linux desde la versión 2.6.20. 
KVM permite ejecutar máquinas virtuales utilizando imágenes de disco que contienen sistemas operativos sin modificar. 
Cada máquina virtual tiene su propio hardware virtualizado: una tarjeta de red, discos duros, tarjeta gráfica, etc. 
KVM fue creado, y está mantenido, por Qumranet. 

KVM utiliza una versión modificada de QEMU como front-end. Se está trabajando para utilizar más características de la Virtualización Technology presente en las últimas CPUs de Intel (Core 2 Duo E6300 en adelante para equipos de escritorio y Core 2 Duo T5600 y superiores para equipos portátiles) y AMD. Se han realizado pruebas de rendimiento con Xen (utilizando virtualización hardware en lugar de para virtualización) y, para algunas cargas de trabajo, ha resultado ser más rápido. Para otras, no tanto. 
Una de las características que KVM posee es el «overcommit» que es el uso de memoria​excediendo aún la memoria física del host.

REQUISITOS

Antes que nada KVM necesita un procesador x86 con soporte Virtualización Technology. Puede ejecutar huéspedes GNU/Linux (32 y 64 bits) y Windows (32 bits), sin embargo se puede virtualizar sin tener el soporte VT, sin este soporte puede que la máquina virtual sea lenta o tenga problemas de compatibilidad, ahora para tener este servicio corriendo en una maquina lo recomendado es un servidor autorizado (HP, DELL, ACER, etc.), ahora requisitos mínimos son un procesador de doble núcleo Intel core 2 duo t5600 o AMD-V, memoria RAM mínima 2g ya que ​se comparte con las máquinas virtuales, sistema operativo Linux (en nuestro caso Ubuntu server 10.04LTS) 

Lo primero y antes que todo es verificar que el hardware soporte Virtualización.( algunos servidores no tienen activada esta funcionalidad de fábrica, se tiene que configurar en el BIOS setup) desde Linux (Ubuntu) introducimos el siguiente comando: 
$ kvm-ok 
este comando debe retornarnos lo siguiente "INFO: Your CPU supports KVM extensions", pero si dice esto INFO: Your CPU does not support KVM extensions, las máquinas virtuales ​correrán, pero más lento. NOTE: Si se ve el mensaje "KVM acceleration can/can NOT be used". Se malentiende ya que significa si está actualmente disponible (activado en el BIOS) y no que no sea soportado. O usando análogamente el comando: 
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo 
Si ahí encontramos vmx o svm para Intel o AMD respectivamente significa que nuestro procesador tiene la posibilidad de ejecutar KVM, pero si no sale nada con ese comando entonces no tenemos un procesador que soporte a KVM, como dije antes aun podremos usar la virtualización por software. 

Se recomienda usar un software y hardware de 64 bits ya que este puede soportar máquinas de 32 y 64 Linux, Windows , Mac. esto lo podemos comprobar de la siguiente manera: 
$ egrep -c ' lm ' /proc/cpuinfo si retorna 0 es que no tenemos 64bits 
si nos retorna algo diferente de cero introducimos este comando : 
$ uname -m esto nos retornara x86_64 si el SO es de 64 bits 


INSTALACIÓN

Ahora instalamos los paquetes necesarios para tener corriendo KVM, lo primero es actualizar el SO al más actual para evitar problemas de compatibilidad o repositorios no accesibles, esto lo hacemos con los comandos: 
$ apt-get update 
$ apt-get upgrade 
Cuando finalice de actualizar debemos reiniciar la máquina. 

Ahora una vez iniciada la maquina host, instalamos los paquetes necesarios: 
$ apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils 
este comando es para Ubuntu 10.04, para versiones anteriores usamos este comando: 
$ aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils 
este comando instala los siguientes paquetes: 
>libvirt-bin instala libvirtd lo necesario para administrar instancias qemu y kvm usando libvirt 
>qemu-kvm es lo necesario de KVM (librerías, drivers etc.) 
>ubuntu-vm-builder es un poderoso script para poder usar la línea de comandos para crear invitados(máquinas virtuales) 
>bridge-utils como su nombre lo dice, nos sirve para generar puentes de la red con las máquinas virtuales 
Al terminar la instalación, hay que hacer cosas importantes antes de crear máquinas virtuales:

1.- ver quienes tendrán derecho a crear máquinas virtuales (ver grupos) 
2.- verificar si tenemos derecho de escritura en algunas librerías (ver derechos) 
para este fin primero checamos los grupos con el comando : 
$ groups 
esto nos retorna adm dialout cdrom floppy audio dip video plugdev fuse lpadmin admin sambashare kvm libvirtd , como podemos ver al final están los grupos importantes, para que ese usuario pueda trabajar con kvm tenemos que agregarlo a esos grupos. si no aparece algo similar debemos agregar el usuario a los grupos de la siguiente manera: 
$ adduser "usuario" kvm (análogamente a libvirtd) 
​saldrá algo similar Adding user '<username>' to group 'kvm' ... 

Bien ahora después de ver que estemos en los grupos necesarios probamos la instalación de kvm para esto introducimos este comando: 
$ virsh -c qemu:///system list 
esto nos retornara como una tabla vacía: 
Id Name State 
--------------------------------------- 
esto está correcto, sin embargo si nos retorna libvirt: Remote error : Permission denied error: ​failed to connect to the hypervisor tenemos problemas de lectura y escritura 
en la librería /var/run/libvirt/libvirt-sock. Para resolver esto simplemente hay que darle permisos necesarios (srwxrwx---) al usuario que los necesite. 

Con esto ya está instalado el Administrador de máquinas virtuales. Ahora si lo instalamos en una distro server, tenemos de dos caldos, ya sea instalar el entorno visual o simplemente instalarlo desde línea de comandos. 

La primera es instalar el Desktop mínimo de gnome kde o el que más nos guste en el servidor(yo use gnome core minimal : sudo apt-get install xorg gnome-core), una vez instalado instalamos lo necesario para poder manejar las redes como un netmanager o similar, ahora para manejar las máquinas virtuales visualmente debemos instalar el "virt-manager" y de este hay dos caldos también podemos bajar el más actual e instalarlo o usar la versión simple que viene en los repositorios, en este caso como solo son para administrar de una manera sencilla, usamos el siguiente comando : 
$ apt-get install virt-manager 
el cual nos instalara el gestor visual, y pues instalar máquinas virtuales es tan sencillo que instalar un programa en Windows xD 
este paquete ya incluye unas cositas importantes que si queremos instalar desde línea de comandos necesitamos, una de ellas es virt-viewer, pero ojo este lo necesitaríamos en la máquina de la cual administraremos la máquina virtual (ojo no el host) ya que funciona como un VNC, y ya viene incorporado el bridge-utils, más que nada con solo instalar el virt-manager instala todo lo anteriormente mencionado solo que esto es para entorno visual. 

Ahora para instalar máquinas virtuales desde la línea de comandos, en el caso de que simplemente nos podemos conectar SSH a la maquina anfitrión (host) necesitamos usar el script antes mencionado. para esto introducimos el siguiente comando: 
$ virt-install --prompt 
este comando le pedirá opciones para comenzar la instalación, ahora si deseamos instalar con un solo comando(existen más formas de instalación, esto es por comodidad ya que se puede un xml, clonar o con una imagen ya hecha) el cual es : 
$ virt-install -[options] 
pero para ahorrarnos un poco de lectura usamos el siguiente comando, que más que necesario para crear máquinas virtuales: 
$ virt-install --connect qemu:///system -n NOMBRE -r 256 --vcpus=1 -f /home/userlab
/MaquinasVirtuales/NOMBRE.img -s 20 -c /home/userlab/Isos/ISOAINSTALAR.iso --vnc --noautoconsole --os-type linux --accelerate --network=bridge:virbr0 --hvm 

en ese comando podemos notar lo siguiente, --connect qemu:///system es decir que la máquina virtual estará conectada al hypervisor qemu sobre system, -n el cual será el nombre del Dominio que tendrá la máquina virtual, -r es el tamaño de memoria RAM que usara esa máquina virtual, --vcpus es el numero virtual de cpus que tendrá la máquina, -f es el directorio y ruta donde se encuentra el disco duro virtual ( en este caso de no existir, lo crea) este puede ser .img o .qow2 el cual es el estándar de kvm, 
-s es el tamaño del disco duro que se reservara para el disco virtual. 
​-c es el directorio o ruta donde se encuentra ya sea la imagen de disco (.iso) o el disco en sí. 
--vnc instala un servidor vnc para la máquina virtual el cual está en el host pero permite ver la máquina virtual 
--noautoconsole este evita que intente conectarse a la consola tty instalada en las versiones de linux, no importa si esta en auto al final necesitamos usarlo, 
--os-type el tipo de sistema operativo el cual correremos, Windows, linux, Mac etc., o la distro que es. 
--accelerate esto nos permite usar las tecnologías virtuales es decir saca todo el provecho de la virtualización por hardware 
​--network=bridge: este nos especifica que de network podemos poner simplemente la interface ya sea eth0, pero diciéndole que es bridge le especificamos que usara una interface virtual la cual esta puenteada en este caso virbr0, existe el comando default, el cual indica que es la interface por defecto a internet 
--hvm nos indica que usaremos el potenciador del kernel para hacer más eficiente la virtualización

EXTRAS

BRIDGE & BONDING 

ahora antes de usar este comando debemos conocer todo lo que podemos usar es decir para cada comando que podemos usar de hardware, en el caso del --network podemos introducir el comando: 
$ virsh 'net-list --all' 
ahora esto nos lleva a otro punto, el cual es las interfaces puenteadas, primero que nada en el caso del servidor DELL que usamos tenemos dos interfaces para internet, 
eth0 y eth1, además como estamos detrás de un switch decidimos colocar un bonding, es decir la suma de los puertos, en este caso de las interfaces, para que solo sea una interface, en este caso bond0, ahora necesitamos instalar algunas librerías para poder lograr el bonding por software, ( dependiendo de bonding es necesario configurar el switch para que funcione, sino el switch se dará cuenta que ambas interfaces tienen la misma MAC y botara las conexiones) el comando es el siguiente: 
$apt-get install ifenslave 
el cual instala los paquetes necesarios para el bonding por software, ahora podemos configurar los alias o hacer las configuraciones desde /etc/network/intefaces, ojo en versiones más nuevas de Ubuntu 10.04 algunos scripts y archivos son obsoletos, pero siguen haciendo su trabajo. 
Bien una vez instaladas podemos hacer lo siguiente: 
$nano /etc/network/interfaces 
lo cual nos abrirá el archivo de configuración de las interfaces de red, el cual contiene las configuraciones de internet, en caso de no haber configurado anteriormente este archivo tendrá lo siguiente: 
# This file describes the network interfaces available on your system 
# and how to activate them. For more information, see interfaces(5). 

# The loopback network interface 
auto lo

​iface lo inet loopback 

# The primary network interface 
auto eth0 
iface etho inet dhcp 
en este archivo dependiendo de nuestras configuraciones haremos lo siguiente: 
1.- ver que estén todas las interfaces funcionales, 
2.- antes de configurar el puente, debemos cerciorarnos que el bond funcione con queremos que lo haga 
3.- configurar el puente de las interfaces virtuales, en este caso todas las máquinas virtuales se ​quedaran sin internet, si esto ocurre simplemente cambiar la interface de salida en el XML o desde virsh o desde virt-manager. 

bien ahora configuramos el archivo interfaces de esta manera: 
auto lo 
iface lo inet loopback 

auto bond0 
​iface bond0 inet dhcp 
bond-slaves none 

auto eth0 
iface eth0 inet manual 
bond-master bond0 
bond-primary eth0 eth1 

auto eth1 
iface eth1 inet manual 
bond-master bond0 
bond-primary eth0 eth1 

y modificamos o creamos el archivo /etc/modprobe.d/bonding.conf ($ nano /etc/modprobe.d/bonding.conf) y agregamos lo siguiente : 

alias bond0 bonding 
options bonding mode=4 miimon=100 downdelay=200 updelay=200 

en donde decimos que al alias bond0 se comportara como bonding y tendrá las opciones mode=0 (existen 6 tipos, 4 de ellos necesitan configurar el switch, los otros dos son por software) miimon = 100 dice que verifique que las interfaces estén funcionando cada 100 milisegundos, downdelay es si no responde en 200 milisegundos darle de baja y esperar 200 milisegundos para levantarla nuevamente (updelay). después de configurar esto ya sea static o dhcp reiniciamos el servicio de internet con : 
$ /etc/init.d/networking restart (esto nos puede decir que es deprecated (obsoleto) pero aun funciona. 

y dependiendo del modo que escojamos en el caso del servidor DELL fue 4 ((802.3ad) IEEE 802.3ad Dynamic link aggregation.) deberemos configurar el switch ( en el caso de cisco ya viene para implementarlo con unos cuantos clics) si no ocurre ningún error y levanta la interface bond, lo podemos verificad con un ifconfig: 
$ ifconfig 
lo cual nos debe mostrar algo como esto: 


user@ondevice:~$ ifconfig 
bond0 Link encap:Ethernet HWaddr 00:1d:7d:09:8b:e0 
inet addr:10.100.0.101 Bcast:10.100.255.255 Mask:255.255.0.0 
inet6 addr: fe80::21d:7dff:fe09:8be0/64 Scope:Link 
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 
RX packets:37764013 errors:0 dropped:0 overruns:0 frame:0 
TX packets:39725170 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:0 
RX bytes:37822531889 (37.8 GB) TX bytes:41877178152 (41.8 GB) 
 
eth0 Link encap:Ethernet HWaddr 00:1d:7d:09:8b:e0 
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 
RX packets:2378 errors:0 dropped:0 overruns:0 frame:0 
TX packets:1030 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:1000 
RX bytes:462854 (462.8 KB) TX bytes:86837 (86.8 KB) 
Interrupt:31 Base address:0xe000 

​eth1 Link encap:Ethernet HWaddr 00:1d:7d:09:8b:e0 
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 
RX packets:37761635 errors:0 dropped:0 overruns:0 frame:0 
TX packets:39724140 errors:0 dropped:0 overruns:0 carrier:0 
collisions:0 txqueuelen:1000 
RX bytes:37822069035 (37.8 GB) TX bytes:41877091315 (41.8 GB) 
Interrupt:32 Base address:0x4000 

En este podemos ver que las interfaces están como esclavas de bond0, así que por ahora podemos ver que está funcionando, también podríamos usar el siguiente comando: 
$ cat /proc/net/bonding/bond0 
lo cual nos mostrara algo por el estilo: 

Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) 

Bonding Mode: IEEE 802.3ad Dynamic link aggregation 
Transmit Hash Policy: layer2 (0) 
MII Status: up 
MII Polling Interval (ms): 100 
Up Delay (ms): 200 
Down Delay (ms): 200 

802.3ad info 
LACP rate: fast 
Aggregator selection policy (ad_select): stable 
bond bond0 has no active aggregator 

Slave Interface: eth0 
MII Status: up 
Link Failure Count: 0 
Permanent HW addr: 00:0c:29:f5:b7:11 
Aggregator ID: N/A 

Slave Interface: eth1

​MII Status: up 
Link Failure Count: 0 
Permanent HW addr: 00:0c:29:f5:b7:1b 
Aggregator ID: N/A 

nos muestra exactamente lo mismo que ifconfig (claro las más son diferentes ya que son ejemplos) como podemos ver las interfaces son esclavas de bond0 
si todo está funcionando como debe y no ocurre ningún error ( los errores simplemente pueden ser ortográficos sobre el archivo interfaces) ahora configuramos el bridge(puente para las máquinas virtuales). 
​En /etc/network/interfaces agregamos lo siguiente y modificamos unas cositas: 

auto virbr0 
iface virbr0 inet static 
address 192.168.0.2 
netmask 255.255.255.0 
network 192.168.0.0 
broadcast 192.168.0.255 
gateway 192.168.0.1 
​# dns-* options are implemented by the resolvconf package, if 
# installed 
dns-nameservers 192.168.0.1 
dns-search domain.com.pl 
bridge-ports bond0 
bridge_stp off 
bridge_fd 0 
bridge_maxwait 0 

lo agregamos al final del documento ya que al iniciar los servicios levanta en orden como se declaran. Como podemos ver se llama virbr0 esto se debe que al instalar las bridge utils de linux esta nos crea esta interface por defecto, una interface virtual que viene configurada como NAT para las máquinas virtuales, esto es ellas tienen internet pero no podemos acceder a ellas desde internet, esta configuración es para que tengamos a las máquinas virtuales a la misma altura que el host, es decir que puedan tomas ips de el mismo dominio o red. y antes de cerrar y reiniciar el servicio debemos poner la interface bond0 en manual, para que la interface MASTER ahora sea virbr0 y no bond0 (ojo es muy importante sino ambas interfaces tendrán ip y no queremos eso, queremos solo una ip, la cual debe estar en la interface que hace el puenteo con internet. es decir esto debe quedar de la siguiente manera: 

eth0 --->\, 
bond0 --->virbr0 ----> internet. 
eth1 --->/' 

Ahora reiniciamos el servicio: 
$ /etc/init.d/networking restart 
y vemos con ifconfig que solo virbr0 debe tener ip, en este caso la ip que le proporcionamos (192.168.0.2) o simplemente lo podemos dejar como dhcp y comentar todas las líneas con # excepto las que digan bridge. 

Ahora esto debe dejar listo las máquinas virtuales, al momento de crear máquinas virtuales con cualquier método verificar que la interface con puente sea seleccionada.

Ahora bien ya tenemos todo listo ya sabemos instalar las máquinas y cómo hacer que tengan ip ​del mismo nivel que el host. Ahora bien y como administramos la máquina virtual, como accedamos a ella por internet, o incluso de una maquina en LAN, aquí entra el VNC o Virt-viewer, es decir si estamos en una maquina conectada en LAN introducimos :
$ virt-viewer -c qemu+ssh://usuario@ip_del_host/system Domino_de_maquina_virtual
esto nos permite un túnel ssh entre la máquina y el host, para hacer una conexión tipo vnc con el hypervisor, y en específico con el servidor VNC de la máquina virtual, que pasa cuando no sabemos el nombre o dominio de la máquina virtual, para esto nos conectamos al servidor host de máquinas virtuales, ya sea por ssh o telnet, e introducimos el comando :
$ virsh
esto nos abrirá otra Shell la cual es exclusiva de virsh, en ella podemos introducir: 
​$ list --all 
este comando nos mostrara todas las máquinas virtuales instaladas en ese servidor, en la tablita podemos ver 3 cosas, el id de la maquina el cual es un numero entero, el dominio, el cual es el nombre identificador de la máquina virtual, y su estado el cual es encendido/pausado/apagado (start/pause/shutdown), (esta Shell tiene más opciones como borrar modificar etc, simplemente escribirnos help para poder ver todas las opciones,) ahora sabiendo el nombre número y estado podemos trabajar con ese dominio y cerrar la conexión con el host, e conectarnos con virt-viewer (nuevamente usar el virt-viewer es desde la maquina en LAN), el comando para instalarlo es: 
​$ apt-get install virt-viewer (este ya viene incluido en virt-manager) 
Ahora si estamos desde Ubuntu cualquier versión, este ya incluye un visor de escritorios remotos por vnc, se llama vinagre, se encuentra en Internet>visor de escritorios remotos. este se configura también con túnel ssh, es decir al darle conectar seleccionamos vnc, y aparecerán campos a llenar, en el primero donde va anfitrión ponemos 
127.0.0.1:5900 (ojo si el id de la máquina virtual es diferente de cero, entonces hacemos una suma, el puerto 5900 le sumamos el número de id, si es 3 hacemos 5900+3, y quedaría 127.0.0.1:5903) ahora en la casilla usar equipo colocamos la ip del host, en este caso algo como <usuario@ip_del_host> y simplemente le damos conectar, ahora introducimos el password del usuario y listo podremos manipular la máquina virtual si aún no le otorgamos ip fija. (En caso de ip fija es más conveniente instalarle ssh para manipularle de una manera más rápida). Ahora desde Windows solo instalamos un visor de escritorios remotos y lo configuramos de igual manera, y listo. =D.
 

Just Linovaxion Copyright © 2013 - |- Template created by O Pregador - |- Powered by Blogger Templates