systemadmin.es > Utilidades > Uso de netcat: Herramientas UNIX (III)

Uso de netcat: Herramientas UNIX (III)

Para el pruebas de configuraciones del firewall suele ser útil poder levantar el netcat en un puerto determinado o conectar a el en modo cliente. Vamos a ver como hacerlo tanto mediante TCP como UDP.

modo TCP

  • Para usar netcat en modo cliente lo podemos hacer con la misma sintaxis que telnet:
    # nc <host> <puerto>
    

    Podemos ver un ejemplo haciendo un GET a systemadmin.es a el puerto 80:

    # echo "GET /\n" | nc systemadmin.es 80
    
  • En el caso de modo servidor (escuchar con netcat a un determinado puerto TCP) lo haremos con el parámetro -l (listen)
    # nc -l 8080 
    

    Mediante -v podemos ver en el lado servidor las conexiones:

    # nc -v -l 8080 
    Connection from 127.0.0.1 port 8080 [tcp/webcache] accepted
    

    Resulta especialmente útil para automatizar tareas, por ejemplo podemos usar netcat para mandar un correo:

    nc localhost 25 << EOF
    HELO local.domain.name
    MAIL FROM: ejemplo@fakemail.com
    RCPT TO: info@systemadmin.es
    DATA
    Subject: email entregado con telnet
    esto es el cuerpo del mensaje
    .
    QUIT
    EOF
    

modo UDP

El modo UDP es equivalente al modo TCP añadiendo el flag -u para usar UDP:

  • Vemos el modo cliente UDP:
    $ nc -u ns1.slashdot.org 53 
    
  • Y el modo servidor (escuchar el puerto UDP 53)

    $ nc -l -u 53 
    

    Mediante netcat en cualquier de los dos modos podemos incluso transferir ficheros. Por ejemplo, en el servidor destino ejecutamos lo siguiente:

    # nc -l destino.ejemplo.com 5555 > ejemplo.info
    

    Mientras que en el servidor origen nos pasamos el fichero y se lo mandamos por pipe al servidor destino:

    # cat /etc/hosts | nc destino.ejemplo.com 5555
    

    Deja un comentario:

    XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>