Esta dica te ajudará a instalar e a configurar um servidor SSH no Windows.
Como escolher seu software
Eu escolhi o servidor OpenSSH da Cygwin, por que a Cygwin mantém seus pacotes atualizados, o que é importante em termos de segurança. Além disso, o instalador Cygwin possibilita a atualização OpenSSH, OpenSSL e todas as bibliotecas, sem necessidade de reinstalação.
Qual é o sistema operacional necessário
Windows 2000, XP ou 2003. Esta instalação
não pode ser feita no Windows 95/98/ME. Ela também funciona no XP Home (Edição Familiar).
Quais são as 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 na Cygwin se ele já estiver presente, e ele lida apenas com os usuários locais.
Observação: a instalação de um servidor SSH no Windows não é totalmente segura. É seriamente 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 pseudo-shell Unix).
Nota do autor
Esta dica está bem detalhada. Se ela não funcionar é porque você deve, provavelmente, ter cometido um erro. 99% dos problemas são causados pela leitura apressada da dica. Leia bem as mensagens que aparecem na tela. Não continue a instalação, sem pensar, se um alerta de erro aparecer, resolva primeiro o problema.
Como instalar o Cygwin
Baixe o instalador Cygwin (setup.exe) do
cygwin.com e execute-o:
Janela
Choose installation type (Escolha o tipo de instalação): escolha
Install from internet (Instalar pela internet);
Janela
Choose Installation Directory (Escolha o diretório de instalação): deixe todos os valores padrão;
Janela
Select Local Package directory (Selecione o diretório do Pacote local): deixe os valores padrão (os arquivos de ‘install cygwin’ serão colocados em um subdiretório do setup.exe);
Janela
Selection connection type (Selecione o tipo de conexão): entre eventuais configurações do proxy, se você utilizar um;
Janela
Choose Download Site(s) (Escolha site(s) de download): escolha um site de download próximo de sua casa. Por exemplo, no Brasil .BR ou, no pior dos casos, escolha os servidores dos países vizinhos.
Janela
Select packages (Selecione pacotes), clique no botão
View (Visualizar) para ver a lista dos pacotes.
Desça na lista para encontrar
OpenSSH: The OpenSSH server and client programs (OpenSSH: o servidor OpenSSH e os programas do cliente) e clique na palavra
Skip (Pular) 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 (Avançar). O download vai começar (mais ou menos 17 MB serão baixados).
Janela
Create icons (Criar ícones): clique em
Finish (Concluir).
A instalação do
Cygwin terminou.
Como configurar o servidor SSH
Como alterar o 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.
Como criar grupos e usuários
Abra a janela
Cygwin e 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:
O
-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 (ex: 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 dois arquivos, ele não 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=, insira
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.
Como iniciar o serviço sshd e teste
Como 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.
Como testar o serviço
Utilize o cliente SSH fornecido com o cygwin:
ssh monlogin@localhost
. Ou
Putty (client SSH gratuito). 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).
Como gerenciar 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 conectarem no servidor SSH, alterando o arquivo
C:\cygwin\etc\passwd
.
Observação: você deve deixar os usuários
sshd e
sshd_server. O servidor SSH precisa disso.
Como acessar os discos do Windows
Não se 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).
Como utilizar o seu servidor SSH para transferir arquivos
Além do shell, é claro que você poderá utilizar o seu servidor SSH para a transferência segura de arquivos (scp/sftp). No Windows, podemos encontrar clientes
scp/sftp gratuitos:
pscp/psftp;
WinSCP.
O servidor SSH também pode botar em um túnel 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
.
Em seguida, 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 atravessar redes que não são seguras (ex: tudo aquilo que existe entre sua máquina e o servidor ssh).
Como melhorar a 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ê se beneficiará de atualizações de segurança do OpenSSH e do OpenSSL.
Foto: © Microsoft.