Servidor SSH

Recentemente tive que configurar um servidor SSH com algumas exigencias próprias da nossa equipe de desenvolvimento, ou seja, alguns fatores necessários para aumentar a segurança no acesso remoto, então chega de falar e vamos a mão na massa.

Instalando o Servidor: estou utilizando o Debian 5 em todos os meus servidores.
servidor-ssh:~#apt-get install -y openssh-server

Arquivo de configuração do SSH:
servidor-ssh:~#cd /etc/ssh
servidor-ssh:~#vi sshd_config

Opções importantes: lembrando que o arquivo tem uma vasta lista de opções que podemos utilizar conforme o cenário, mas como o intuito do blog é mostrar de uma maneira rápida e fácil a configuração de servidores Linux na prática não vou explicar todas as opções e sim as que utilizei, ou seja, que tive que alterar.

PermitRootLogin no #essa opção serve para bloquear o acesso direto no servidor como root, ou seja, é necessário se logar com um usuario comum e dae sim se logar como root com o su -

AuthorizedKeysFile /chaves/%u/.ssh/authorized_keys # aqui tive um problema sério, pois para funcionar o diretorio /home/.ssh deve ter permissão 700 e o arquivo authorized_keys com permissão 600, mas o grande problema que minha equipe de desenvolvimento tem usuarios que caem em diretorios que não posso ter 700 como permissao, pois trabalhamos com grupo e outras funções, então note que usei o "%u" pois dae ele vai checar se o usuario que se loga tem permissao no authorized_keys

PasswordAuthentication no #aqui digo ao SSH que não vou usar autenticação por senhas PAM

AllowUsers usuario1 usuario2 usuario3 #nessa opção informo ao SSH quem pode se logar


DenyUsers ALL #caso nenhum dos usuarios acima seja aceito ele NEGA todos os demais
 
Antes de Start no servidor vamos gerar as chaves no cliente e copiar para o servidor remoto.
 
Configuração Cliente:
 
Gerando a chave RSA: por default ele vai gerar as chaves dentro de /home/usuario/.ssh
debian-bdl [/flex] >ssh-keygen "enter"
 
Observação: note que ele vai pedir que você digite uma senha ou que deixe em branco. Aconselho que digite uma senha para aumentar a segurança, mas caso queira deixar sem senha o que fazemos sempre para efetuar backups automaticos sem problemas.
 
Feito isso agora temos que enviar essa chave para o servidor remotoutilizando a propria ferramenta do ssh:
servidor [/qualquer] >ssh-copy-id -i "arquivo_chave.pub" usuario@servidor_remoto
Observação: note que ele vai criar o arquivo "authorized_keys" caso ele não exista em /home/usuario/.ssh
 
Start no serviço SSH no SERVIDOR:
servidor:~# /etc/init.d/ssh restart
 
Para testar vá até o cliente e faça seu ssh com um usuario sem a chave e outro com a chave.
 
Pessoal tentei ser o mais claro possivel e exatamente como é feito na prática, qualquer dúvida faça seu POST.
 
Abraço Junior.

Comentários

Postagens mais visitadas