quarta-feira, 28 de março de 2007

Acesso com VNC via SSH

Acesso com VNC via SSH

(Conexão Segura e Criptografada)

Uma conexão via VNC normalmente não é segura, primeiramente devido ao próprio tipo de conexão que não é criptografado, possibilitando a obteção da senha com um simples sniffer, segundo porque a maquina que ira receber a conexão fica exposta, ainda mais se for na internet.

Bom diante do fato, primeiro que é necessário a conexão, segundo não se quer investir mais na segurança, crie o processo abaixo, para que exista a conexão, porém criptografado, o qual garante que os dados trafegados não serão violados.


Pré Requisitos:

  • Servidor dentro da rede de ssh, para prover apenas a conexão, no momento pré suponho que exista isso
  • Software VNC instalado em ambas as máquinas que estarão envolvidas, não entrarei no mérito de como obter e configurar, o google resolve isto !
  • Software cliente de ssh Putty instalado na máquina cliente de VNC, para baixar Putty


Procedimento:

Baixar o software putty e colocar no lugar que achar melhor em seu sistema, apenas crie um link p/ o acesso ao programa, após feito isto execute-o, irá aparecer a tela da ilustração 1.

Ilustração 1 - Endereçamento de conexão ssh

Como mostra a Ilustração 1, coloque o endereço do servidor de ssh, pode ser IP ou um nome de servidor de domínio no campo “Host Nome (or IP address), após isto atribua um nome a sessão no campo “Saved Session”, isto permitirá salvar toda a configuração.

Após isto selecione o item em “Tunnels” em “Category” irá aparecer a tela da ilustração 2.

Ilustração 2 - Configuração de tunel

Iremos preencher os seguintes campos, “Source port” com “5800” e “Destination” com o endereço da maquina que tem o servidor de VNC ou a que será controlada pelo VNC, este endereço terá que conter a porta de conexão, exemplo 192.168.1.33:5800, após iremos clicar no botão “Add”.

Feito isto iremos cadastrar a segunda porta do VNC a “5900” em “Source port” e o endereço da maquina servidora de VNC em “Destination”, exemplo 192.168.1.33:5900, e clicar no botão “Add”

As Ilustrações 3, 4 e 5 exemplificam este processo.

Ilustração 3 - Cadastro da primeira porta e destino do servidor de VNC


Ilustração 4 - Cadastro da segunda porta e destino do servidor de VNC


Ilustração 5 - Cadastro das portas e destino do servidor de VNC

Após isto selecionamos o item “Session” em “Category” e salvamos as configurações clicando no botão “Save” como a ilustração 6.


Ilustração 6 - Salvando as configurações

Após isto, clicar no botão “Open” e efetuar a conexão ssh, irá pedir um usuário e senha que já estarão previamente cadastrada no servidor de ssh, após efetuar a conexão minimizar a janela e iniciar o cliente VNC, no endereço do servidor de VNC coloque 127.0.0.1, isto fará com que o putty capture as portas 5800 e 5900 chamdas no loopback local e redireione para a maquina cadastrado no tunelamento.


This all Folks !

terça-feira, 27 de março de 2007

Shell Script que verifica se já esta rodando ou não

#!/bin/bash
# Data: 27/03/2007
# Version 1.0
#
# O programa foi feito para pegar uma lista de equipamentos "ARQ_TERMINAL" e
# testa-lo seguidamente, este programa é executado no cron de 15 em 15 minutos
# e pode acontecer de travar em algum teste, como ele roda de tempos em tempos
# foi criado uma rotina que verifica se ele já esta funcionando e toma a decisão
# ou não de matar o anterior e reiniciar o processo do ponto onde parou, também
# tem a capacidade de verificar se ele morreu e reiniciar do ponto onde parou
# Uma outra carcteristica é que ele altera um arquivo de configuração de um
# outro script p/ que le faça o teste do equipamento coreto

PID=$$
DIR_HOME="/home/programa"
DIR_CONF="${DIR_HOME}/programa/conf"
DIR_TMP="${DIR_HOME}/tmp"
ARQ_TERMINAL="${DIR_CONF}/terminal.txt"
NULL="/dev/null"

# Verifica se script esta rodando
if [ -f ${DIR_TMP}/.programa_terminais.pid ]; then
PID=`head -n 1 ${DIR_TMP}/.programa_terminais.pid`
TERMINAL_ATUAL=`head -n 1 ${DIR_TMP}/.programa_terminais.state`
# Verifica se script esta na memoria
ps -ax | grep ${PID} 2>&1 > ${NULL}
if [ $? -eq 0 ]; then
# Verifica se ja foi testado a existencia deste script em memoria
if [ `tail -n 1 ${DIR_TMP}/.programa_terminais.pid` -eq 1 ]; then
# Marca que foi executado o teste
echo -e "${PID}\n2" > ${DIR_TMP}/.programa_terminais.pid
exit 1
else
# Script ja foi testado anteriormente, possivelmente travou, retira da memoria
kill -9 ${PID} 2>&1> ${NULL}
fi
fi
fi
# Cria arquivo com o PID de execucao
echo -e "${PID}\n1" > ${DIR_TMP}/.programa_terminais.pid
# Inicia coleta de "terminais"
for TERMINAL in `cat ${ARQ_TERMINAL}`; do
# Verifica se e inicio de coleta
if [ "${TERMINAL_ATUAL}" = "" ]; then
# Altera arquivo de configuracao p/ e executa
sed "s/#MARK#/${TERMINAL}/" ${DIR_CONF}/Teste.template > ${DIR_CONF}/Teste.conf
${DIR_HOME}/programa.sh -n -t ${DIR_CONF}/Teste.conf
# Grava o terminal ja testado
echo -e "${TERMINAL}" > ${DIR_TMP}/.programa_terminais.state
else
# Teste p/ procura de terminal ainda nao testado
if [ "${TERMINAL_ATUAL}" = "${TERMINAL}" ]; then
unset TERMINAL_ATUAL
fi
fi
done
rm -f ${DIR_TMP}/.programa_terminais.pid
rm -f ${DIR_TMP}/.programa_terminais.state

sexta-feira, 16 de março de 2007

Continuo ainda nefasto ...

Musica descente tem que ser comentado ...


quarta-feira, 14 de março de 2007

terça-feira, 13 de março de 2007

Passatempo ....


Sempre tem a primeira vez ....

Relutei, relutei ...e acabei montando um blog, não defini ainda o que irei postar, contudo tenho algumas ideias, talvez coloque aqui minhas experiências profissionais, de vez de montar uma página irei postando aqui o que eu conheço, o que aprendi, minhas dificuldades e as soluções encontradas ... bom como disse ainda não sei , mas seria um bom começo ... e talvez outras coisas ... ainda estou bem indeciso ... vamos ver o que rola !