out 05

OpenSSH – Secure Remote Shell

O protocolo ssh foi criado para permitir acessos remotos atraves de um túnel e muito seguro. Ele é considerado um grande substituto ao rsh, rlogin, rcp, and telnet que permitiam conexões remotas, porem inseguras. O ssh permite que ambos os hosts fiquem seguros atraves de todo o procedimento de conexão. O ssh utiliza a porta 22 tcp e permite conexões atraves de outros serviços e utilizando também redirecionamentos de bibliotecas gráficas utilizando o suporte ao X Window System.

A implementação do ssh é muito fácil e o ssh basea-se na velha autenticação baseada em hosts confiáveis. Porem a versão 1 era muito insegura então veio a implementação da versão 2 do protocolo ssh, então sempre mantenha a versão 2 de protocol.

O ssh utiliza em sua segurança de chaves privadas/publicas o par de chaves RSA e DSA e a sua criptografia fica restrita a 2048 bits como padrão, que se torna algo impossivel de ser quebrado, caso seja utilizado conexões pareadas pelas chaves.

O ssh vem em toda versão do UNIX e em toda distribuição Linux, mas vale lembrar que ele é constituido de um protocolo (servidor), e utilitário (cliente). Nao significa que só pq vc tem o comando ssh que vc tem um servidor funcionando, oque muitos confundem. O Arquivo /etc/ssh/sshd_config possui as configurações do servidor e o arquivo /etc/ssh/ssh_config, possui a configuração do cliente e utilitario ssh, evitando que vc fique adicionando flags (opções), ao comando ssh. É importante saber no arquivo do servidor ssh se a opção “Protocols 2” esta ativada, pois ele apontará para a versão 2 do ssh e não a anterior. A opção ” PermitRootLogin “, define se o root vai ter acesso sim ou não e é lógico que NUNCA devemos permitir o acesso do root por questões de segurança. A solução interessante é utilizar a opção “AllowUsers “, onde vamos permitir somente os usuarios listados terem acesso ao protocolo.

No OpenBSD, FreeBSD e netBSD, precisamos habilitar com sshd_enable=”YES” no arquivo /etc/rc.conf (apenas aqui) , /etc/rc.conf.local ou /etc/defaults/rc.conf , ja no Solaris é necessario instalar o pacote com o seguinte comando, #pkgadd -d openssh-* , no HP-UX vc pode utilizar o swinstall para fazer a instalação do ssh, apesar de que o padrão é que ele ja venha instalado. Em distribuições Linux vc pode utilizar o apt-get, yum, pacman OU então compilar o seu pacote que seria o mesmo procedimento em qualquer versão do Unix (com seus sources baseado em cada versão do UNIX ou distribuição Linux).

A maioria dos daemons (serviços), baseam-se no diretorio /etc/init.d , /etc/rc.d (em caso de BSD-Style), sendo que no HP-UX o gerenciamento de deamons fica em /sbin/init.d com o nome de ssh (debian,ubuntu,suse e outros), OU sshd (redhat,solaris e outros). No AIX, é possível carregar apos o seu pacote BOS ter sido instalado, e inicializado com o comando startsrc.Mesmo assim o daemon que fica rodando sempre em processo (pid), é o sshd. É ele que se vc matar derruba todo mundo ;) Apenas verifique com o comando pidof sshd.

O utilitario ssh funciona da seguinte maneira:

#ssh <opções> usuario servidor porta
-l que define o usuario e da no mesmo que @
-p que define a porta, pois o padrão é 22 e que pode ser alterado (em client) no arquivo ssh_config
-X que permite o redirecionamento de bibliotecas gráficas para rodar remotamente aplicativos graficos.
-i para apontar para um arquivo key, com a sua chave.
-o para ativar alguma opção que geralmente esta definida em sshd_config

exemplo:

#ssh -l aprigio 10.0.0.2 OU #ssh aprigio@10.0.0.2   caso o servidor SSH funcione em outra porta alterado em /etc/ssh/sshd_config então use a opção -p <porta> ou defina automaticamente em /etc/ssh/ssh_config (que é a configuração do utilitario).

aprigio@alwayz:~/.ssh# ssh -l aprigio 10.0.0.3

The authenticity of host ’10.0.0.3 (10.0.0.3)’ can’t be established.
RSA key fingerprint is 41:6c:eb:b0:ec:1e:c4:60:75:98:35:ac:77:b9:ce:b1.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ’10.0.0.3′ (RSA) to the list of known hosts.
aprigio@10.0.0.3′s password:

Note que quando eu me conectei ao servidor ele me solicitou a chave RSA onde a mesma foi autorizada e escrita no arquivo known_hosts em seu diretorio “perfil” do ssh do seu usuario. O SSH também conta com um utilitario que é o scp que é utilizado para copiar arquivos utilizando o protocolo ssh, muito bom e rapido.

Existe também uma possibilidade de criar e gerar chaves RSA ou DSA com o utilitario ssh-keygen para auto-permitir acessos baseado em chaves privada e publica. A grande vantagem é que a autenticação é feita automaticamente mediante a chave não tendo que escrever mais as senhas para o procedimento de autenticação.

#ssh-keygen -t rsa   –> cria chave para autenticação RSA de 2048 bits. Ele vai criar 2 chaves, a privada com o nome de rsa e a publica com o nome de rsa.pub que é a chave que será copiada par ao servidor e mesclada com o arquivo authorized_keys no servidor. Exemplo:

aprigio@alwayz:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/aprigio/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /aprigio/.ssh/id_rsa.
Your public key has been saved in /aprigio/.ssh/id_rsa.pub.
The key fingerprint is:
d1:ba:12:5d:7d:c1:4c:66:87:0c:fc:3b:16:c4:20:cf aprigio@alwayz
The key’s randomart image is:

+–[ RSA 2048]—-+
|          ..oO=..|
|         . =.oBo |
|        . o Eo.  |
|       . +   .o  |
|      . S      o |
|       . .    +  |
|      . .    . . |
|       .         |
|                 |
+—————–+
aprigio@alwayz:~#

Após criar a chave é só utilizar o utilitario ssh-key-copy-id para copiar a chave publica automaticamente e autorizar o cliente no servidor pelo arquivo authorized_keys. Caso vc não tenha o comando, vc mesmo pode mesclar ou usar com o flag -c pelo ssh.

#ssh-copy-id -i ~USUARIO/.ssh/rsa.pub  usuario@10.0.0.3

E pronto! É so testar ;)

Aprígio Simões

Comments are closed.

preload preload preload
Powered by Moblie Video for WordPress + Daniel Watrous