FPI - Fórum para Provedores de Internet
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
FPI - Fórum para Provedores de Internet


Você não está conectado. Conecte-se ou registre-se

Implementando segurança no SSH

Ir para baixo  Mensagem [Página 1 de 1]

1Implementando segurança no SSH Empty Implementando segurança no SSH Dom 10 Mar - 20:12

demattos

demattos
MODERADOR
MODERADOR

Hoje vejo muitos que quando vao olhar seus logs no linux observam varias tentativas de invacao por brute force na porta do servidor SSH este tutorial tem como obsetivo da uma seguraca mais em seus servidores.

Introdução
Para quem administra servidores GNU/Linux ou até mesmo alguns outros Unix Like, o serviço de SSH é essencial.

Porém, é também um serviço que gera muitas preocupações aos administradores de sistemas, que frequentemente são vítimas de tentativas de invasão em seus servidores através deste serviço. Estas frequentes tentativas geram uma preocupação muito grande em qualquer administrador de sistemas que quer manter a segurança e integridade de seu ambiente: "Como manter meu SSH seguro?"

Neste artigo, que publiquei originalmente em meu blog, quero compartilhar algumas dicas de técnicas que eu descobri na Internet ou mesmo que a experiência do dia a dia me ensinaram, e que podem ajudar nesta árdua tarefa.

Utilize somente autenticação via troca de chaves

O SSH permite dois tipos de autenticação, um por senha, outro através de troca de chaves.

As chaves nada mais são do que dois arquivos de texto contendo uma chave RSA (ou DSA, caso você prefira), uma que ficará no servidor, e outra que deverá ficar com o usuário. No momento da autenticação, a chave privada (que fica com o usuário que irá acessar o servidor) é enviada ao servidor, e caso as chaves "casem", você terá acesso ao shell via SSH. O acesso via chaves é mais seguro, pois o usuário deverá obrigatoriamente ter o arquivo de chave privada, cujo conteúdo, diga-se de passagem, é humanamente impossível de ser decorado.

O serviço de SSH possibilita que você desabilite o uso de senhas e utilize somente a autenticação via chaves. Para isto, primeiramente, devemos gerar o par de chaves que serão utilizados neste processo:

$ ssh-keygen -t rsa -b 2048

Este comando irá te fazer algumas perguntas, geralmente, a primeira é o local onde você quer gerar o par de chaves, e a segunda é qual é a "passphrase" que você deseja atribuir em sua chave privada. Para salvar o par de chaves no local padrão, e para não atribuir nenhuma passphrase, basta simplesmente apertar ENTER no momento em que as perguntas forem feitas.

Se você fez desta forma, no HOME do seu usuário existirá um diretório chamado .ssh, no qual você encontrará os arquivos id_rsa.pub e id_rsa.

Caso tenha executado este procedimento no servidor, somente renomeie o arquivo id_rsa.pub para authorized_keys:

$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

Caso tenha realizado o procedimento direto em seu desktop (obviamente com Linux), basta copiar o arquivo id_rsa.pub direto para o servidor, e ajustar as permissões da chave privada no desktop, para que possa realizar o acesso:

$ scp id_rsa.pub usuario@servidor:~/.ssh/authorized_keys
$ chmod 644 id_rsa

Como o SSH por padrão já vem configurado para permitir acesso via troca de chaves, o comando abaixo deverá resultar em um acesso imediato ao servidor, sem solicitação de senha:

$ ssh -i ~/.ssh/id_rsa usuario@servidor

Se o seu SSH não teve nenhuma alteração de suas configurações padrão (bem provável), você agora está no console do servidor. E se você já está dentro do servidor, significa que já podemos desabilitar a autenticação via senha, mantendo somente a autenticação via troca de chaves:

# vim /etc/ssh/sshd_config

E altere:

# A diretiva PasswordAuthentication é responsável por permitir autenticação por senhas
# Alterá-la para "no" fará com que o servidor pare de aceitar senhas como forma de autenticação
PasswordAuthentication no

Pronto! Basta reiniciar o SSH e seu SSH só será acessível via troca de chaves, nada mais de senhas e suas infinitas tentativas de Brute Force.

Possíveis configurações que impeçam a troca de chaves
Por outro lado, se no momento da autenticação via chave pública você não tenha conseguido acesso, isto pode ter sido causado por diversos fatores, entre eles, o mais provável, é que seu SSH não esteja configurado adequadamente para utilizar chaves, ou o nome do arquivo de chaves publicas (authorized_keys) foi alterado nas configurações do servidor. Para termos certeza se seu problema é este, vamos conferir qual é o valor das diretivas PubkeyAuthentication e AuthorizedKeysFile:

# sshd -T | egrep -i '(AuthorizedKeysFile|PubkeyAuthentication)'

pubkeyauthentication yes
authorizedkeysfile .ssh/authorized_keys



Se o seu SSH não estiver configurado como é esperado por este artigo, o comando acima retornará resultados diferentes do esperado acima. Para ajustarmos, altere no arquivo /etc/ssh/sshd_config o valor destas diretivas:

# vim /etc/ssh/sshd_config

# Lembrando que os valores das diretivas abaixo são os valores padrão do SSH.
AuthorizedKeysFile yes
authorizedkeysfile .ssh/authorized_keys

Após isto, reinicie o serviço de SSH, e tente autenticar via troca de chaves novamente.

# /etc/init.d/sshd restart

Se você conseguiu, basta seguir o procedimento de desativação da senha para autenticação.

http://www.criciumanet.com.br

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos