O protocolo ssh tornou-se o programa de eleição para conexões remotas, visto que a comunicação é encriptada ao contrário do que sucede com os velhinhos telnet ou rlogin.
O protocolo ssh usa o mecanismo de encriptação de chave pública. Nesta forma de criptografia necessitamos de duas chaves, uma chave pública e outra privada. A chave pública pode ser livremente divulgada e a chave privada deve ser protegida a todo o custo, visto ser esta a responsável pela efetiva segurança da encriptação. Para mais informação sobre este método clique aqui.
Do ponto de vista do administrador, deveremos sempre efetuar logins remotos recorrendo ao protocolo ssh e nunca por telnet. Tal aplica-se a máquinas Linux, routers e outros dispositivos onde exista essa opção. Saliente-se igualmente, que se deverá em analogia usar sempre o protocolo https ao invés do http para aceder a configurações de equipamentos. Deve-se ter igualmente em atenção o tamanho da chave. Há alguns anos consideravam-se as chaves de 128 bits seguras. Hoje em dia deverão ser escolhidas chaves de 512 ou mesmo 1024 bits. Quanto maior é a chave mais lento se torna o processo de encriptação, sendo que actualmente tal não constituí um problema, mesmo para chaves de 1024 bits.
No mundo Linux a implementação mais conhecida do servidor de ssh é o OpenSSH. Para efetuar ligações ssh existem em Linux aplicações nativas que o fazem. Para Windows, destaca-se o inevitável Putty e para administradores mais avançados recomenda-se a solução comercial SecureCrt (disponibiliza atualmente versões para Linux).
Numa instalação mínima RHEL ou CentOS o OpenSSH virá instalado por defeito. Pode sempre verificar-se se está instalado
- AuthorizedKeysFile: Especifica o ficheiro que contém as chaves públicas. Geralmente /[directoria home]/.ssh/ authorized_keys
- Ciphers: Lista de cifras permitidas para a versão 2 do protocolo.
- Port: Porta utilizado pelo protocolo, por defeito é a 22.
- Protocol: Versão do protocolo. Existindo dois, o 1 e o 2, deverá ser sempre utilizado o 2, visto que o 1 é atualmente considerado inseguro.
- AllowTcpForwarding : Especifica se o encaminhamento do protocol TCP é permitido. Por defeito encontra-se configurada a opção sim.
- X11Forwarding: Especifica se o encaminhamento do protocolo X11 é permitido. Por defeito encontra-se configurada a opção não.
- ListenAddress: Especifica o endereço local que o deamon SSH escuta.
- No seu próprio computador o utilizador vai autenticar-se com as suas credenciais.
- Localmente, o utilizador vai criar um túnel da porta 9000 da sua máquina à porta 80 da máquina que corre a aplicação web à qual pretende aceder. Para o fazer vai executar o comando [pmatias@pcpessoal ~]# ssh –L 9000:192.168.1.100:80 1.1.1.1 ou efetuar a ligação ssh e ssh> -L 9000:192.168.1.100:80
- Após autenticar-se com sucesso no servidor remoto, neste caso, o serverA, poderá então abrir o browser para aceder à aplicação. O utilizador verificará se o túnel está a funcionar corretamente, abrindo o browser para aceder à porta que está a reencaminhar o tráfego na máquina local e colocando o endereço http://localhost:9000 .
- Se tudo correu conforme previsto, o conteúdo web fornecido pelo servidor da aplicação surgirá, tal como se o mesmo estivesse a ser acedido a partir de uma máquina dentro da LAN da empresa.Para terminar a ligação e desfazer o túnel bastará desligar a ligação ssh estabelecida.
Fontes: Linux Administration, a beginners guide, wikipedia.