webhouse: julio 2008

NetCat: nc

Contenido:
NetCat
|-- Introducción
|-- Abriendo el apetito
|-- Mensajería instantánea
|-- Redirección de ficheros
|-- Mudándonos de ordenata
|-- Netcat como shell
`-- Conclusiones

Introducción:

Netcat es un pequeño programa muy versátil y útil. NetCat pretende ser la versión para redes del conocido comando cat, por una parte por su orientación al manejo de texto(como tantas herramientas Unix). Esta herramienta me sorprendió al realizar autenticas proezas con una tremenda sencillez.

Dejemos los conceptos -no menos importantes por supuesto- y vamos a la practica.

Abriendo el apetito:

Lo que debemos saber, es que netcat puede trabajar tanto como cliente como servidor, dependiendo de los parámetros que pasemos.

Como cliente:
$nc ip_maquina puerto-por-donde-nos-vamos-a-conectar

Como servidor:
$nc -l -p puerto-por-donde-se-recibe-las-conexiones

Para aclarar dudas abran su terminal e ingresen:
$nc -l -p 9090

El programa se quedara esperando conexiones en el puerto 9090. Ahora abran su navegador preferido e introduscan la siguiente URL:
http://localhost:9090

NetCat mostrará por consola algo parecido a esto:

GET / HTTP/1.1
Host: localhost:9090
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050914 Firefox/1.0.4 (Debian package 1.0.4-2sarge4)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive


Bien, se preguntaran ¿pero que es esto?
Esto es lo que nuestro navegador envia cada vez que nos conectamos a una pagina web. :o

Ahora sin esperar a mas hagamos que nuestro humilde servidor web envie una respuesta.
En la consola que lanzamos el netcat escribir algo como esto y presionar intro.

<h1>Yo amo a GNU/Linux!!!</h1>

Seguidamente pulsar CTRL+C para parar netcat. Ahora observen su navegador ;o

Mensajeria instantanea:

Estan cansados de esos programas de mensajeria con tantos graficos y ventanas y todo eso. Netcat al rescate...

Para iniciar este sencillo sistema, uno de los interlocutores debe lanzar netcat como servidor, y el otro como cliente en un puerto determindado. Algo como esto.
Usuario 1:nc -l -p 4000
Usuario 2:nc IP-Usuario1 4000

Si no tienen internet en casa o no tienen amiguitos en el internet pueden hablar con ustedes mismos sustituyendo IP-Usuario1 por 127.0.0.1 que es la IP del computador de ustedes mismos.

Para que ya buscar... netcat con sus 17Kb es una nena bien concentidora.

Redirección de ficheros:

Quien no a redireccionado algun fichero a otra salida no estandar. Agarrence... que netcat es una bestia.
Servidor: nc -l -p 3000
Cliente: cat /etc/fstab | nc localhost 3000

Como imaginaran localhost es mi misma maquina.

Mudandonos de ordenata:

Hacer una copia de los ficheros que dejamos al mudarnos a otra computadora ya no es un problema. Netcat nos engrie aun mas...

En nuestro nuevo ordenador ejecutamos netcat de esta manera:
$nc -l -p 5000 > partición1.iso


Y en el obsoleto ordenador ejecutamos algo como esto:
$dd if=/dev/hda1 | nc ip-nuevo-ordenador 5000

dd: Convierte y copia un fichero desde la entrada estandar.
if=/dev/hda1: Obvia la entrada estandar y copia desde la ruta dada /dev/hda1(que vendria a ser una particion)

Ahora solo nos queda montar nuestro fichero .iso para tener una copia exacta de la particion de nuestra vieja maquina.

Creamos un directorio.
#mkdir /mnt/el-viejo

Montamos la imagen iso.
#mount -o loop particion.iso /mnt/el-viejo

Y en /mnt/el-viejo tendriamos exactamente la particion de nuestro viejo ordenador.

Netcat como shell:

Para los menos exigentes... Podemos implementar un terminal de control al estilo ssh aunque no muy comodo, pero sirve...
Servidor: nc -l -p 5000 -c /bin/sh
Cliente: nc ip-pobrecillo 5000

La opcion -c le dice a netcat que ejecute el programa cuando recibe una conexion.

Conclusion:

Para ser una herramienta de 17Kb no esta nada mal y para matar el rato mucho menos. Crescamos en sabiduria y que mejor compartiendolo. Agradesco a Er Manitas de OCCAM's Razor por este grandioso articulo y que me tome la libertad de copiarlo y modificar. AND YOU USE SOFTWARE LIBRE?
Posted by Jean at 4:35 p. m. | 0 comments read on

Instalación de impresora HP Deskjet D2460 mediante CUPS en linux

Hace poco adquiri mi flamante impresora hp. Ahora el lio era instalarlo en GNU/linux, Debian para ser especifico. Debido a mi poca esperiencia en instalar perifericos, acudi a googlear, y aqui mi experiencia.

Opte por CUPS y no voy a entrar en detalle del porque:

CUPS: Son las siglas de Common Unix Printing System. Es un sistema de impresión modular para sistemas *Unix con un flexible sistema de filtros y un interfaz web integrado para su administración.

Lo primero que hice es instalar el sistema de impresion y algunos paquetes que son necesarios.
#apt-get install cupsys foomatic-db-hpijs foomatic-filters-ppds hpijs


Averiguamos si CUPS se esta ejecutando
#ps aux | grep cupsd
root 868  0.0  1.1  6488 2808 ?     Ss 10:55 0:01 /usr/sbin/cupsd -F
jean 1762 0.0 0.2 1844 644 pts/2 R+ 18:06 0:00 grep cupsd


Abrimos nuestro navegador web y tecleamos.
http://localhost:631 ó
http://127.0.0.1:631


Si todo va bien les debe pedir autentificarce -Autentificarce con root-.

Aqui hago una pausa para entrar a un punto muy importante:

PPD: Son ficheros que describen las caracteristicas de una impresora postscript y no postscript.

Entramos a la url: http://www.linuxprinting.org a buscar el modelo de nuestra impresora; en mi caso HP Deskjet D2460 y nos descargamos el archivo *.ppd.

Este es el archivo que descargue:
HP-DeskJet_D2400-hpijs.ppd


Antes de poner en su lugar el archivo ppd, recomiendo parar nuestro servidor de impresion:

#/etc/init.d/cupsys stop


Hay otras maneras mas elegantes de parar un servicio, pero se los dejo a ustedes como tarea.

Copiemos el archivo ppd a su lugar:
#cp HP-DeskJet_D2400-hpijs.ppd /usr/share/cups/model/


Arranquemos nuestro servidor de impresión:
#/etc/init.d/cupsys start


Llego la hora de agregar nuestra impresora con ayuda de nuestro navegador: http//localhost:631 >> Verificar la conexion y encendamos nuestra impresora.

  • Nos vamos a administracion: Administration
  • Añadimos impresora: new printer
    Nombre: Name>> Lo que ustedes quieran como nombre para su printer.
    Lugar: Location>> localhost o lo que ustedes quieran.
    Descripcion: Description>> lo que les apetesca...
  • El puerto que utilizaremos: Device>> #1 USB D2460 en mi caso.
  • El controlador que usaremos: Controler>> HP en mi caso.
  • Escojemos el modelo: Model>> Aqui les debe aparecer el archivo ppd
    que instalamos.

Si todo salio de maravilla la pagina de prueba ó test page saldra por la bandeja de impresion(Agreguen papel ;)).

Para los no afortunados: En algunos casos no sale la test page por falta de algunos paquetes, les recomiendo que instalen todo lo relacionado con cups: un apt-cache search cups les puede ayudar. Antes de eso tienen que parar el servicio de impresion y si aun no les funka busquen información sobre su impresora en el rey google/linux.
   
(__)
(oo)
/------\/ -you uses GNU/linux?
/ | ||
* /\---/\
~~ ~~


Thx.
Posted by Jean at 4:21 p. m. | 0 comments read on

Mi foto
Nombre: Jean
Ubicación: Huancayo, Peru

No vale mas el que sabe mucho, sino el que hace mucho con lo poco que sabe.