8 de ago de 2019

6 práticas recomendadas para a segurança do OpenSSH

Segurança do OpenSSH


Olá, meu caro! 

Talvez você nunca tenha se deparado com a situação abaixo, mas e se deparasse, qual seria a sua atitude? Você tem controle dos acessos realizados no seu parque de máquinas?  A imagem abaixo demonstra informações de segurança no Kibana do meu ambiente na google cloud cuja as máquinas estão expostas na internet e com algumas portas abertas. Existem regras de firewall, tanto iptables quanto fail2ban,  porém agora iremos ver algumas ações recomendadas que podem ser feitas no OpenSSH para ampliar a segurança. 


Figura 1 - Kibana, dashboard de monitoramento de atividades dos hosts.


Estas são as seis tarefas mais importantes para proteger sua configuração do servidor SSH:

Figura 2 - Configurações sshd_config

1.       Use uma senha forte;
2.       Altere a porta padrão do SSH;
3.       Desabilite o login do root;
4.       Limite o acesso do usuário;
5.       Use acesso baseado em chave para autenticação.
6.       Desativar senhas vazias
 

1.       Use uma senha forte;


Não é demais enfatizar o quanto é importante usar senhas de usuário e senhas fortes para suas chaves. O ataque de força bruta funciona porque o usuário acessa senhas baseadas em dicionário. Você pode forçar os usuários a evitar senhas contra um ataque de dicionário e usar a ferramenta john the ripper para descobrir senhas fracas existentes.

2. Altere a porta padrão do SSH;


A porta padrão do serviço SSH é 22, você deve alterá-la para tornar menos óbvio que seu servidor esteja executando um serviço SSH.

#vim /etc/ssh/sshd_config
Altere a linha abaixo:
Port 22
Escolha outro valor para a porta
Port 2123

 3.       Desabilite o login do root;


É importante desativar o login direto para o usuário root, pois há muitos ataques de força bruta contra o root. IMPORTANTE: teste o login SSH com seu usuário alternativo não raiz que você planeja usar para logins ssh antes de desabilitar a conta raiz.

Figura 3 - Tentativas de acesso com usuário root


4.       Limite o acesso do usuário;


Por padrão, todos os usuários do sistema podem efetuar login via SSH usando sua senha ou chave pública. Às vezes, você cria uma conta de usuário do UNIX / Linux para fins de FTP ou email. No entanto, esses usuários podem efetuar login no sistema usando o ssh. Eles terão acesso total às ferramentas do sistema, incluindo compiladores e linguagens de script, como Perl, Python, que podem abrir portas de rede e fazer muitas outras coisas sofisticadas. O controle baseado em grupo é mais flexível e fácil de administrar, por isso coloquei os dois exemplos abaixo. Se você optar por utilizar a permissionamento por usuário e não grupos caso você adicione um novo usuário no sistema, você terá que editar o sshd_config e adicionar esse novo usuário. 

Para permissão de usuários:
#AllowUsers luizep developers
Para permissão de grupos:
AllowGroups developers devops sysadmin
Para negar usuários:
#DenyUsers root


5.       Use acesso baseado em chave para autenticação;


Todos os logins baseados em senha devem ser desativados. Somente logins baseados em chave pública são permitidos. Adicione o seguinte no seu arquivo sshd_config:

PubkeyAuthentication yes


6.       Desativar senhas vazias.


Você precisa explicitamente proibir o login remoto de contas com senhas vazias, atualize sshd_config com a seguinte linha:

PermitEmptyPasswords no

Nenhum comentário:

Postar um comentário