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_configAltere a linha abaixo:Port 22Escolha outro valor para a portaPort 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
No comments