Réseaux - Instalação de um servidor SSH no Windows

Março 2017

Esta dica te ajudará a instalar e a configurar um servidor SSH, no Windows.

Resumo


Introdução

Escolha do software

Eu escolhi o servidor OpenSSH de Cygwin, por que http://sshwindows.sourceforge.net
não é atualizado com freqüência.
Cygwin mantém seus pacotes atualizados, o que é importante quanto a segurança.
Além disso, o instalador Cygwin possibilita a atualização OpenSSH, openSSL e todas as bibliotecas, sem necessidade de reinstalação.

Sistema Operacional necessário

Windows 2000, XP ou 2003.
(Esta instalação não pode ser feita no Windows 95/98/ME).
Também funciona no XP Home (Edição Familiar).

Ferramentas utilizadas

OpenSSH (pela shell e o instalador Cygwin)

Antes de começar

Se você tem medo de efetuar estas manipulações, utilize o servidor SSH Cygwin pré-embalado CopSSH: http://www.itefix.no/...
Porém, saiba que este pacote é susceptível de interferir no Cygwin se ele já estiver presente, e ele lida apenas com os usuários locais.

Nota importante

A instalação de um servidor SSH no Windows não é totalmente segura.
É sériamente desaconselhável instalar um servidor SSH como este no Windows, em uma máquina de produção.
Se você precisa de um servidor SSH seguro, utilize o Unix, Linux ou BSD. É bem mais fiável, sem comparação (sem DLL de emulação de uma parte de um sistema operacional (cygwin.dll), nenhum mapeamento errado entre os direitos do Windows e do Unix, nenhum serviço executado com um usuário cujos direitos sejam dúbios, nenhum de pseudo-shell Unix...)

Você foi prevenido.

Nota do autor (sebsauvage)

Inútil me enviar um e-mail para pedir ajuda para esta instalação. Eu não responderei. Este documento está bem detalhado.
Se não funcionar é porque você deve, provavelmente, ter cometido um erro. 99% dos problemas que pude ver, foram causados pela leitura apressada deste documento.
Leia bem as mensagens que aparecem na tela.
Não continue a instalação, sem pensar, se um alerta de erro aparece : resolva primeiro o problema, antes de continuar.

I - Instalação do Cygwin

Baixe o instalador Cygwin (setup.exe) do http://www.cygwin.com/ e execute.
  • Janela "Choose installation type": Escolha "Install from internet"
  • Janela "Choose Installation Directory": Deixe todos os valores padrão.
  • Janela "Select Local Package directory": Deixe os valores padrão. (Os arquivos de install cygwin serão colocados em um subdiretório do setup.exe)
  • Janela "Selection connection type": Entre eventuais configurações do proxy, se você utilizar um.
  • Janela "Choose Download Site(s)": Escolha um site de download próximo de sua casa. Por exemplo, na Bélgica, escolha os servidores em .be. Na França, escolha os servidores em .fr. No pior dos casos, escolha servidores de países vizinhos (exemplo: .da Alemanha para a França).
  • Janela "Select packages", clique no botão "View" para ver a lista dos pacotes.
  • Desça na lista para encontrar "OpenSSH: The OpenSSH server and client programs" e clique na palavra "Skip" para selecionar este pacote. A palavra "Skip" deve, então, ser substituída pela versão do OpenSSH (por exemplo "4.2p1-1"). Outros pacotes serão selecionados, automaticamente. Clique em "Next": O download vai começar. (mais ou menos 17 MB vão ser baixados.)
  • Janela "Create icons": clique em "Finish".


A instalação do Cygwin terminou.

II - Configuração do servidor SSH

Modificação do ambiente

  • Clique direito no desktop > "Propriedades" > "Avançado" > "Variáveis do ambiente" > "Variáveis do sistema".
  • Clique em "Novo" e, entre a variável : CYGWIN ; valor: ntsec tty
  • Selecione PATH na lista, clique em "Editar" e adicione : ;C:\Cygwin\bin no fim do caminho.

II.1 Criação de grupos e usuários

  • Abra a janela Cygwin.
  • Crie os usuários e os grupos:
    • Users : mkpasswd -l > /etc/passwd
    • Grupos : mkgroup -l > /etc/group
    • Isto levará em conta os usuários e grupos do Windows e vai criá-los em arquivos Cygwin correspondentes.
    • « -l » é um L MINÚSCULO e não o número 1.
    • Para utilizar os grupos/ usuários do domínio (em vez do local), substitua « -l » por « -d »
    • Para adicionar um usuário preciso, utilize « -u ». Exemplo: mkpasswd -u jose -l > /etc/passwd
    • Controle bem o conteúdo dos arquivos passwd and group. Se estes arquivos estiverem vazios, o servidor SSH não funcionará.
    • Se um usuário E SEU GRUPO não forem declarados nestes 2 arquivos, ele nõ poderá se conectar.
    • Se uma mensagem de erro aparecer no mkpasswd ou mkgroup, inútil continuar a instalação : resolva este problema, antes de continuar.
  • Execute: ssh-host-config -y. Pode ser que ele peça uma senha para a criação de um usuário "sshd_server" (por exemplo, no Windows 2003). Ele é o usuário que será utilizado para fazer funcionar o serviço sshd.
  • Quando for pedido "CYGWIN=", entre: ntsec tty. Com isto será criado o serviço sshd no Windows. Ele aparecerá sob o nome "CYGWIN sshd" na lista dos serviços. Em princípio, ele será configurado para iniciar automaticamente mas, ele ainda não foi iniciado.

III - Lançamento do serviço sshd e teste

Iniciar o serviço

Utilize o comando net start sshd cygrunsrv -S sshd.
Note que o serviço se iniciará, automaticamente, no próximo arranque do Windows; você não precisará mais digitar este comando.
Se o serviço não se iniciar, veja o conteúdo do arquivo C:\cygwin\var\log\sshd.log
De acordo com as instalações, você poderá fazer chown system /etc/ssh* e chown system /var/empty para que o serviço seja iniciado corretamente.

Testar o serviço

Utilize o cliente SSH fornecido com o cygwin: ssh monlogin@localhost.
Ou Putty (client SSH gratuito): http://www.chiark.greenend.org.uk/~sgtatham/putty/.
Na primeira conexão, o cliente SSH vai, provavelmente, te pedir para confirmar a chave.
A seguir, depois da senha, você deverá obter um shell.
Você poderá ver a conexão digitando : echo $SSH_CONNECTION
(Porta 22 = seu servidor SSH)

Observações

Gestão dos usuários

Qualquer usuário indicado no /etc/passwd poderá se identificar no servidor SSH. Você poderá, então, limitar a lista dos usuários passíveis de se conectar no servidor SSH, alterando o arquivo C:\cygwin\etc\passwd

Nota : você deve deixar os usuários sshd e sshd_server. O servidor SSH precisa disso.

Acesso aos discos Windows

Não esqueça que no shell Cygwin, você pode acessar seus discos Windows, por exemplo: /cygdrive/c para acessar o C: (e, assim por diante, para os outros leitores.)

Utilizações

Além do shell, é claro que você poderá utilizar o seu servidor SSH para a transferência segura de arquivos (scp/sftp).
No Windows, pode-se encontrar clientes scp/sftp gratuitos :

O servidor SSH também pode "tunelar" qualquer protocolo baseado no TCP para você . (Para ser mais preciso, é como uma porta-forwarding distant). Exemplo, para estabelecer um túnel :

Sua máquina -----> cliente ssh local (port 777) -----> servidor ssh (porta 22) ----> pop.free.fr (porta 110).

Entraríamos o seguinte comando :
ssh -L 777:pop.free.fr:110 meuLogin@mmeuServidorrSsh

Depois, basta conectar seu software de e-mail no localhost:777 em vez de pop.free.fr:110 : ssh estabelecerá um túnel, em direção ao pop.free.fr, porta 110.
Assim, você poderá ler seus e-mails no localhost:777.
Isto pode ser útil para traversar redes que não são seguras (por exemplo, tudo aquilo que existe entre sua máquina e o servidor ssh).

Segurança

Para completar esta instalação, é preciso ajustar os direitos de acesso aos arquivos do usuário, utilizado para executar o serviço sshd a fim de melhorar a segurança.

Pense em executar, de vez em quando, o instalador Cygwin para atualizar OpenSSH e OpenSSL. (Pare o serviço antes de fazer esta atualização). Com isto, você benificiará de atualizações de segurança do OpenSSH e do OpenSSL.

Links

A redação deste documento foi facilitada pela ajuda de : http://www.cs.princeton.edu/~sudhakar/linux/cache/cygwin-sshd.html (em inglês).

Artigo original publicado por sebsauvage

Veja também

Publicado por pintuda.
Este documento, intitulado 'Réseaux - Instalação de um servidor SSH no Windows', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.