En una entrada anterior, expliqué como clonar discos duros en linux.

Este sistema era muy bueno cuando tienes n maquinas a clonar y estan aun sin montar (por lo que tienes los discos en la mano) o bien los discos se pueden intercambiar fácilmente pero… que pasa si tienes que clonar una oficina, un ciber o bien el aula de un colegio con todas las máquinas puestas sobre las mesas? Te vuelves loco.

Por ello, voy a explicar como clonar varios equipos por medio de la red. Necesitamos utilizar el comando nc (netcat).

¿Que es netcat?
NetCat es una de las herramientas más potentes y flexibles que existen en el campo de la programación, depuración, análisis y manipulación de redes y servicios TCP/IP. Se conoce como «la navaja multiusos de los hackers» es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Microsoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos).

Sus capacidades hacen que sea a menudo usada como una herramienta para abrir puertas traseras una vez invadido un sistema y obtenido privilegios de administrador del equipo.

Una vez que sabemos lo que podemos hacer con netcat, ahora vamos a plantear el proceso. Necesitamos una máquina que haga de servidor (el origen, el que va a tener el disco duro con la información que queremos clonar) y otra máquina que haga de cliente (el destino, el que va a recibir la imagen). La máquina cliente debemos arrancarla con un live cd, la máquina servidor la arrancamos normalmente desde el disco duro.

Arrancamos la máquina cliente con el live cd y la ponemos a la escuha con la opcion l de netcat

nc -l 9000 | dd of=/dev/sda

En este caso he utilizado el puerto 9000, pero podemos utilizar cualquiera a nuestra elección. El destino de la copia sera el dispositivo sda, pero podría haber sido cualquier otro.

Ahora nos vamos a la máquina servidor y volcamos todo el contenido del dispositivo al puerto 9000. Hay que indicar que debemos especificar igualmente la ip de la máquina cliente.

dd if=/dev/sda | nc ipmáquinacliente 9000

En cuestion de horas (dependiendo de la velocidad de la red y los discos) tendremos una imagen perfecta bit a bit del disco sin necesidad de mover un solo cable ni abrir ninguna máquina.

Categories:

6 Responses

  1. Hola.

    Me gusta mucho tu blog, porque sacas casos reales con soluciones reales. En cuanto a clonar los equipos en la red me parece muy interesante, pero… hay alguna forma de saber que porcentaje llevas copiado?

    Gracias

    • Hola Victor y gracias por tu comentario.

      Podemos por medio de un pipe utilizar mbuffer. No nos va a señalar el porcentaje del trabajo realizado pero si nos va a decir cuanto lleva copiado.

      para utilizarlo simplemente teclea en la máquina servidor:

      dd if=/dev/sda | mbuffer | nc ipmáquinacliente 9000

      Si no tienes instalado mbuffer, puedes hacerlo con aptitude o con el gestor de paquetes preferido de tu distribución:

      apt-get install mbuffer

      Espero que pueda servirte.

  2. Muy bien todo, muy ilustrativo…
    Quiero aportar mi granito de arena al blog, pero esta vez lo que haremos será virtualizar un servidor linux existente.

    Instalas en virtual el linux nuevo con lo minimo, debe ser el mismo kernel que el fisico una vez instalado:
    desde el servidor fisico
    tar czpvf – etc int lost+found misc opt root taq tmp var bin home lib mnt sbin terminal usr | ssh root@Ipdelvirtual «cd / && tar xvfz -»
    Y listo parece una burrada pero son maravillas del linux mientras no toques las carpetas del sistema tipo /bin /proc etc todo solucionado, cuando acabe renicias instalas las tools y a funcionar
    NOTA: cuando pare de copiar (que parará) escribe yes, INTRO y password del sistema remoto.

    De nada FRAN

    • Muy interesante adolfo lo que propones, muy interesante, pero podríamos incluso ahorrarnos instalar el sistema minimo.

      Podemos arrancar el servidor virtual desde un disco de arranque y despues copiar todo el sistema con cp -dpR.

      Una vez copiado, solo nos faltaría instalar el grub. Aun así, me parece una idea muy buena lo que has propuesto.

  3. saludos amigos intente este proceso y me dice connection refused lo probe con 2 switch y las maquina no hacen ping una con otra me pueden ayudar

    • Si no puedes hacer ping, el problema no es de nc.

      Pueden ser muchas cosas, desde un problema físico hasta un problema de mala configuración de la red. Comprueba lo siguiente:

      Tarjetas de red
      Cableado
      Electrónica de red
      Configuración de la red (ip, máscara, etc)
      Firewall si los hubiera
      etc…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload CAPTCHA.