Wednesday, July 27, 2011

SSH Tunneling Duplo: parece mágica, mas é apenas uma boa ferramenta!!!


Muitas vezes, pode ocorrer de você ter apenas acesso SSH a um servidor e deseja acessar outro serviço da máquina, sendo que a porta desse serviço está bloqueada no firewall. Para estas situações, o SSH oferece uma funcionalidade que parece mágica: tunneling.

O tunneling consiste em configurar seu cliente SSH para capturar os pacotes de uma determinada porta TCP local e encaminhar para outra porta no servidor remoto, sendo necessário acesso por alguma conta SSH no servidor. O cenário final seria o descrito na figura abaixo.


E qual seria o comando para fazer essa mágica? Simples:

$ ssh -f usuario@remota.com -L 8000:remota.com:80 -N

Com esse comando, será requisitada a senha para 'usuario' em 'remota.com'. Após informada, você poderá acessar o servidor web em 'remota.com' através de http://localhost:8000.

Mas vamos enfeitar uma situação mais complicada. Digamos que no seu escritório/laboratório/etc você tenha uma máquina que chamaremos de DMZ, com IP válido e acessível pela Internet, mas também com acesso aos endereços da rede local. E você de casa, deseja acessar um servidor web que está na sua estação de trabalho no laboratório, que só tem um IP local. Claro que você poderia brincar com o iptables, mas o SSH também pode oferecer uma solução rápida. Considere o esquema abaixo.


Chamo esse esquema de SSH Tunneling Duplo. O comando para este cenário seria:

$ ssh -t -L 8000:localhost:8000 usuario@dmz.com 'ssh -L 8000:workstation:80 usuario@workstation'

Detalhe: agora duas senhas serão pedidas. A primeira para 'usuario' em 'dmz.com' e a outra para 'usuario' em 'workstation'. Depois disso, http://localhost:8000 vai te dar acesso ao servidor web em 'workstation'. O SSH faz coisa, cada dia descobrindo mais. Até a próxima....




Thursday, April 01, 2010

Instalar Latex no Ubuntu para artigos no modelo da SBC

recentemente fiz uma nova instalação do Ubuntu e perdi toda minha
configuração do latex. artigos que antes compilação, passaram a
reclamar da falta de alguns .sty. sei que no ubuntu a parte mais chata
não é instalar software, mas sim descobrir qual pacote em o que você
precisa. a seguinte série de comandos permite compilar o modelo básico
que é usado para artigos das conferências organizadas pela SBC
(sociedade brasileira de computação).

sudo aptitude install tetex-base
sudo aptitude install tetex-bin
sudo aptitude install tetex-extra
sudo aptitude install bibtex
sudo aptitude install abntex
sudo aptitude install abntex

o último pacote é interessante porque evita várias erros do tipo:

! LaTeX Error: File `algorithmic.sty' not found.

existem vários outros, mas os acima foram suficientes.

Friday, March 12, 2010

utilizando sockets em shell script para criar um sistema de monitoramento rústico

como membro do SETI@home , sempre que possível adiciono uma máquina sob meu controle para contribuir na busca por vida extra-terrestre. o que me interessa em si não é a descoberta de E.T's, mas sim a infraestrutura computacional criada para permitir esse tipo de colaboração. no portal do SETI há também uma área que apresenta informações sobre o estado da suas máquinas. apesar de servir muito bem ao projeto, pensei em desenvolver um sistema similar que fornecesse algumas informações simples sobre alguns servidores que tenho contato. para minha dissertação de mestrado irei fazer algo bem mais avançando, envolvendo serviços web e etc. mas no caso mais simples, pensei em utilizar shell script, algo que está disponível em todas as máquinas Linux.

o primeiro passo foi definir que informações eu queria acessar. considerei que a saída dos comandos uptime, hostname e sensors seriam bastante. o uptime joga o tempo que o servidor está ligado e sua carga média nos últimos 1, 5 e 15 minutos. mais sobre a carga você encontra aqui. o hostname faz o óbvio. já o sensors joga dados como temperatura na tela. para instalação das ferramentas necessárias, dêem uma olhada aqui (para Ubuntu).

agora como trabalhar com sockets e shell script. no site da O'Reilly tem uma ótima explicação sobre uma ferramenta genial chamada netpipes. com ela, é possível direcionar a entrada e saída de scripts para conexões TCP. basta fazer o script como se ele fosse executar localmente. não cheguei a fazer nenhum padrão de comunicação mais complexo, mas as aplicações são inúmeras.

o script final ficou assim:

#!/bin/bash
HOSTNAME=`/bin/hostname`;
UPTIME=`/usr/bin/uptime`;
SENSORS=`/usr/bin/sensors | grep Core `;

echo "***************************************************************************************************************";
echo "Printing host information state.";
echo "Hostname: $HOSTNAME";
echo "Uptime: $UPTIME";
echo "Temperature:"
echo $SENSORS;
echo "***************************************************************************************************************";
simples, não? salvei em um arquivo com o nome hostInformationState.sh . agora qual seria o comando para torná-lo um servidor em execução? mais simples ainda:

faucet 30000 --out ./hostInformationState.sh
pronto. e qual seria o comando para recuperar tais informações? o servidor está escutando na porta 30000, então um telnet bastaria. mas caso deseje algo mais limpo, o cliente do netpipes também permite:

hose SERVIDOR 30000 --netslave

com o serviço executando em várias máquinas, já é fácil construir um script que colete toda a informação de várias máquinas. e se aprofundando nos links acima, dá para construir coisa bem complexa apenas com shell script. o quanto isso é recomendável fica a cargo do leitor descobrir.


Saturday, February 06, 2010

É uma vergonha ou não é?


Cada absurdo observado nas ruas de Fortaleza....

Tuesday, September 08, 2009

Você já ouviu falar de gambiarra?

O pessoal que instalou as câmeras aqui no prédio já ouviu sim e pratica
muito bem.

Monday, August 31, 2009

O que esperar da Marvel nas mãos da Disney?

pois é senhores, o que a sony pensou em fazer há alguns anos, a disney
conseguiu. a marvel agora faz parte do conglomerado do tio patinhas.
mas para os apreciadores dos personagens que são fantásticos sem
deixar a humanidade de lado, o que isso significa?

no quesito filmes, as mudanças serão grandes, mas não agora. os filmes
de maior sucesso, como os do homem-aranha e x-men, estão licenciados
para outros estúdios. isso não é para sempre, parece-me que os
contratos duram apenas alguns anos, sendo que basta que algum desses
estúdios passe um certo período sem aproveitar os personagens para que
o direito de produção volte para a marvel, agora disney. por esse
caminho o quarteto fantástico vai voltar logo. e o homem de ferro e o
último hulk, além dos futuros thor e capitão américa, são projetos da
marvel, com apenas alguns acordos de distribuição. mas será que a
empresa do mickey fará pressão por títulos mais leves? acredito que
não. lembrem-se que tarantino fez seu pulp fiction pela produtora
miramax que pertencia ou pertence a disney. o que me vem a cabeça
quando temos disney e cinema é a exigência de um alto padrão de
qualidade e lucratividade, independente da abordagem. com certeza os
filmes serão bem melhores do que seriam caso estivessem nas mãos de
uma fox, por exemplo.

no quesito quadrinhos, acho que vai ficar na mesma, talvez um pouco
menos de pressão por um balanço positivo. como não são a principal
fonte de renda, talvez agora a marvel como editora possa diminuir e
fazer menos títulos, inclusive menos caça-níquéis. não espero
revolução, mas acho que vai melhorar um pouco sim.

no quesito outras mídias, como parques ou internet, com certeza a
máquina de marketing da disney vai saber lucrar muito mais do que a
marvel. isso vai diminuir ainda mais a pressão citada no quesito
quadrinhos. wolverine vai ser uma marca tão bem explorada como o
mickey mouse.

é uma avaliação otimista, mas acho que essa fusão vai ser muito boa
para os personagens. esperar para ver.....

Monday, August 24, 2009

Uma Réplica a crítica do jornal O Povo sobre o Chuck Berry

Vejam o original em: http://www.opovo.com.br/opovo/vidaearte/903862.html

é triste, mas tenho que discordar. pelo que apresentou em cerca de 45
minutos de show, chuck berry deveria estar em casa, descansando. Na
primeira tentativa de tocar uma música a palheta caiu, foi irônico ver
seu filho correndo para socorrer o pai, como se a palheta fosse uma
bengala. depois, um leve engasgue, saída do palco sem explicações.
fosse em outros tempos, diria que a saída foi mote para consumo de
cocaína, mas nessa idade, duvido que chuck faça algo do tipo. foi
velhice mesmo. em menos de meia-hora, ele pergunta ao público qual a
música que ele deve tocar. algum sábio de plantão pede My Ding-a-Ling.
Chuck Berry "toca". Na segunda pergunta a platéia, vem logo o pedido
da clássica Johnny B. Goode. pronto, neste momento o velho chuck
descobriu que ninguém ali conhecia seu repertório de verdade, afinal
na segunda já pediam seu maior clássico. poderia tocar e preferia e ir
embora, dormir descansado. e foi o que fez. valeu? sim, afinal vimos o
cara. mas talvez seja melhor ele descansar e evitar essas cenas. um
paralelo: pareceu o domingo do Luca Badoer na ferrari, poderia ter
evitado essa.