Como criar um túnel SSH entre máquinas Windows

O ssh (Secure SHell) é um serviço que permite fazer o acesso remoto ao console da máquina, possibilitando ao usuário executar comandos e fazer alterações de arquivos como se estivesse conectado localmente.

A principal vantagem do ssh é que toda a comunicação é transmitida de forma criptografada usando chaves públicas/privadas RSA, de formar que os riscos de alguém “bisbilhotar” os dados que estão sendo trocados entre cliente e servidor são praticamente zero.

Se você realiza operações que precisam de uma maior grau de segurança em um local público ou em redes wireless e quer ter certeza que dados sigilosos não serão “sniffados” (capturados) por outra pessoa, então precisa conhecer mais sobre Túnel ssh.

O ssh é um serviço nativo de sistemas baseadas em UNIX (Linux, MacOSX, FreeBSD, etc), mais graças ao projeto Openssh for Windows podemos criar um servidor ssh rodando no SO do Bill Gates.

Instalando o Openssh por Fernando Ribeiro:

Depois de fazer o download do Openssh for Windows, execute o setup de instalação, durante a instalação modifique o diretório onde o Openssh será instalado para um diretório sem espaços, por exemplo “C:Openssh”, recomendo também a instalação apenas do componente “Server” do Openssh para servidores.

Configurando e criando contas para o Openssh:

O Openssh utiliza um arquivo de usuários “passwd” e um arquivo de grupos “group”, estes arquivos devem conter contas/grupos locais da máquina ou de domínio, porém é necessário criá-los antes de iniciar o serviço. Apenas os usuários criados dentro do arquivo “passwd” poderão logar pelo ssh.

Nota: a conta e/ou grupo devem existir no Windows.

Para criar contas e grupos utilize a seguinte sintaxe:

Nota: O mkpasswd e mkgroup se encontram no caminho “C:Opensshbin”

mkpasswd -l [-u ] >> ..etcpasswd

(adiciona nomedousuario para o passwd – usuário local)

mkpasswd -d [-u ] >> ..etcpasswd

(adiciona nomedousuario para o passwd – usuário de domínio)

mkgroup -l >> ..etcgroup (grupos locais)

mkgroup -d >> ..etcgroup (grupos de domínio)

Exemplo prático:

mkpasswd -d -u root >> ..etcpasswd

mkgroup -d >> ..etcgroup

Neste momento o serviço ssh já está operacional para aceitar conexões ssh, mas a autenticação por chaves ainda não irá funcionar, para tal teremos que fazer algumas configurações específicas.

Configurando o home do usuário

Os usuários que logarem pelo Openssh deverão ter um diretório home, por padrão este diretório fica em “C:Documents and Settings”. Você pode utilizar este diretório mesmo, não tem problema, mas eu particularmente prefiro criar uma estrutura separada para fins de organização, melhor controle e até segurança.

Para isso, dentro do diretório “C:Openssh”, crie um diretório chamado “home” (C:Opensshhome), dentro deste novo diretório home crie diretórios com o nome dos usuários que irão se logar pelo Openssh.

Crie também um diretório chamado “.ssh” dentro do home do usuário que irá ser utilizado na autenticação por chaves, este diretório será utilizado mais para frente.

Agora altere o local padrão do home do usuário atualizando a seguinte chave de registro do Windows:

“[HKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinmounts v2/home]”

Mude o valor da chave “native” de “C:Documents and Settings” para “C:Opensshhome”.

Trocando o usuário que inicia o serviço do Openssh

Primeiramente é preciso colocar um usuário local ou de domínio e de preferência com direitos administrativos (apesar de não ser o mais seguro) para executar o serviço do Openssh ao invés da conta padrão do sistema. Isto é possível executando o “services.msc” e selecionando propriedades do serviço Openssh.

O usuário utilizado para executar o serviço do Openssh deve ser proprietário do arquivo “C:OpensshvarlogOpensshd.log”. Este arquivo só existirá se o serviço foi iniciado corretamente ao menos uma vez independente da conta configurada para executá-lo.

Para configurar a conta proprietária do arquivo clique no arquivo mencionado acima com o botão direito e selecione “Segurança” depois “Avançado” e então “Proprietário”, nesta aba inclua a conta que executará o Openssh como serviço ou selecione uma conta na lista, caso seja uma delas que executará o Openssh como serviço.

Depois do nosso Servidor ssh Windows já configurado e rodando, podemos agora acessá-lo remotamente através de outra máquina Windows (ou com qualquer outro OS), para criar nosso Túnel ssh vamos utilizar o Putty.

Através da linha de comando, já dentro do diretório do putty execute:

putty.exe -l nome_do_usuario -pw senha -D porta_de_destino -P 22 -ssh ip_do_servidor


Neste exemplo, eu estou acessando a Internet em uma rede corporativa protegida por um firewall através da conexão ADSL da uma máquina Windows remota via Túnel ssh pelo Firefox:

Nota: Caso tenha algum problema de acesso tente desabilitar o firewall do Windows na maquina servidor.

Leia mais sobre como criar um Túnel ssh:

http://www.fisica.ufc.br/rede/virtual/

http://www.linuxsecurity.com.br/article.php?sid=12433

http://br-linux.org/linux/ssh-menu-e-tunel-ssh

Compartilhe Também:

Deixe seu comentário