Aprender Linux

Sitio alternativo a Microteknologias.cl

2007/01/01

Camuflando la MAC de tu tarjeta de red

MAC Spoofing es la técnica utilizada para camuflar la identidad en la red. Puede haber razones muy distintas para camuflar la MAC (Media Access Control, un identificador único que posee cada tarjeta de red), acciones maliciosas, investigación, o simplemente para proteger nuestra privacidad.

Puedes averiguar cual es el MAC de tu tarjeta de red, utilizando el comando ifconfig en la consola:

alex@skynet:~> ifconfig
bash: ifconfig: command not found
alex@skynet:~> su
Contraseña:
skynet:/home/alex # ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:11:09:D9:CE:A5
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:177 Base address:0xbc00

skynet:/home/alex #

Supongamos que queremos cambiar la MAC para proteger nuestra privacidad.

En Linux bastaa con escriir los siguientes comandos:

skynet:/home/alex # ifconfig eth1 down
skynet:/home/alex # ifconfig eth1 hw ether 00:00:00:AA:BB:CC
skynet:/home/alex # ifconfig eth1 up
skynet:/home/alex # ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:00:00:AA:BB:CC
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:177 Base address:0xbc00

skynet:/home/alex #

2006/12/18

Linea del tiempo de Linux

A principio del año 2005 hice una Linea del tiempo de Linux y la publique en Kde-Look.org. Tuvó mucho éxito. Tanto que han salido nuevas versiones más actualizadas.

Aqui los enlaces a cada una de ellas:

Creada por Alex Sandoval
http://www.kde-look.org/content/show.php?content=38440

Creada por NPU
http://www.kde-look.org/content/show.php?content=44218

Creada por greengrass44
http://www.kde-look.org/content/show.php?content=46315


Mi próximo proyecto es crear una línea del tiempo de los sistemas BSD.

Disfrutenlas!

QEMU, emulación de sistemas

20/enero/2006

Introducción

QEMU es una aplicación de código abierto que nos permite emular un entorno de hardware completo dentro de nuestro sistema Linux.

Linux soporta una serie de aplicaciones que nos permiten emular las características de una arquitectura hardware. Estas aplicaciones pueden crear un computador virtual dentro de nuestra máquina Linux. Podemos usar este computador virtual para probar software o incluso ejecutar otro sistema operativo. Una aplicación que emule un entorno de hardware normalmente se conoce como un emulador de sistema. El emulador de sistemas más común para Linux es Bochs, un emulador muy potente que es habitualmente muy difícil de configurar, y VMware, un eficiente y rápido emulador que, desafortunadamente, tiene un alto costo ya que es un producto comercial. Pero hay otro competidor en el campo de los emuladores de sistemas que ha hecho su aparición en escena. En este artículo aprenderemos lo que hay que saber sobre la potente (y gratuita) aplicación de emulación de sistemas QEMU.

QEMU es extremadamente fácil de usar, proporcionando simples comandos para tareas que pueden resultar difíciles con otros emuladores. Les mostraremos como usar QEMU en circunstancias reales, pero debes recordar que este artículo solo cubre una parte de las funciones y comandos disponibles en QEMU. Para ver el resto debes descargar QEMU y ponerlo en ejecución.

Instalación de QEMU

QEMU está disponible como código fuente o como binario Linux precompilado. Encontraremos la versión binaria precompilada en la página Web de QEMU. Descargaremos la versión binaria al directorio root ("/"). Abriremos una consola e introducimos los siguientes comandos:

$ cd /
$ su
- Insertar contraseña root y presionar ENTER-
# tar zxvf qemu-0.8.0-i386.tar.gz
# qemu


El programa desempaquetará todos los archivos necesarios en el lugar adecuado para el sistema Linux. Si tenemos un problema con la versión precompilada de QEMU o si deseamos instalar QEMU desde el código fuente tendremos que descargarnos la última versión e introducir los siguientes comandos desde una consola:

$ su
- Insertar contraseña root y presionar ENTER-
# tar zxvf qemu-0.8.0.tar.gz
# cd qemu-0.8.0
# ./configure
# make
# make install
# qemu


Debemos arrancar QEMU desde dentro de una ventana del entorno X Window. Cuando iniciemos QEMU empezará emulando el entorno hardware de nuestro equipo. Si tenemos un Pentium II, QEMU emulará un Pentium II; si estamos en un PowerPC, QEMU emulará un PowerPC. Para emular una arquitectura hardware distinta debemos especificar el nombre de la arquitectura con el comando qemu. Para conocer la lista de arquitecturas soportadas por QEMU introduciremos qemu- y presionamos la tecla TABULADOR dos veces.

Inicio de un Live CD

Podríamos usar QEMU para probar una imagen ISO que hayamos descargado de Internet. Por ejemplo, si encontramos una imagen ISO de un Live CD de una distribución Linux en el disco duro, podremos usar QEMU para probar la distribución. Por ejemplo, suponiendo que tenemos una imagen ISO de KNOPPIX llamada knoppix.iso, si queremos probar la imagen antes de masterizarla, podemos abrir una consola e introducir estos comandos:

$ su
- Insertar contraseña de root y presionamos ENTER
(para asegurarnos de que podemos acceder a los periféricos sin problemas)
# qemu -cdrom knoppix.iso


Se abrirá otra ventana y comenzará la emulación como si el programa se estuviera ejecutando desde hardware real. Knoppix presenta un arranque gráfico y, tras la elección del método de arranque, comienza en modo gráfico. Podemos arrancar y usar KNOPPIX como hacemos siempre, con las limitaciones obvias de un emulador, que probablemente sea más lento que un sistema ejecutándose directamente en el hardware. El modo más fácil de usar Internet y comunicarse con el entorno del anfitrión es usar la opción -user-net:

# qemu -user-net -cdrom knoppix.iso

Si hay un servidor Samba instalado en el sistema, el entorno emulado puede acceder al entorno del anfitrión (via Samba) con la opción -smb (directory). Esta opción para acceder SMB solo puede utilizarse con la opción -user-net. Si tenemos un CD que contenga una distribución Linux o un Live CD Linux, podemos ejecutarlos con un simple comando:

# qemu -user-net -cdrom /dev/cdrom

Con esta opción insertamos el CD en el dispositivo de CDs sin montarlo. QEMU usa el archivo del dispositivo en lugar de la imagen ISO para iniciar la emulación. Esta es una opción muy útil que hace que dispositivos como CDs o discos flexibles sean accesibles tanto al sistema anfitrión como al sistema emulado.

Uso del Mismo Disco Duro

Otra situación en la cual podemos usar la ruta del dispositivo en lugar del nombre de un archivo imagen es la representada por el comando QEMU que permite arrancar un sistema operativo en un disco duro. Un ejemplo típico es un disco duro con dos versiones diferentes de Linux, por ejemplo SUSE y Debian.

¿Qué ocurre si estamos en SUSE y queremos arrancar Debian? En situaciones normales, tenemos que cerrar todos los programas, desconectarnos del entorno X y reiniciar el computador. Con QEMU podemos arrancar el otro sistema operativo en nuestro disco duro sin necesidad de reinicar:

# qemu -snapshot -hda /dev/hda

La opción -snapshot especifica que todas las modificaciones realizadas serán escritas en un archivo temporal del disco en lugar de en el propio disco. Esta opción ayuda a prevenir la pérdida de datos en situaciones en las que la emulación se realiza en el mismo disco donde se ubica el sistema anfitrión. Si tenemos un cargador de arranque como GRUB instalado en MBR, veremos el arranque del sistema emulado. Una vez que se inicia el sistema lo podemos usar normalmente.

RAM Virtual

La opción -m de QEMU nos permite especificar la cantidad de memoria RAM virtual (en MB) para usar en la emulación (el valor por defecto es 128 MB). Si tenemos mucha memoria RAM física especificaremos más memoria RAM virtual para incrementar las prestaciones de la emulación. Volviendo al ejemplo anterior, si tenemos 512 MB de memoria física y queremos asegurarnos las prestaciones adecuadas para emular un sistema Linux deberemos usar el siguiente comando:

# qemu -snapshot -m 256 -hda /dev/hda

Instalación de Linux

Si queremos instalar una distribución Linux en el entorno emulado necesitamos crear un archivo que QEMU pueda usar como disco duro virtual. Para crear este archivo podemos usar un programa llamado qemu-img, el cual esta disponible con la aplicación QEMU. La sintaxis para usar qemu-img es muy simple, pasando el nombre "disco-duro.img" y el tamaño (en MB) de la imagen que deseamos crear:

# qemu-img create disco-duro.img 2000M

Una vez que hemos creado el archivo que servirá de disco duro virtual podemos instalar una distribución Linux directamente desde una imagen ISO. Por ejemplo, podemos descargar la distribución Ubuntu e instalarla en el entorno emulado. Cuando hemos acabado de descargar la imagen ISO de Ubuntu, debemos indicar a QEMU el archivo que debe usar como disco duro virtual -hda disco-duro.img, la ruta de la imagen ISO a usarse como CD-ROM y el dispositivo de arranque -boot d. QEMU supone por omisión que el arranque se inicia desde el disco duro (si éste está presente):

# qemu -hda disco-duro.img -cdrom ubuntu.iso -boot d

Pero, ¿qué ocurre si queremos instalar una distribución que tiene más de un CD? En este caso necesitamos pasar la opción -monitor stdio, por lo que cuando QEMU lance la emulación se abrirá un interfaz de comandos interactivo en el terminal:

# qemu -monitor stdio -hda disco-duro.img -cdrom fedora_cd1.iso -boot d

En este interfaz de comandos podemos introducir comandos para gestionar la emulación, los distintos comandos de la interfaz nos permiten reiniciar la emulación, salvar el estado de la emulación para reiniciarla más tarde o cambiar el archivo de un dispositivo particular emulado. Si tenemos imágenes ISO múltiples representando una colección de CDs de instalación de una distribución Linux podemos cambiar al segundo CD del conjunto de instalación con un comando como el siguiente:

# qemu change cdrom fedora_cd2.iso

Cuando hemos acabado el proceso de instalación tenemos una imagen del disco duro que podemos arrancar con QEMU. Para iniciar la emulación escribimos el siguiente comando:

# qemu disco-duro.img

En este caso no usamos ninguna otra opción para el ejecutable porque el parámetro por defecto pasado a QEMU tiene como objeto el disco duro principal "disco-duro.img".

Probar DOS

¿Quién no se acuerda del DOS? Tal vez tenga importantes programas que sólo funcionen en DOS. En lugar de crear una partición de 50 MB para el programa DOS y tener que reiniciar el computador para salir de Linux cada vez que lo necesitemos, podemos usar QEMU con una imagen previamente hecha de FreeDOS (un DOS distribuido con la licencia GPL). Podemos descargar Free-DOS desde su sitio web. Cuando hemos descargado una imagen comprimida de FreeDOS, fdos-100meg.tar.gz, la abrimos con fileroller o con ark y extraemos el archivo fdos_8h1.img en un directorio. Como root ejecutamos este comando:

# qemu -hda fdos_8h1.img -fda /dev/fd0 -boot c

Debemos saber que hemos pasado a QEMU la opción "-fda a". Al igual que las opciones -hda y -cdrom, esta opción se utiliza para leer el contenido del disquete en el entorno emulado. FreeDOS entonces se inicia y está completamente operativo. Podemos, por tanto, crear un directorio para nuestro programa DOS y copiar los archivos que necesitemos en él. En el FreeDOS emulado escribiremos:

C:\> mkdir programa
C:\> copy A:\*.* C:\programa


SEAL

Ahora que tenemos un DOS funcionando lo podemos usar para otras cosas. Por ejemplo podemos usar el programa SEAL. SEAL es un entorno gráfico para DOS (mezcla entre Windows 3.1, Windows 98 y Windows XP) que viene con algunas funciones similares a las proporcionadas por estos sistemas. Los archivos de instalación de SEAL están en el directorio C:\fdos\seal2. Algunas veces el programa no se inicia debido a problemas en la gestión de la memoria, por lo que también debemos usar las utilidades que vienen para la gestión de intercambio:

C:\> cd C:\fdos\seal2
C:\> cwsparam
C:\> cwsdpmi
C:\> cwsdpr0
C:\> install


Una vez que SEAL está instalado, necesitamos reiniciar los programas de intercambio e iniciar el programa del mouse, y entonces iniciar SEAL.

C:\> cwsdpmi
C:\> cwsdpr0
C:\> cd C:\seal2
C:\> drvmouse
C:\> seal


Conclusión

QEMU es una aplicación de emulación muy potente. Al igual que otros emuladores, QEMU sufre problemas de rendimiento. Una aplicación no puede correr tan rápido dentro de QEMU como lo haría en el sistema anfitrión. Por otro lado, la velocidad de QEMU es comparable a la de otros emuladores como Bochs.

Podemos usar QEMU para comprobar otros sistemas operativos como NetBSD o BeOS.

Encontraremos un gran archivo de imágenes de sistemas operativos en FreeOSZoo, pudiendo también usar imágenes construidas desde Bochs. Algunos sistemas operativos pueden incluso tener imágenes de QEMU (o Bochs) que podemos descargar.

Enlaces

* Página Web de QEMU: http://fabrice.bellard.free.fr/qemu
* Página Web de QEMU para Windows: http://free.oszoo.org/ftp/qemu/win32/release/
* Página Web de Bochs: http://bochs.sourceforge.net
* Página Web de VMware: http://www.vmware.com
* Página Web de KNOPPIX: http://www.knoppix.net
* Página Web de Ubuntu: http://www.ubuntulinux.org
* Página Web de FreeDOS: http://www.freedos.org
* Imagen Bochs FreeDOS de 100 MB: http://prdownloads.sourceforge.net/bochs/fdos-100meg.tar.gz?download
* Página Web de SEAL: http://sealsystem.sourceforge.net
* Página Web de FreeOSZoo: http://www.freeoszoo.org
* imágenes Bochs: http://sourceforge.net/project/showfiles.php?group_id=12580&package_id=27799

Copyleft © Alex Sandoval M.

Se garantiza el permiso para copiar, distribuir y modificar este documento según los términos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes, sin textos de cubierta delantera y sin textos de cubierta trasera.