Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile
Visite também: Ipok ·  Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Lan University

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Acesso remoto a máquinas Linux, via Internet

Colaboração: Cesar Brod e Joice Käfer

Data de Publicação: 04 de Julho de 2009

Este não é um assunto tão novo assim, mas ao procurar dicas de como acessar, de forma segura e fácil, o desktop de um PC remoto a uma máquina local, vimos que são muitos pequenos fatores a serem considerados e que não havia um "passo-a-passo" de como fazer isto, testando todos os componentes da conexão. Por isso, acreditamos existir espaço para este pequeno tutorial.

Introdução

Aqui na BrodTec, em vários momentos, necessitamos acessar remotamente máquinas de clientes ou nossas próprias máquinas da empresa a partir de nossos notebooks, seja para alguma atividade de suporte, teste de alguma ferramenta ou mesmo para o acesso rápido a uma aplicação que não temos instalada localmente. Na maioria das vezes, o simples acesso via ssh é o suficiente, em outras o ideal é ter acesso completo ao desktop da máquina cliente. Este tutorial, baseado na distribuição Linux Mint (o que significa que provavelmente servirá para o Debian e todas as suas variantes, como o Ubuntu), cobre todos os passos necessários para o acesso completo, de forma segura, a uma máquina remota. Como os passos aqui cobertos vão desde testes na própria máquina local, em máquinas da mesma rede local e, enfim, em máquinas conectadas via Internet, este documento deve servir como base e referência tanto para usuários menos experientes quanto aos mais avançados, já que os links aqui apontarão para textos mais complexos e de maior profundidade técnica.

O ambiente de testes

Figura 1: Ambiente de testes

Este é o ambiente que utilizamos para os testes aqui descritos. Na BrodTec, temos os notebooks do Cesar e da Joice, conectados através de um roteador wireless que, por sua vez, está conectado a um cable modem fornecido pela Net, que nos conecta à Internet. Um de nossos clientes, usado como exemplo, está conectado a um modem de rádio fornecido pela empresa ArroioNet. Claro que, independente do provedor de acesso à Internet, tudo o que está descrito aqui deve funcionar. Todas as máquinas obtém seu endereço através de DHCP, ou seja, em nenhum momento temos como ter certeza de qual endereço está sendo utilizado por uma delas.

Testes na máquina local

É comum que, ao diagnosticar um problema, não nos demos conta de todos os fatores que o compõem. Por isso é sempre bom dar uma respirada no óbvio e começar pelo princípio. Antes de nos aventurarmos a conectar com uma máquina distante, temos que ter certeza de que tudo funciona bem localmente. A filosofia Unix (que o Linux adotou plenamente) nos ensina a montar coisas maiores a partir de coisas muito simples. Uma coisa muito fácil é justamente esquecer o que é óbvio, justamente porque ele está ali e sempre funciona. Aqui, apenas iremos assumir que os computadores existem, têm seu sistema operacional operante e que exista uma conexão com a Internet. Algumas outras coisas iremos testar, mesmo parecendo óbvias. Para isto, vamos precisar de um terminal, uma console Linux. Isto você sabe como acessar, certo?

Para começar, digite em seu terminal:

  ping localhost

Como resposta, você deve ter algo parecido com:

  brod@brod-laptop:~$ ping localhost
  PING localhost (127.0.0.1) 56(84) bytes of data.
  64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.038 ms
  64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.040 ms
  64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.042 ms
  64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.041 ms
  64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.041 ms
  ^C
  --- localhost ping statistics ---
  5 packets transmitted, 5 received, 0% packet loss, time 3999ms
  rtt min/avg/max/mdev = 0.038/0.040/0.042/0.005 ms
  brod@brod-laptop:~$

Para interromper o ping pressione simultaneamente as teclas Ctrl e C.

A grosso modo, o ping serve para testar a conexão entre máquinas em rede. O comando ping localhost faz com que verifiquemos que nossa máquina seja capaz de comunicar-se com ela mesma, o que já é um bom caminho andado. Caso você queira aprofundar-se mais sobre o ping e protocolos de rede, recomendamos a leitura do livro Redes sem Fio no Mundo em Desenvolvimento.

Agora, vamos ver se você consegue estabelecer uma conexão segura com a sua própria máquina com o ssh.

  ssh usuario@localhost

Substitua "usuario" pelo seu próprio nome de usuário em seu sistema. Caso sua instalação seja nova, é bem provável que você não tenha um servidor ssh instalado. Use o Gerenciador de Pacotes e instale o pacote openssh-server. Existindo algum outro pacote pendente, o próprio gerenciador irá instalá-lo para você. Caso você não tenha experiência com a instalação de software, um bom guia pode ser encontrado aqui: Como Instalar Tudo em Ubuntu.

Uma vez concluída a instalação, você deve conseguir acessar a sua própria máquina. As cópias de tela abaixo ilustram o nosso exemplo. Troque o nome de usuário "brod" pelo seu próprio nome.

  brod@brod-laptop:~$ ssh brod@localhost
  The authenticity of host 'localhost (127.0.0.1)' can't be established.
  RSA key fingerprint is a5:2b:93:3c:1d:0c:5f:c9:2e:2d:3e:7e:39:19:df:fc.
  Are you sure you want to continue connecting (yes/no)?

Como esta é a primeira vez que estamos conectando, a autenticidade de nosso servidor ainda não foi estabelecida. Como temos certeza de que apenas estamos nos conectando com nossa própria máquina, vamos responder "yes". O sistema solicitará a sua senha de usuário e pronto! Você acaba de estabelecer uma conexão segura e remota com sua própria máquina local! Nada de muito especial, mas um passo importante a ser testado no futuro caso algo não dê certo.

Mas não queremos parar por aí. O que queremos realmente testar é abrir um desktop remoto. Para isto, vamos ver se conseguimos fazê-lo, também, em nossa máquina local. Para isto precisaremos de mais dois pacotes: tightvncserver e xtightvncviewer. Localize-os e instale-os usando seu gerenciador de pacotes. Estes pacotes são implementações de um servidor e cliente, respectivamente, do VNC, Virtual Network Computing. Informações completas sobre isto, com mais links para outras referências, podem ser encontradas neste link.

Uma vez instalados, vamos, novamente, testá-los.

  vncserver :64 -geometry 800x600 -depth 16 -name TESTE

No comando acima, TESTE será o nome de seu servidor, geometry é sua resolução e depth a profundidade de cores. Depois que funcionar, você poderá testar com outros parâmetros. Os comandos vncserver --help e man vncserver darão mais informações sobre estes parâmetros.

Como resultado do comando, você terá o seguinte:

  You will require a password to access your desktops.
  
  Password: ********
  Verify: ********
  Would you like to enter a view-only password (y/n)? y
  Password: ********
  Verify: ********
  
  New 'TEST' desktop is test:64
  
  Starting applications specified in /home/brod/.vnc/xstartup
  Log file is /home/brod/.vnc/rat:64.log
  

A primeira senha solicitada é para o acesso completo a seu desktop. A segunda é para o caso de ser necessária apenas a visualização do terminal remoto.

Agora você já deve conseguir abrir um desktop remoto em sua própria máquina local, mas para isto, deve permitir que aplicações remotas acessem seu próprio desktop, com o seguinte comando:

  brod@brod-laptop:~$ xhost +
  access control disabled, clients can connect from any host

Agora, execute o seguinte:

  brod@brod-laptop:~$ vncviewer -via localhost localhost:64
  brod@localhost's password:  [Nota: esta é a sua senha de usuário]
  Connected to RFB server, using protocol version 3.8
  Enabling TightVNC protocol extensions
  Performing standard VNC authentication
  Password:  [Esta é a senha de visualização completa que você definiu no passo anterior]
  Authentication successful
  Desktop name "brod's TESTE desktop (brod-laptop:64)"
  VNC server default format:
   16 bits per pixel.
   Least significant byte first in each pixel.
   True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0
  Using default colormap which is TrueColor.  Pixel format:
   32 bits per pixel.
   Least significant byte first in each pixel.
   True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
  Using shared memory PutImage
  Tunneling active: preferring tight encoding

Neste momento, você deve ter uma janela com um novo desktop em sua máquina local. Em nossa máquina, ele aparece da seguinte forma:

Clique para ver a imagem ampliada

Testes na rede local

Você tem agora tudo preparado para que seu desktop possa ser acessado de qualquer outra máquina na sua rede. Em nossa rede, temos a máquina do Cesar e da Joice. Para descobrirmos os endereços delas usamos o comando ifconfig.

  brod@brod-laptop:~$ ifconfig
  eth0      Link encap:Ethernet  Endereço de HW 00:13:a9:85:7a:e3
           UP BROADCAST MULTICAST  MTU:1500  Métrica:1
           pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
           Pacotes TX:4 erros:0 descartados:0 excesso:0 portadora:0
           colisões:0 txqueuelen:1000
           RX bytes:0 (0.0 B) TX bytes:1368 (1.3 KB)
  
  lo        Link encap:Loopback Local
           inet end.: 127.0.0.1  Masc:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Métrica:1
           pacotes RX:12505 erros:0 descartados:0 excesso:0 quadro:0
           Pacotes TX:12505 erros:0 descartados:0 excesso:0 portadora:0
           colisões:0 txqueuelen:0
           RX bytes:2031155 (2.0 MB) TX bytes:2031155 (2.0 MB)
  
  wlan0     Link encap:Ethernet  Endereço de HW 00:19:d2:37:8e:2e
           inet end.: 192.168.1.100  Bcast:192.168.1.255  Masc:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
           pacotes RX:22240 erros:0 descartados:0 excesso:0 quadro:0
           Pacotes TX:21538 erros:0 descartados:0 excesso:0 portadora:0
           colisões:0 txqueuelen:1000
           RX bytes:19019076 (19.0 MB) TX bytes:4151766 (4.1 MB)

Note que a interface utilizada é a wlan0, com o endereço 192.168.1.100. O mesmo comando na máquina da Joice mostra que ela usa a interface ath0 com o endereço 192.168.1.103. Em nosso teste, vamos acessar o desktop Cesar a partir da máquina Joice. Primeiro testamos a conexão:

  brod@brod-laptop:~$ ping 192.168.1.100
  PING 192.168.1.100 (192.168.1.103) 56(84) bytes of data.
  64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.038 ms
  64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.042 ms
  64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.043 ms
  64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=0.044 ms
  64 bytes from 192.168.1.100: icmp_seq=5 ttl=64 time=0.043 ms
  ^C
  --- 192.168.1.100 ping statistics ---
  5 packets transmitted, 5 received, 0% packet loss, time 3998ms
  rtt min/avg/max/mdev = 0.038/0.042/0.044/0.002 ms

Funcionou, então vemos se a Joice consegue acessar a máquina do Cesar com ssh:

  ssh brod@192.168.1.100

Obviamente, ela precisará conectar-se com um usuário e senha conhecidas na máquina remota.

Caso a máquina da Joice não necessite ser um servidor VNC, ela pode simplesmente instalar o pacote xtightvncviewer, como descrito anteriormente.

A seguir, ela executa os comandos abaixo:

  xhost +
  vncviewer -via 192.168.1.100 localhost:64

192.168.1.100, como você já viu, é o endereço da máquina do Cesar.

Pronto! Joice agora tem em sua máquina o desktop da máquina do Cesar. Novamente, observe que a Joice deve ter um usuário na máquina do Cesar e que ela deve conhecer tanto sua própria senha quanto a do VNC.

Conectando-se a uma máquina remota na Internet

A situação mais comum que enfrentamos é a de termos que nos conectar a uma máquina de um cliente, utilizando seu próprio desktop. Para isto, o cliente deverá ter instalado em sua máquina o openssh-server e o tightvncserver. Certifique-se de que todos os procedimentos descritos em Testes na máquina local funcionam do lado do cliente antes de testar o acesso remoto. Caso seja possível conectar sua máquina à rede do cliente, faça também todos os procedimentos descritos em Testes na rede local.

Agora, tanto nossas máquinas como a máquina do cliente possuem endereços internos de rede, invisíveis para a Internet. E mesmo os endereços que recebemos dos provedores para o acesso são fornecidos dinamicamente. Como, então, obter os endereços necessários para as conexões? A melhor saída que encontramos para isto é o hamachi. Só que agora o gerenciador de pacotes não irá ajudar. Você precisará baixar o pacote deste endereço, selecionando a plataforma Linux. Note que é possível instalá-lo também em outras plataformas, mas estas não foram testadas por nós. Caso você nunca tenha feito uma instalação "na mão" no Linux, é bom seguir os próximos passos com a ajuda de alguém mais experiente. Mas, mesmo assim, ela é bastante simples:

  1. Baixe o pacote, anotando a pasta onde foi feito o download;
  2. Torne-se superusuário com o comando sudo su;
  3. Vá para o diretório /usr/local/src, descompacte o hamachi e vá para a pasta do hamachi

      cd /usr/local/src
      tar -xzvf /pasta-de-download/hamachi-(versão)-lnx.tar.gz
      cd /usr/local/src/hamachi-(versão)-lnx/
    

  4. Execute os seguintes comandos:

      make install
      tuncfg
    

  5. Saia do modo superusuário (tecle Ctrl+D) e execute os seguintes comandos:

      hamachi-init
      hamachi start
      hamachi login
    

  6. Crie uma rede para o seu ambiente. Você pode criar uma rede para cada ambiente, ou uma rede que será usada por toda a sua empresa, bastando repetir o comando a seguir:

      hamachi create nome-da-rede senha
    

  7. Conecte-se à rede:

      hamachi join nome-da-rede
    

    Use a senha escolhida no item 6.

  8. Entre "online" na rede à qual se uniu para que possa ser visto por outros usuários:

      hamachi go-online nome-da-rede
    

  9. Verifique os endereços conectados:

      hamachi list
       * [nome-da-rede]
            5.106.100.166
            5.108.231.0
            5.141.10.218
            5.142.23.45
          * 5.143.252.66                                189.7.202.2:39375
    

  10. Verifique a interface criada:

      ifconfig
      
      ham0      Link encap:Ethernet  Endereço de HW f2:0b:73:13:15:46
               inet end.: 5.143.245.83  Bcast:5.255.255.255  Masc:255.0.0.0
               UP BROADCAST RUNNING MULTICAST  MTU:1200  Métrica:1
               pacotes RX:35 erros:0 descartados:0 excesso:0 quadro:0
               Pacotes TX:56 erros:0 descartados:0 excesso:0 portadora:0
               colisões:0 txqueuelen:500
               RX bytes:7030 (7.0 KB) TX bytes:8901 (8.9 KB)
    

    Obviamente, para poder conectar sua máquina à máquina do cliente, você também deve ter o hamachi instalado. Para isto, repita os passos 1 a 5, salte o passo 6, pois a rede já está criada. E siga os demais passos para saber o endereço de sua própria máquina no hamachi. Em nosso exemplo, a máquina do cliente tem o endereço 5.143.245.83 e a máquina que usaremos no escritório tem o endereço 5.143.252.66. Como nos casos anteriores, teste as conexões com o comando ping e tente abrir uma sessão ssh remota usando o endereço do cliente (ssh cliente@5.143.245.83). Tudo isto funcionando, basta testar a abertura de um desktop remoto.

      vncviewer -via 5.143.245.83 localhost:64
    

    Você deverá fornecer duas senhas. A primeira, é a de seu usuário na máquina remota (que deve ter sido previamente criado) e a segunda é a que você forneceu no passo 6. Feito isto, um desktop da máquina do cliente será aberto na máquina local.

Conclusão

O hamachi efetivamente estabelece, via Internet, uma conexão ssh entre duas máquinas. Assim, efetivamente, todos os serviços possíveis por ssh podem ser utilizados com o hamachi, como o acesso remoto a arquivos via scp. O serviço roda sob criptografia, ou seja, nenhum dado irá trafegar às claras na Internet. Mesmo assim, tenha cuidado com a escolha de senhas e mesmo de nomes de redes. Evite divulgá-las além de um grupo restrito de usuários.

Para acessar com facilidade a máquina remota, o melhor é que você já deixe os serviços preparados. Especialmente o tuncfg tem que ser executado no modo superusuário (aliás, na maior parte das vezes em que o comando hamachi start não rodar é porque o tuncfg não foi executado). Por isso, é conveniente colocá-lo em alguns de seus scripts de inicialização do Linux. Um bom exemplo de como isto pode ser feito pode ser encontrado neste artigo.

Os demais comandos podem ser reunidos em um script para o qual você pode criar um ícone na tela do computador de seu cliente para que ele habilite os serviços de acesso remoto apenas quando eles forem necessários.

Em nosso caso, simplesmente adicionamos a seguinte linha ao arquivo /etc/init.d/ssh (poderíamos ter criado um outro arquivo executável para isto, mas como basicamente só precisamos do tuncfg para as conexões hamachi com ssh, optamos por fazer isto neste arquivo mesmo):

  ### Set tuncfg to be used by hamachi
  tuncfg
  ###
  

No diretório do próprio usuário da máquina a ser acessada remotamente, criamos o seguinte script, chamado vnchamachi, que contém as seguintes linhas:

  #!/bin/bash
  # Primeiro remove a configuração atual, por via das dúvidas
  rm -Rf /home/usuario/.hamachi
  # Agora inicializa o hamachi
  hamachi-init
  hamachi start
  hamachi login
  hamachi join nome-da-rede senha-da-rede
  hamachi go-online nome-da-rede
  # Agora inicializa o VNC Server
  vncserver :64 -geometry 800x600 -depth 16 -name TESTE
Cesar Brod e Joice Käfer são sócios da BrodTec, nerds, pupilos do professor Pimenta e, ao menos uma vez por semana, fazem experiências culinárias.

IDPH oferece curso de Scrum com o autor do livro Scrum - Guia Prático para Projetos Ágeis

Nos dias 13 e 14 de outubro de 2014 o IDPH, Instituto para o Desenvolvimento do Potencial Humano, traz Cesar Brod, autor do livro Scrum - Guia Prático para Projetos Ágeis, para Campinas, onde o mesmo ministrará o curso Introdução ao Scrum - Agilidade e Bem Estar nas Organizações.

Este curso, de dois dias, é praticamente o mesmo, já ministrado por Cesar, para equipes de profissionais da Unicamp e várias outras instituições e empresas, sempre com notas máximas de avaliações e excelente receptividade. Cesar é praticante e coach de metodologias ágeis há mais de quinze anos e já aplicou o Scrum no desenvolvimento de vários softwares e serviços. Atualmente, Cesar desenvolve serviços de coaching em startups ligadas ao PROSPB, projeto de extensão em software público da Univasf (Universidade Federal do Vale do São Francisco), além de ministrar palestras em todo o Brasil sobre o assunto.

Mais informações sobre o curso e inscrições estão disponíveis em http://www.idph.com.br/scrum/

 

 

Veja a relação completa dos artigos de Cesar Brod e Joice Käfer

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (2016 votos)

Opinião dos Leitores

ramyz
18 Ago 2012, 19:58
Cara, o tutorial é excelente e esta me ajudando bastante, mas estou com um problemao que nao acho solucao em lugar algum na internet.. No momento que coloco Hamachi login, vem a maldita resposta Logging in .... failed. Será que voce pode me ajudar?
Grato desde já
Erick Barros
05 Jun 2012, 21:12
Pessoal muito obrigado e Parabéns pelo tutorial. Realmente vai direto ao assunto, e com uma linguagem clara e objetiva. Há alguns dias venho tentando fazer esse túnel, utilizando Hamachi e Vnc4Server, mas não conseguia capturar a área de trabalho Linux de jeito nenhum. Consegui fazendo com "Rwindows no Vbox". Agora criando o túnel com Hamachi Acessando via SSH, ficou melhor ainda, porque o meu objetivo é capturar meu DeskTop Linux em casa. Parabéns novamente e Sucesso.
Edinaldo Zopelari
17 Fev 2012, 16:36
Eu tenho um proxy squid aqui na empresa mas nao tenho muita intimidade com linux, sou apenas um curioso, e gostaria de saber se tem como eu acessar esse micro que eu configurei o openssh e o vnc por um micro rodando Windows Xp... tentei aqui, os testes no localhost funcionaram ok, ate consequi conectar pelo ssh usando o SSH Secure Shell 3.2.9 para windows, mas nao consegui visualizar o desktop com vnc.
Alguem pode me ajudar?
Rafael Henrique da Silva Correia
25 Jul 2011, 17:50
Ótima dica. Quanto aos comentários ... sem comentários né gente ... vocês tem que aprender que Windows é Windows e Linux é Linux. Eu atualmente uso o vino-server (Gnome) tudo na base do clique-clique (muito windows isso). Porém ele não me da uma gama de opções como este tutorial me mostrou por uma lida rápida.

Obrigado
Rodrigo
31 Mai 2011, 17:08
É Cleu, se não fossem estas pessoas brincando de matrix o dia todo, vocês usuários finais teriam de ficar restritos ao email pesado do Microsoft Exchange, e provavelmente não teriam serviços de email gratuítos. Detalhe, se Linux é só para "brincar" por que será que a M$ tem a própria distribuição Linux, e outro detalhe, a própria Microsoft tem alguns servidores Linux.

a grande maioria dos sites são hospedados em servidores Linux, e uma quantidade ainda maior é desenvolvido em uma linguagem que foi criada nativamente em linux e depois passou a ser usada no windows (PHP)
Kenshuri
21 Out 2010, 08:24
ótima dica....cleu? brincar de matrix?
nessas horas que vemos o nivel intelectual de cada pessoa, se vc quer um sistema que possa ser facilmente invadido e utilize o computador para msn e redes sociais (que são alvos faceis de captura de dados) utilize o windows mesmo (PIRATA lógico...vc não vai pagar uma nota em uma licença original e dependendo restrita)

Boa sorte ;)

Be free - Use Linux
Tiaguiinho
07 Out 2010, 18:31
COMO entra nisso




















<a href=http://www.es.savetubevideo.com/ >descargar youtube</a>























<a href=http://www.musicfrost.com/ >download music</a>























<a href=http://www.musicfrost.com/ >free mp3 downloads</a>























<a href=http://www.savetubevideo.com/ >youtube downloader</a>























<a href=http://www.musicfrost.com/ >house music</a>
Gabriel Corrêa
16 Set 2010, 17:01
Linux é funcional sim, para quem sabe utilizar suas ferramentas, o diferencial do linux para um sistema Microsoft, é que no linux tenho funcionalidade, segurança e muita qualidade para serviços como Servidores, Routers e outros, a microsoft só pensou em agilidade, deixando a qualidade de lado.

Cleu... Linux não é um sistema para usuário final, Linux é sistemas para prover serviços a usuários finais.

Agradeço...
Abraços a todos
Claudio Lins
09 Ago 2010, 10:11
Comentário típico de usuário Windows.

Bem eu também sou usuário Windows e confesso que tenho bastante interesse em aprender como manusear o Linux, mas se não fossem sites como este eu estaria perdido.


cleu
13 Jul 2010, 00:50
Pelo amor de Deus, para com isso!!!
Pensa, o linux não é nada funcional, é indicadado para quem não tem nada a fazer o dia todo e fica brincando de "matrix".
O problema é tempo. Os desenvolvedores do linux não sabem o que isso quer dizer!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
3ª geração do Under Servidor Cloud




 

As Palavras Mais Comuns da Língua Inglesa - 2ª edição