Acesso remoto

Em um sistema onde vários computadores se comunicam, é frequentemente utilizada a metáfora de “cliente/servidor”: o servidor é o programa que recebe as solicitações provenientes de um cliente e os executa. Existem várias opções, sendo que algumas delas são explicadas nesse post (Rdesktop, TeamViewer, VNC) e outras estão disponíveis em outros posts dedicados a elas:

vida-de-programador-ferias

RDesktop

Software livre para acessar o Windows remotamente, usando o protocolo RDP (Remote Desktop Protocol). O RDesktop está disponível nos repositórios, podendo ser instalado através do comando “sudo apt-get install rdesktop”. Veja esse comando típico de uso do programa, que pode ser inserido como um “alias” no arquivo “~/.bashrc” como “alias pcwin=’COMANDO'” depois de “some more ls aliases”:

rdesktop -u NomeUsuario -p Senha -fP 123.456.789.012 -r disk:share=/home/usuario/Público

Os parâmetros (opcionais) “-f” abre a janela do Windows ocupando toda a tela (tecle CTRL+ALT+ENTER para voltar ao modo janela), “-P” usa cache persistente de bitmap, “-K” mantém as combinações de teclas do gerenciador de janelas, “-D” oculta as decorações do gerenciador de janelas; usuário e senha são opcionais, conforme a configuração dos usuários do Windows. Para encerrar o programa, basta se deslogar ou fechar a janela, liberando assim a tela para acesso em outro computador.

Para compartilhar arquivos, use o parâmetro -r (também opcional) acompanhado de “disk:shaer=” e o caminho completo do diretório a ser compartilhado. No Windows, abra o gerenciador de arquivos e na parte de “Rede”, procure um “computador” chamado “tsclient”. Para alternar para esse diretório no cmd, use “pushd \\tsclient\path”.

Anteriormente, o PC servidor (com Windows) deve estar com permissão para ser acessado remotamente. Para isso, acesse o Painel de Controle, entre em Sistema e, na aba Remoto, clicar na segunda opção “Permitir conexões de computadores que estejam executando qualquer versão da Área de Trabalho Remota”. Além disso, deve estar rodando um “xrdp” com uma porta de acesso configurada e habilitada e algum eventual roteador deve permitir o acesso, caso tenha alguma restrição. Veja mais detalhes nesse tutorial:

TeamViewer

O TeamViewer é um software proprietário para acesso remoto, compartilhamento de área de trabalho, conferência online e transferência de arquivos entre computadores (aba superior da janela da área de trabalho do PC remoto). Funciona dentro de vários sistemas operacionais (Windows, Linux, iOS e até Android) e também é possível acessar uma máquina via navegador web.

O programa precisa estar instalado nos dois computadores (cliente e servidor). Quando o TeamViewer é iniciado num computador gera um ID de parceiro e uma senha. Para estabelecer uma conexão de um cliente local a uma máquina host remota, o operador local deve comunicar com o operador remoto, requerendo a ID e senha, e então usá-las no TeamViewer local. Também é possível criar uma conta e senha e cadastrar os computadores que deseja monitorar, cadastrando também uma senha para cada máquina.

Para instalar o TeamViewer no Linux, acesso o link Team Viewer Download para baixar o arquivo (32 ou 64 bits), abra o terminal, vá para a pasta onde o arquivo foi baixado e execute a sequência de passos usuais para sua instalação em sistemas 64 bits:

sudo dpkg -i teamviewer_linux_x64.deb # Colocar o nome do arquivo baixado
sudo apt-get -f install

A última linha serve para instalar possíveis dependências que impeçam a atualização. Para atualizar o team viewer, baixe o novo arquivo no site e instale usando o comando “dpkg” conforme linha acima.

Uma dica é criar uma conta para monitorar vários computadores. Na janela “computadores & contatos”, clique em “inscreva-se”, insira um nome de usuário individual, o seu endereço de e-mail e uma senha. Depois, você pode adicionar o computador que está usando ou remotos.

Para adicionar um computador remoto, esteja de posse da ID (9 dígitos) e da senha (4 dígitos, por padrão) do pc remoto. No seu computador local, vá na janela “computadores & contatos” e clique no botão que abre o link para o “Management Console”: uma página web para editar os computadores cadastrados na conta. Nele, clique em “adicionar -> adicionar computador remoto -> adicionar dispositivo existente” e insira ID, senha e algum nome para identificar facilmente seu PC. Como essa senha muda toda vez que reiniciar o Team Viewer, você precisa cadastrar uma senha fixa. No computador remoto, vá para o menu “extra” da janela principal (onde tem ID e senha), clique em opções, vá para a área “segurança”, coloque uma senha e clique OK. Voltando ao seu computador local, clique com o botão direito no nome do pc remoto, vá em “configurações” e então “propriedades” para apagar a senha antiga e colocar a que acabou de ser cadastrada no pc remoto.

Clique no link para ver mais como restringir o acesso ao seu computador que possui o Team Viewer instalado.

Caso o usuário remoto tenha deixado a tecla de CAPS LOCK ativada, não adiantar desativar usando o seu teclado. Será preciso usar o SHIFT para digitar as letras em minúscula. Use esse ‘truque’ para escrever a senha e logar. Para desativar a tecla, use o seguinte comando no terminal de texto:

setxkbmap -option ctrl:nocaps
setxkbmap -option

A segunda linha é para reativar a tecla CAPS LOCK.

Para verificar os logs de acessos via teamviewer em seu computador, execute o comando “teamviewer -ziplog” como root, descompacte o arquivo gerado na pasta “/tmp” e abra os arquivos Connections_incoming.txt e Connections.txt

VNC

Sigla para Virtual Network Computing, é basicamente um sistema de exibição remota que permite visualizar um ambiente de computação “desktop” não apenas na máquina onde ele está sendo executado, mas a partir de qualquer lugar na Internet e de uma grande variedade de arquiteturas de máquinas. Também permite acesso via SSH, além do VNC. Deve ter uma versão instalado no PC servidor (vnc4server, no caso) e um visualizador no cliente (vinagre, por exemplo, que já vem com o Debian na instalação básica). Veja alguns passos para instalar e configurar um servidor no Debian 7 (serve também para ‘tightvncserver’ fazendo as devidas substituições de nome):

  1. Instalação: “apt-get install vnc4server”
  2. Tenha certeza de estar usando somente o vnc-server: “dpkg -l | grep vnc”
  3. Crie um usuário para utilizar o VNC (através do comando “adduser novo_usuario”) e alterne para ele (“su novo_usuario”)
  4. Mate eventuais processos rodando: “vncserver -kill :1”
  5. Altere/crie o arquivo “~/.vnc/xstartup” de modo a ter a linha “exec gnome-session &” no caso de ser uma interface gráfica gnome a ser utilizada. Descomente as linhas indicadas (geralmente “unset SESSION_MANAGER”). Existem outras opções mais incrementadas em outros sites.
  6. Para tornar executável no boot, edite o arquivo “/etc/init.d/vncserver” como super usuário para conter as seguintes linhas (existem outras versões):
    #! /bin/bash
    # /etc/init.d/vncserver
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    $syslog
    # Required-Stop:     $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: vnc server
    # Description:
    #
    ### END INIT INFO
    
    # Carry out specific functions when asked to by the system
    case "$1" in
      start)
        su pi -c '/usr/bin/vncserver'
        echo "Starting VNC server "
        ;;
      stop)
        pkill vncserver
        echo "VNC Server has been stopped (didn't double check though)"
        ;;
      *)
        echo "Usage: /etc/init.d/blah {start|stop}"
        exit 1
        ;;
    esac
    
    exit 0
    

    O cabeçalho foi incluído para tirar warnings do tipo “insserv: warning: script ‘vncserver’ missing LSB tags and overrides”.

  7. Torne o arquivo executável através de “chmod +x /etc/init.d/vncserver”
  8. Crie o arquivo de configuração “/etc/vncserver/vncservers.conf” (crie o diretório, se necessário “mkdir -p /etc/vncserver”) de modo a incluir as seguintes linhas para definir a resolução:
    VNCSERVERS="1:srijan"
    VNCSERVERARGS[1]="-geometry 1024x768"
    
  9. Adicione à inicialização através do comando “update-rc.d vncserver defaults 99” e reinicie o PC (ou somente o serviço: “sudo /etc/init.d/tightvncserver start”).

No computador cliente, abra o “vinagre”, clique em “conectar”, escolha a opção SSH primeiro para testar a conexão (digite somente o IP e clique em conectar) ou use a opção VNC em uma nova conexão, definindo IP e a janela (geralmente :1), assim como usuário e (depois) a senha definidos na instalação.

RESUMO (caso já tenha o servidor instalado):

  1. iniciar o serviço do VNC no servidor para o seu usuário, executando “vncserver” no terminal do servidor (“vncserver :2” se quiser a porta 2, por exemplo)
  2. deve aparecer algo como: New ‘servername:2 (username)’ desktop is servername:2 (se essa etapa não for feita, aparecerá um erro do tipo “A conexão com a máquina servername::5902 foi fechada”)
  3. no computador cliente, abra o vinagre, clique em “conectar”, em “máquina” insira o IP seguido de dois pontos e o número da porta informada pelo servidor (nesse caso, 2) e clique em conectar.

Dessa forma, é possível desconectar ou fecha a janela do vinagre sem que as janelas de interface gráfica se encerrem.

O tightvncserver é uma opção VNC para a Raspbery Pi – veja mais clicando no link.

Segurança

O pacote autolog fornece um programa que desconecta automaticamente usuários inativos depois de um atraso configurável. Ele também permite matar processos de usuário que persistem após o término da sessão, impedindo os usuários de executar daemons.

Existem algumas verificações que podem ser úteis para um monitoramento:

sudo netstat -tupan # conexões de rede
ps auxf # lista de processos
sudo ls -alR /proc/[0-9]* # um pouco mais de informação sobre a execução de programas

Os arquivos .bash_history do usuário e máquina utilizados oferecem informações muitas vezes interessantes, assim como os arquivos de log em /var/log/, que permitem reconstruir uma cronologia dos eventos. O comando strings ajuda a identificar programas instalados pelo atacante, extraindo sequências de texto de um binário; ferramentas special-purpose também permitem restaurar o conteúdo de arquivos potencialmente excluídos, incluindo arquivos de log que tenham sido excluídos.

Compartilhe :)

7 comments

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.