domingo, 1 de noviembre de 2015

Iniciar Windows Instalado en el Disco Rigido con VirtualBox desde Linux

Me toco cambiar la notebook y la nueva trajo instalado el famoso Windows 10, fiel a mis costumbres cargué un Ubuntu en un pendrive y me propuse a instalar un OS de verdad, pero justo en el momento de tener que eliminar las particiones se me ocurrió dejar instalado la aplicacion de MS (perdon, el Sistema Operativo de MS) para ver cuanta verdad hay detrás de todos los comentarios y elogios a cerca del fabuloso W10. Es justo ahí donde tomé un giro y pensé en dejar instalado el Win10 y proceder a achicar la partición donde se encuentra instalado Windows para darle lugar al Linux en el HDD y luego elegir que OS usar en el momento del arranque.
No del todo conforme con la elección que tomé, me pregunte si existía alguna manera de levantar el Win10 ya instalado pero con el VirtualBox, con un poco de googleo, para mi sorpresa me di cuenta que es posible y sin mayores dificultades logré mi cometido y me reenamoré de Linux.


En el manual de VirtualBox, capitulo 9 menciona que es posible crear un archivo .vmdk especial donde se define donde se almacenaran los datos, en él se podría definir acceso directo a todo el HDD o a una partición especifica.


Ver... "9.9.1.2. Access to individual physical hard disk partitions"


Antes de Instalar Linux, con Windows ya Instalado:

  1. Con el SystemRescueCd y con la ayuda del gparted achiqué la partición donde esta instalado el Windows y de paso cree las particiones para la posterior instalación de Ubuntu.

  2. Hacer un backup de la MBR antes de Instalar Linux:
    # dd if=/dev/sda of=Win10.mbr count=1 bs=512


     
    Nota: No olvidar guardar el archivo .mbr .
  3. Instalar Linux en el esquema de partición que creamos en el punto 1.



Con Linux y el VirtualBox ya Instalado:
  1. Abrimos VirtualBox y procedemos a crear la VM.

  2. Procedemos a crear los archivos .vmdk, para eso tenemos que conocer las particiones que tenemos.

    $ sudo fdisk -l /dev/sda
    Nota: En mi caso voy a utilizar las primeras 3 particiones.
  3. Nos dirigimos al directorio donde estemos creando nuestra VM:

    Importante: Copiar el archivo Win10.mbr que tomamos previamente al directorio donde estemos creando la VM. Con el siguiente comando creamos el .vmdk:

    $ VBoxManage internalcommands createrawvmdk -filename Win10.vmdk -rawdisk /dev/sda -partitions 1,2,3 -mbr Win10.mbr
    Con el comando anterior lo que hacemos es crear el archivo de Hard Disk especial y le indicamos que utilice la MBR que creamos anteriormente.


  4. Al continuar con el Asistente vamos a llegar a la opción de agregar Virtual hard Disk, en este punto tenemos que optar por seleccionar el archivo .vmdk especial que creamos anteriormente.


  5. Procedemos a Iniciar la VM.


  6. Al usurio de Linux que opere a la VM es necesario agregarlo al grupo disk para que tenga acceso de tipo rw a las particiones del HDD.


  7. Al iniciar Windows detecta los nuevos dispositivos.


  8. Windows inicio correctamente, solo queda instalar las VM Tools.

Aclaraciones:

Opte por hacer un backup de la MBR y luego usarla para no tener que pasar por el GRUB de Linux, de esta forma también evito iniciar el Ubuntu desde la VM y causar conflictos en el File System de linux de hecho en el manual del VirtualBox aclara: "If your host operating system is also booted from this disk, please take special care to not access the partition from the guest at all. "

Troubleshooting:

De hecho tras iniciar mi Ubuntu el log de mi Sistema de Archivos (XFS) se corrompio cosa que me di cuenta cuando reinicie la maquina y el Ubuntu no lograba iniciar.
Para mi fs XFS la solución fue recrear el log con el comando: #  xfs_repair -L /dev/sda6


Si quisiera obviar la parte de backup y posterior uso de la MBR podría crear el .vmdk con las 6 particiones del HDD (en mi caso) y de esta forma utilizaría el GRUB para iniciar el Windows.

El comando seria: $ VBoxManage internalcommands createrawvmdk -filename Win10.vmdk -rawdisk /dev/sda -partitions 1,2,3,4,5,6




Salu2
Hernán Nacimiento

lunes, 13 de julio de 2015

Instalar Guacamole 0.9.7 HTML5 Remote Desktop Gateway en CentOS 7

guacamole.incubator.apache.org




Guacamole es un Remote Desktop Gateway con el cual podras crear Sesiones Remotas de tipo RDP, VNC, SSH y Telnet desde un único frontend web.
Para funcionar Guacamole no se necesita de ningún tipo de Cliente o Applet y es esto es gracias a que Guacamoles es una App Web basada en HTML5.




Para instalar Guacamole basta con seguir con las guias de instalación del proyecto Guacamole:



Pero para facilitar la tarea junte todos los ingredientes en un script de instalación.

El script funciona en CentOS 7, instala dependencias, baja y compila los source files de Guacamole y configura el OS para que en pocos minutos tengas disponible tu GW.

Para instalar Guacamole:

# wget http://sourceforge.net/projects/guacamoleinstallscript/files/CentOS/guacamole-install-script.sh
# chmod +x guacamole-install-script.sh
# ./guacamole-install-script.sh


Completar el Menu de Instalación y listo! A probar el Guacamole!



Luego estare realizando un script de instalación para Debian/Ubuntu y lo subire a sourceforge!

http://guacamoleinstallscript.sourceforge.net


Saludos
Hernan


viernes, 1 de mayo de 2015

Como montar un FTP al filesystem Debian/Ubuntu



Si ustedes como yo acceden de forma constante a un FTP una buena idea podría ser montar el FTP en un directorio del FS.


Instalar el curlftpfs:

# aptitude install curlftpfs


Para montar desde la linea de comandos:

# curlftpfs -o allow_other ftpUsername:ftpPassword@ftp.example.4u /mnt/ftp.example.4u/


Si quieres que se monte de manera automatica con el fstab:

# vim /etc/fstab


Agregar la siguiente linea:

curlftpfs#ftpUsername:ftpPassword@ftp://ftpUrl /localDirectory fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,utf8 0 1

No olvides reemplazar usuario, passwd y la url del ftp!


Luego de guardar y salir le indicamos al fstab que monte todo de manera automática con el comando:

# mount -a


Por ultimo podriamos ver con el comando mount como quedo montado el FTP:


mount curlftpfs



Salu2!

Hernan

jueves, 30 de abril de 2015

Zoneminder 1.28 con problemas para visualizar Camaras con tinyCam Monitor de Android

En el sitio oficial de ZoneMinder tenemos una Repo para RHEL/CentOS mantenido por Andrew Bauer. Con el ZM es muy sencillo de instalar y configurar, solo encontré un problema al momento de ver las cámaras con la app tinyCam Monitor para Android.

Resulta que la app intenta acceder a un archivo CGI el cual no encuentra.

Con el comando tcpdump podemos ver el error.

tcpdump


La app no encuentra el archivo nph-zms!

El workaround para solucionar esto es copiar el archivo nph-zms al directorio cgi-bin del apache:

[root@Camaras ~]# cp /usr/libexec/zoneminder/cgi-bin/nph-zms /var/www/cgi-bin/

El debug:

Para hacer el debug lo que hice fue utilizar el comando tcpdump desde el CentOS donde tengo instalado el ZM, y como dato adicional le pase por parametro al tcpdum la IP de mi smartphone mas el parámetro X para ver el payload en ASCII :

[root@Camaras ~]# tcpdump -i eth0 host 172.16.1.165 -nnvvX 

Si acceden por SSH también podrían agregar como parámetros al tcpdump "not port 22" para no capturar las sesión de SSH.

Espero les sea útil!
Salu2

viernes, 15 de agosto de 2014

Snapshot de Linux Filesystem Juniper STRM Series u Otros Linux System

Este producto sí que me trajo dolores de cabeza! Al menos la Serie I de STRM 2500 Juniper.

He tenido que buscar una solución de toma de snapshot de filesystem ya que surgió un problema en un Upgrade de versión de Software donde fallaba la instalación continuamente y cada vuelta atrás suponía volver a instalar todo pasando por diferentes versiones y eso consumía alrededor de 5 o 6 horas de trabajo, entonces utilizando este método solo me ocuparía cerca de una hora y dejaría listo el sistema para volver  a realizar más pruebas.




Lo primero que hice fue conocer las particiones que tenía cargadas, con un fdisk -l bastaba pero para verlo en modo grafico use el Gparted, un ejemplo a continuación:



Podemos ver que hay muchas particiones a backupear y que la tabla de particiones es GPT.

Para realizar esta tarea se requiere:


  1. SysrescueCd en un Pendrive configurarlo de modo tal que al momento de bootear se redirija todo por consola.
  2. Tener un NFS listo para usarce en una Noteebok o WS.


Pasos para Crear Snapshot:


  1. Reiniciar el STRM con el USB sysrescuecd.
  2. Conecarse por ssh con forward de X e iniciar el gparted para reducir el tamano del sda8 a 1Tb o menos.
  3. Montar una unidad NFS: mount -t nfs4 IP:/srv/nfs /mnt/backup
    #cd /mnt/backup/strm/
  4. Hacer un backup completo del mbr en la particion montada previamente:
    #dd if=/dev/sda of=mbr.dd count=1 bs=512
    #sgdisk -b sda.mbr /dev/sda

  5. Hacer backups de las particiones con el partimage.
  6. Las particiones a backupear son sda1,2,3,(4),5,6,8
    Nota: La particion 4 no se podra backupear con el partimage con lo cual usar el dd.

    #dd if=/dev/sda4 of=sda4.dd
    #partimage -z1 -d -c save /dev/sda# /mnt/backup/strm//sda#.partimg




Pasos para el Restore de Snapshot:


  1. Reiniciar el STRM con el USB sysrescuecd.
  2. Conecarse por ssh con forward de X.
  3. Montar una unidad NFS:
    #mount -t nfs4 IP:/srv/nfs /mnt/backup
    #cd /mnt/backup/strm/

  4. Hacer un restore del mbr:
    #dd if=mbr.dd of=/dev/sda
    #sgdisk -l sda.mbr /dev/sda

  5. Expandir la particion sda8 con el gparted.
  6. Hacer Restore de las particiones con el partimage:
    #partimage restore /dev/sda# /mnt/backup/strm//sda#.partimg

Salu2!

IP ACL en Avaya Switch ERS

Este SW me trajo muchos dolores de cabeza! En esta oportunidad lo que voy a comentar es como hacer  IP ACL para este dispositivo.

El primer problema que encontré es que es la limitación de cantidad de entradas para una política de ACL, y la segunda y más grande es que si instalamos una ACL IP luego tendremos dropeo ARP y por último la tercer limitación es que se debe aplicar la política a puertos específicos del SW.
Una de las ventajas es que el dispositivo implementa las ACL por hardware, con lo cual es súper rápido aunque hay que tener cuidado porque consume recursos de HW.


Entonces el workaround que encontré es hacer una ACL combinada de L2 y L3, es decir una ACL que en sus reglas permita el protocolo ARP EtherType 0x0806 y luego las entradas L3.

Documentación de Avaya:
http://198.152.212.23/css/P8/documents/100140053



Template:
------------------------------
! *** Recordar reemplazar la Net donde estoy parado por 172.26.115.0/24 ***
! *** Disable ARP Filter ***
qos traffic-profile classifier name ACL1 ethertype 0x806  eval-order 1 drop-out-action disable
! *** Drop ports tcp 22,23,3389 ***
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.201.2.0/24 protocol 6 dst-port-min 22 dst-port-max 23 drop-action enable block BlPorts eval-order 2 drop-out-action enable
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.201.2.0/24 protocol 6 dst-port-min 3389 dst-port-max 3389 drop-action enable block BlPorts eval-order 3 drop-out-action enable
! *** Drop relevant Networks ***
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.200.1.0/24 drop-action enable block BlNets eval-order 4 drop-out-action enable
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.201.2.0/24 drop-action enable block BlNets eval-order 5 drop-out-action enable
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.201.3.0/24 drop-action enable block BlNets eval-order 6 drop-out-action enable
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 10.201.4.0/24 drop-action enable block BlNets eval-order 7 drop-out-action enable
! *** 192.168.112.0/20: 191.168.112.1 - 191.168.127.254
qos traffic-profile classifier name ACL1 addr-type ipv4 dst-ip 192.168.112.0/20 drop-action enable block BlNets eval-order 8 drop-out-action enable
! *** Permit any other other match ***
qos traffic-profile classifier name ACL1 eval-order 9 drop-out-action disable
! *** Apply ACL1 on specific ports ***
qos traffic-profile set port X name ACL1
------------------------------


Salu2!

domingo, 2 de marzo de 2014

Desbloqueos de Estereos de Autos

Les traigo un pequeño post que les puede ser de mucha ayuda. La siguiente información los podrá salvar de remplazar o realizar ingeniería inversa a una memoria EPROM de un Radio Estéreo de Automóvil.

Si como a mi les paso de tener un Radio Estéreo de algún Vehículo y no conocen el código de desbloqueo pueden probar suertes con el Sitio Web: www.radio-code.lt donde básicamente escogen la Marca del Vehículo y luego el modelo del Estéreo, en mi caso es un "MERCEDES radio AUDIO 5", siguen las instrucciones y les dará el código de desbloqueo.

Nota: Si tienen un Estéreo de Mercedes luego del primer intento la pantalla mostrara el WAIT por 10 minutos y luego de varios intentos la pantalla podrá quedar en WAIT por una hora.



Salu2!
Hernan