Este artigo explicará como instalar e configurar um servidor ssh no Windows.
Resumo
Introdução
Escolha do software
Eu escolhi o servidor Openssh de Cygwin, visto que
http://sshwindows.sourceforge.net
Não é atualizado com frequência.
Cygwin mantém seus pacotes atualizados, o que é bem significativo no que diz respeito à segurança.
Além disso, o instalador Cygwin possibilita a atualização OpenSSH, openssl e todas as bibliotecas sem necessidade de reinstalação.
OS 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ê tiver medo de efetuar as seguintes manipulações, utilize o servidor ssh Cygwin pré-embalado
CopSSH:
http://www.itefix.no/...
Porém, saiba que este pacote é susceptível de interferir com Cygwin se ele já está presente e 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ál instalar um servidor ssh como este no Windows numa 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 no ecrã.
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 Mo vão ser baixados.)
- Janela "Create icons": clique em "Finish".
A instalação do Cygwin terminou.
II – Configuração do servidor ssh
Modificão do ambiente
- Clique com o lado direito do mouse na área de trabalho > "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 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 johnny -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 um alerta 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). Éle o usuário que será sera utilizado para fazer funcionar o serviço sshd.
- Quando for pedido "CYGWIN=", entre : ntsec tty. Com iIsto 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 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 gitando :
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ê pode, 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 aos 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 criar um túnel para você, qualquer protocolo baseado no TCP. (Para ser preciso, é igual a 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 monLogin@monServeurSsh
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 le 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