quinta-feira, 17 de janeiro de 2013

Netcat, o canivete suíço de rede

O netcat é uma ferramenta muito interessante que pode fazer coisas malucas com a rede. Melhor do que tentar explicar é mostrar alguns exemplos de uso.

Vamos supor que você precisa criar uma imagem do disco, mas (logicamente!) você não pode gravar essa imagem no mesmo disco. Você pode enviar a imagem diretamente para outro equipamento conforme esta vai sendo gerada. No equipamento destino, execute:

$ netcat -l 1234 | dd of=destino.iso

Na origem, digite:


$ dd if=/dev/sda1 | netcat 172.20.120.4 1234
10+0 registros de entrada
10+0 registros de saída
10240 bytes (10 kB) copiados, 2,582e-05 s, 397 MB/s

$

Explicando: no destino, o netcat abre a porta 1234 e espera por conexões. Tudo o que for recebido por ela será encaminhado para o dd, que gravará o arquivo destino.iso. Na origem, o dd está fazendo uma cópia física do disco /dev/sda1 e jogando a saída para o netcat, que se conecta ao destino 172.20.120.4 na porta 1234.

Outro exemplo:

No destino, execute

$ netcat -l 1234

Na origem, digite

# tail -f /var/log/messages

O arquivo /var/log/messages da origem vai ser mostrado no terminal do destino.