viernes, 9 de abril de 2010

Levantar Utilidades desde la Red

Si trabajas en una oficina como soporte es muy probable que uses un estuche de CDs donde tengas tus discos con herramientas útiles. Pero no es necesario que estes llevando todos esos discos cada vez que los necesites ya que existe la posibilidad de guardar todas esas herramientas en un servidor FTP y levantarlas desde la red. Para hacer esto:

Primero configura el servidor TFTP en el mismo servidor donde vas a guardar los archivos. Por supuesto, es mejor usar Linux para esto. Una vez que este configurado necesitaras algo para que los clientes se puedan conectar, para eso debes descargar la ultima versión de SYSLINUX desde la pagina de kernel.org y copiar los siguientes archivos en la raíz de tu TFTP:

core\pxelinux.0

Asegúrate que realmente estas usando esa versión de pxelinux.0 ya que algunas distros de Linux han modificado ese archivo (mas detalles aquí).

com32\menu\vesamenu.c32

Una vez que esos archivos estén en su lugar, se necesita hacer una configuración del lado del servidor, configurar dos opciones de DHCP:

1. next-server = DIRECCION-IP-O-FQDN-DEL-SERVIDOR-TFTP
2. filename = /pxelinux.0

Nota: Si tu red usa MS DHCP entonces están configuradas en Options 66 & 67.

La primera de esas opciones le dice al cliente donde encontrar el servidor TFTP y la segunda le dice al cliente que archivo buscar. Pxelinux.0 se carga en la memoria y luego inicia. Cuando inicia es donde debes decir que es lo que hará y para eso requiere un archivo plano llamado default (sin extensión) que este localizado dentro del directorio llamado pxelinux.cfg, que se encuentra en la raíz del TFTP. La estructura del directorio debería lucir así:

/                      #  Raiz TFTP
/pxelinux.0
/vesamenu.c32
/pxelinux.cfg/
/pxelinux.cfg/default

El archivo default contiene el menú de arranque y puede llamar otros archivos. A continuación se muestra un ejemplo de como podría tener tus menúes en el archivo default:

DEFAULT vesamenu.c32
PROMPT 0
MENU INCLUDE pxelinux.cfg/pxe.conf
NOESCAPE 1

TIMEOUT 300
ONTIMEOUT localboot
MENU AUTOBOOT El sistema se iniciara normalmente en # segundos

LABEL localboot
MENU LABEL ^1. Iniciar desde el Disco Duro
LOCALBOOT 0

LABEL memtest
MENU LABEL ^2. Ejecutar Memtest86+ v4
kernel memtest/memtest

LABEL ntpasswd
MENU LABEL ^3. Eliminar una Contraseña de Windows
TEXT HELP
Runs Offline NT Password & Registry Editor
ENDTEXT
kernel ntpasswd/vmlinuz
append rw vga=1 initrd=ntpasswd/initrd.cgz,ntpasswd/scsi.cgz

LABEL dban
MENU LABEL ^4. Lanzar Darik's Boot y Nuke
TEXT HELP
Usa esto para eliminar TODA informacion de tu PC
ENDTEXT
KERNEL memdisk/memdisk
APPEND iso initrd=memdisk/iso/dban-beta.2006042900_i386.iso

Guarda el archivo y ahora crea el archivo pxelinux.cfg/pxe.conf e ingresa lo siguiente:

MENU TITLE Escoge entre las siguientes Opciones:
menu color border 30;44 #ffffffff #00000000 std

NOESCAPE 1
ALLOWOPTIONS 0
PROMPT 0
menu width 80
menu rows 14
MENU TABMSGROW 24
MENU MARGIN 14
MENU VSHIFT 6

Esta es toda la información que nunca cambiara y solo toma mucho espacio en default por eso se mueve a un archivo separado.

Configurar las Utilidades que se Usaran

Como puedes haber visto en el menú se esta configurando Memtest86+ para probar que la memoria RAM este correcta, Editor de Contraseñas y Registro de Windows y Darik's Boot y Nuke para limpiar toda información del disco duro. La herramienta para editar particiones es Gnome Partition Editor (GParted). Para poder hacer que Gparted este disponible vía PXE esta documentado en su sitio web pero requiere un poco mas de trabajo que las otras tres herramientas. Para configurar Memtest86+ hay que descargar el ultimo binario pre-compilado desde su sitio web y copiar el contenido del archivo en un directorio llamado memtest en la raiz del TFTP. Renombrar el binario por memtest, de otro modo fallaría al iniciar. Ntpasswd es igual de simple, simplemente descarga la imagen de CD desde su sitio web, monta el .iso y copia los siguientes archivos al directorio ntpasswd en la raiz de TFTP:
  • vmlinuz
  • initrd.cgz
  • scsi.cgz
Para bootear DBAN se necesita hacer un chainloading a su ISO usando memdisk, el cual es provisto por SYSLINUX en el directorio con el mismo nombre. Copialo a un directorio llamado memdisk en la raiz del servidor TFTP, crea un directorio dentro de memdisk llamado iso y guarda tu imagen de DBAN ahi. La estructura de dicho directorio debería ser algo así:

/                    # (Raíz TFTP)
/pxelinux.0
/vesamenu.c32
/pxelinux.cfg/
/pxelinux.cfg/default
/pxelinux.cfg/pxe.conf
/memtest/memtest
/ntpasswd/vmlinuz
/ntpasswd/initrd.cgz
/ntpasswd/scsi.cgz
/memdisk/memdisk
/memdisk/iso/dban-beta.2006042900_i386.iso

Eso es todo, ya todo esta configurado. Coge una computadora o maquina virtual y reinicia, tienen que estar en red. Por lo general presionas F12 para obtener el menú el cual estará listado como opción en tu adaptador de red( Si no lo esta, revisa la configuración de BIOS para habilitar el PXE). Selecciona tu NIC y rápidamente debería salir un menú azul mostrando las opciones que acabas de configurar. Los números en el menu son teclas de acceso. Si no selecionas nada en 30 segundos tu PC iniciara desde el disco duro local.

Nota: hay otras herramientas para levantar desde la red y ademas existe la posibilidad de configurar el menu para que solo se acceda con contraseña.