Após abordarmos constantes temas relacionados a Auditoria em Servidores SSH, senti a necessidade de estabelecer o contraponto apresentando um guia com dicas de Hardening em serviços SSH para prevenção contra senhas fracas, Brute Force e autenticações indevidas.
O guia é bem simples e apresenta uma serie de parametrizações efetuadas no server side, mais especificamente no sshd_config do servidor.
Vamos ao arquivo que corresponde as configurações do SSH
# vim /etc/ssh/sshd_conf
Forçando a execução do Protocol 2 (SSH-2)
A versão 1 do protocolo SSH (SSH-1) possui alvumas vulnerabillidades de segurança em questão de interceptação de dados e etc, então na maioria dos casos este protocolo é conhecido como obsoleto. Então, editando o arquivo sshd_config você pode descomentar a linha referente ao uso do mesmo e forçar a aplicação a utilizar o protocolo 2 como Default.Desabilitando o acesso SSH do usuário root
Esta prática é recomendada para qualquer servidor, porém praticamente obrigatória para servidores que necessitam de acesso SSH aberto para a internet. O usuário root é o usuário mais cobiçado dentro de qualquer sistema Unix, e provavelmente a primeira vitima dentro do Pentest ou alvo de uma pessoa maliciosa. Podemos desabilitar o login SSH do usuário descomentando a linha PermitRootLogin e adicionando a ela o parâmetro "no". Neste caso recomendo que tenha usuários particulares com permissões de sudo para poder executar as rotinas dentro do servidor.Restringindo o acesso para somente alguns usuários do sistema
Podemos também ordenar para que somente alguns usuários escolhidos possam se autenticar dentro do sistema como forma de aumentarmos a segurança contra usuários com senhas fracas alterando ou criando se não existir, o parâmetro AllowUsers e passando para ele os usuários que desejamos que autentiquem no sistema.(Alternativa) Negando o acesso somente de alguns usuários
Também podemos adotar a politica que nos permite negar o acesso a determinados usuários do sistema e liberando para todos os outros, como uma espécie de Black List do SSH. Basta alterar, ou criar caso não exista o parâmetro DenyUsersConfigurando o Idle Logout do SSH
É possível também configurar um tempo de logout do sistema caso o usuário conectado fique inativo. Pode não parecer comum, mas é muito fácil conseguir acesso a sistemas a partir de terminais abertos de usuários que simplesmente esquecem seu computador desbloqueado e etc. Para parametrizar esse tempo, podemos editar o arquivo sshd_config e descomentar e modificar as linhas ClientAliveInterval onde iremos parametrizar o tempo em segundos de uma sessão que será kickada caso permaneça inativa nesse caso parametrizei 600 segundos (10 minutos)Plus (+) Colocando um Banner de login
É possível colocar mensagens antes de depois de login no Linux, já expliquei o procedimento em arquivo, neste caso iremos colocar o banner no ato de login no SSH. Basta descomentar a opção Banner e pontar ela para /etc/issue, ou qualquer arquivo customizado caso não queira utilizar a mesma mensagem do login físico da máquina.Agora vamos editar o arquivo /etc/issue
vim /etc/issue
Mudando a porta do SSH
Podemos mudar também a porta em que o nosso serviço de SSH vai operar, basta alterar o parâmetros Port e setar a porta que iremos escutar.Desabilitando senhas vazias
Para a proteção contra o acesso de usuários criados sem senha, é possível atribuir o valor "no" para o parâmetro PermitEmptyPasswordsTentativas máximas de autenticação e numero máximo de sessões no servidor
Podemos também definir o numero máximo de tentativas de autenticação para prevenir ataques de Brute Force no serviço de SSH, onde iremos alterar o parâmetro MaxAuthTries e definir o numero de tentativas que o sistema irá aceitar antes de dar o death.
Usando a autenticação de Chave Pública
Talvez uma das melhores dicas seria autenticar os usuários a partir de chaves assimétricas geradas no SSH. Fizemos um artigo que você pode conferir Clicando Aqui explicando como gerar as chaves e autenticá-las no servidor. É bem simles
:)
excelente artigo, vou testar as dicas agora mesmo.
ResponderExcluirOpa, depois diz pra gente o que conseguiu fazer!
ExcluirLegal. mas procure deixar seu terminal em preto e branco ou contrastes mais visivéis.
ResponderExcluirabçs