14 de mar de 2010

Acesso remoto Linux

Neste artigo vou descrever como acessar remotamente um servidor Linux, tanto com shell em modo texto, quanto em gráfico, e também transferindo arquivos entre as máquinas.

Para tanto, será necessário no mínimo os seguintes equipamentos:

  • Duas máquina Windows (XP ou superior)
  • Uma máquina Linux (Ubuntu ou Debian)

Deve ser disposta uma rede entre as máquinas de tal forma que:

  • Do Linux é possível “ver” ambas máquinas Windows
  • De qualquer Windows seja possível “ver” o Linux
  • De qualquer Windows não seja possível “ver” o outro Windows.

A melhor forma para montar está rede é colocar duas redes distintas entre os Windows, cada um com um IP, e colocar o Linux com 2 IPs, um de cada rede, como no exemplo:

  • Linux – IP rede 1 = 192.168.1.1 com máscara “/24”(255.255.255.0)
  • Linux – IP rede 2 = 192.168.2.1/24
  • Windows 1 – IP = 192.168.1.2/24
  • Windows 2 – IP = 192.168.2.2/24

No Linux pode ser configurado temporariamente a mesma interface com dois IPs utilizando o comando iptables:

iptables eth0:1 192.168.1.1

iptables eth0:2 192.168.2.1

Deve ser instalado no Linux o serviço SSH, e em um dos Windows os aplicativos Putty, Xming e FileZilla, descritos mais adiante.

Acessando um servidor remoto por linha de comando

O meio mais comum de acessar um servidor Linux remoto (Ubuntu, Fedora, Debian ou os BDSs) é usando SSH. O protocolo serve basicamente para iniciar remotamente um dispositivo Linux. Entenda que é possível acessar um dispositivo shell remoto, ou um aplicativo X11, ou fazer uma VPN, ou redirecionar uma porta, ou executar um comando, ou copiar um arquivo, ou ou ou... São tantas as possibilidades que vou demonstrar as mais básicas.

Primeiro esteja certo que tem o serviço SSH rodando na máquina remota. Para instalar no Ubuntu, digite:

  $ sudo apt-get install openssh-server

Feito isto, na máquina cliente, instale o cliente ;)

  $ sudo apt-get install openssh-client

Se você usa Windows como cliente, baixe o Putty, tanto faz o instalador completo ou somente o putty.exe.

Ainda para Windows, é interessante baixar os seguintes aplicativos também:

No nosso laboratório virtual, vamos imaginar que temos o servidor Linux com serviço SSH rodando e queremos acessar remotamente com uma estação Windows.

Abra o putty e na tela inicial, coloque o IP ou nome do servidor e clique em Open:

Abrindo uma tela preta, semelhante ao MSDOS, pede o usuário e depois uma senha. A senha não aparece nada. Só digite a senha correta e aperte ENTER.

Neste ponto você tem um shell completo do Linux. Pode virar root, trocar usuários, parar serviços, editar arquivos, verificar interfaces, executar testes e tudo mais que pode ser feito pela interface texto do linux.

Redirecionando uma porta pelo servidor

Mas vamos supor que agora queremos acessar um servidor de TS que está atrás do firewall linux. Como podemos fazer isto?

Veja que a topologia da rede é:

Local

Neste caso a máquina “Meu PC” chega até a máquina “firewall.example.com” mas não até a máquina “Servidor TS”, mas a máquina “firewall.example.com” se comunica com a “Servidor TS”. Então, como fazemos isso?

Primeiro vamos ver se temos as ferramentas necessárias.

Execute o mstsc com a opção /? e verifique se aparece a opção de porta, como abaixo:.

Se existe a opção de porta, então vamos ao putty novamente.

Abra o putty, digite o IP do servidor, e na lista do lado esquerdo, no final, tem “SSH”. Clique sobre ele e abra o item “Tunnels”:

image

Nas configurações de “Tunnels” temos que nos preocupar com 3 coisas:

  1. Qual porta local usar
  2. Como o servidor remoto (Firewall) se comunica com a outra máquina (TS)
  3. Qual a porta remota que o serviço está usando.

Neste caso, imaginamos que a porta local 3333 não está sendo usada.

Também sabemos que o firewall se comunica com o servidor TS pelo seu nome, ServidorTS

E sabemos que a porta do Terminal Services remota está rodando no padrão, TCP 3389.

Então a configuração fica:

 

image

 

  • Source Port: 3333
  • Destination: ServidorTS:3389

Não esqueça do “dois pontos” (:) entre o nome da máquina e a porta. Não esqueça que não pode ter espaços. E não esqueça de clicar em “Add” antes de clicar em “Open”.

Clique sobre o botão “Add”, adicionando as configurações a conexão e no botão “Open”. Vai aparecer a mesma tela preta, solicitando usuário e senha.

Escreva seu usuário e senha nesta tela preta. Deixe como está.

Agora é hora de rodar o MSTSC na sua máquina Windows, a mesma que você está usando o putty.

Clique em “Iniciar” e em “Executar” escreva:

  mstsc /v:localhost:3333

Clique em “OK”. Em alguns segundos, abre a janela:

image Agora é só logar na máquina remota e pronto. Mas o que foi feito ?

Bem, é mais ou menos assim:

Nas configurações do putty, na parte do Tunnel, você solicitou que uma porta local da sua máquina fosse aberta e a comunicação fosse enviada pelo SSH até o servidor. Então neste servidor seria feito a comunicação com a máquina ServidorTS, na porta 3389. Entendeu? É um túnel entre uma porta na sua máquina e uma porta em um servidor remoto, que é transmitida dentro do SSH.

Agora você ja pode imaginar o que dá pra fazer. Você pode redirecionar uma porta local sua para um proxy rodando dentro do servidor. Dá para abrir uma porta do servidor e redirecionar para uma máquina e dentro da sua rede local. Pode ser aberta várias portas para diversos fins simultâneos. É só “brincar” com as opções Tunnel do Putty.

Executando aplicativos gráficos em máquinas Linux remotas

Um outro recurso muito bom é abrir aplicativos gráficos remotos diretamente na sua máquina, sem que para isto seja necessário iniciar o Xorg na máquina remota.

Vamos supor que você quer executar o gnome-nettool na máquina firewall. Para isto, instale o Xming que você baixou anteriormente. Execute o aplicativo Xming que agora está no seu menu Iniciar.

Aparecerá um X preto próximo ao relógio do Windows e mais nada.

image 

E agora abra o putty, adicione o endereço do servidor firewall, navegue no menu esquerdo até SSH, abra as opções de X11, marque a opção “Enable X11 forwarding” e clique em “Open”:

imageNa tela preta do shell do firewall digite novamente seu usuário e senha.

Ao entrar, digite o comando:

   $ gnome-nettool

E aguarde alguns segundos. Logo a tela do Gnome-NetTool irá abrir no seu desktop

image

E pode se fazer uma cadeia disto. Por exemplo, você pode conectar em um servidor redirecionando o X11 para sua máquina, mas deste servidor você abre outra conexão com outra máquina, novamente redirecionando o X11 e ai sim abrir um aplicativo gráfico. Será neste caso feito um “encadeamento” de sessões X11, onde o aplicativo é redirecionado para o servidor anterior e este redirecionado para sua máquina local. Se parecer lento, você pode ativar a compactação do SSH, sob o menu do putty em SSH e marcando a opção “Enable Compression”. Esta compressão não é boa para compactar um stream de mp3, mas para compactar uma transmissão Terminal Services, X11 ou uma http (proxy por exemplo), é muito boa mesmo.

Mas note que o aplicativo continua rodando na máquina remota. Somente a tela dele que está na sua máquina.

Transferindo arquivos por SSH

Existe uma outra brincadeira para fazer com o SSH. É usar o mesmo para servir arquivos como um FTP, mas com toda a segurança que existe no protocolo SSL e nas trocas de chaves pública/privada que é implementada.

Para isso, instale e execute o FileZilla baixado anteriormente.

Na tela inicial, coloque o endereço do destino com sftp:// na frente, como no exemplo abaixo:

>>>>>> FALHA NA GERAÇÃO DA IMAGEM <<<<<<<

E desta forma pode ser transferido arquivos de e para o servidor que está trabalhando.

13 de mar de 2010

Gerencia de redes com The Dude®

A alguns anos prestei consultoria para um ISP, e fizemos a aquisição de alguns equipamentos da Mikrotik. São sem sombra de dúvidas um dos melhores equipamentos para rede wireless que já conheci.
Na época, o fabricante recomendou a utilização do aplicativo THE DUDE para gerenciar a rede e os aplicativos.
Ok, bem fácil de usar, entreguei para o cliente e continuei meu caminho.
O que não esperava era encontrar com ele de novo.
Estava conversando com a Dr. Madalena sobre programas de gerência completos, e "O CARA" me veio a cabeça novamente. Claro, MIB, SNMP, monitores, indicadores.... Espere, acho que o rapaz dá conta do recado, e é "THE GRÁTIS".
Então vamos ele, só para ver até onde vai.


Primeiro, baixe o programa no site http://www.mikrotik.com/thedude.php. Atualmente está na versão 3.6 ou 4 beta.
Instale o padrão mesmo. Na primeira vez que perguntar, vai perguntar a lingua. Escolha Português brasileiro, ou javanês se você ficar mais confortável.
E o programa já pergunta a rede que deve vasculhar para achar equipamentos.
Clique sobre o botão Discover e vamos para a próxima.

Se clicar sobre o botão Discover, verá que o programa aparentemente não vai fazer nada por uns segundos. Na verdade está vasculhando suas redes a procura de equipamentos gerenciáveis ou não.
E não esqueça que equipamento gerenciável está sob uma ISO que especifica a utilização de SNMP para permitir consultas aos nós MIB da máquinas. Mas o que são MIBs? MIB é uma representação de uma configuração, estado ou outra coisa qualquer. Cada fornecedor de programa ou equipamento desenvolve seus nós MIBs chamados SMI. Existe a lista pública de SMI no site da IAMA. Os SMI privados devem ser adquiridos ou baixados junto ao desenvolvedor/distribuidor ou fabricante do produto que será gerenciado. Um exemplo é a base de informação de gerenciamento do Windows nesta página. Entre no site e baixe também.
Nas próximas páginas, vamos instalar o serviço de SNMP no Windows e ver o que podemos ler e escrever nas configurações do Windows utilizando o THE DUDE.

Agora que temos o The Dude, temos a lista de MIB do Windows, vamos instalar o serviço SNMP para rodar no Windows. Siga os passos para instalar o serviço SNMP do Windows. O XP, o Windows 7 e o Vista é muito semelhante. Somente os nomes dos ítens são diferentes.

Volte para o The Dude que deixamos vasculhando a rede anteriormente.
Note que aparece itens na na janela:
Se aparecer algum item como acima, isto é porque existem alguns equipamentos que tem o SNMP rodando, e o The Dude conseguiu coletar os dados.
No Linux, é a mesma coisa, só que para fazer login, troque o localhost pelo IP 127.0.0.1



Após a descoberta, passe o mouse sobre um dos itens, e verá os indicadores de disponibilidade.
Mas o mais interessante do The Dude é o painel esquerdo. Principalmente a parte de notificação.
Não esqueça de adicionar seu e-mail nas configurações, incluindo o servidor smtp.
Pronto ! Está 100% funcionando e notificando por e-mail sobre problemas.

Simples e funcional. Pode até acessar remoto. Para isso configure uma boa senha de admin e coloque ssl ativado.

Simples assim. Tudo está configurado e funcionando.

Se ainda tiver dúvidas, mande um e-mail.