O Red Hat Ansible Automation Platform é uma plataforma para implementar a automação em toda a empresa, o que faz dele a ferramenta ideal para suas auditorias de segurança. A segurança tem muitas camadas, mas este artigo se concentra na mitigação de ataques por SSH em hosts gerenciados. Não há como eliminar todos os riscos de segurança, mas é possível fortalecer os hosts gerenciados para minimizar alguns (especialmente ataques de força bruta) e mitigar outros (permitindo conexões SSH somente de hosts autorizados, aplicando o sudo e assim por diante). Este artigo usa o Ansible Automation Platform, mas a maior parte da configuração de fortalecimento é aplicada aos hosts gerenciados (edição de sshd_config, sssd.conf, access.conf). Assim, esses conceitos podem ser aplicados com outras ferramentas de configuração centralizadas, como o Red Hat Satellite.
Este artigo demonstra como fortalecer sua configuração de host gerenciado usando este esquema:
- Várias contas de serviço com login SSH nos hosts, criadas no AD/LDAP:
- Chave pública armazenada no AD/LDAP para login SSH com autenticação de chave pública
- Senha armazenada no AD/LDAP somente para sudo (é inválida para login SSH)
- Em qualquer host gerenciado:
- Só é possível acessar com conta de serviço a partir dos nós de execução do Ansible Automation Platform (qualquer outra tentativa de login será rejeitada)
- A escalação de privilégios com sudo exige uma senha para todas as contas de serviço

Configuração
Comece com uma implantação padrão não fortalecida, que normalmente inclui:
- Uma conta de serviço do Ansible Automation Platform
- Usada para login SSH nos hosts
- Criada no AD/LDAP com uma senha aleatória
- Em qualquer host:
- É possível acessar pela conta de serviço com senha
- É possível usar sudo pela conta de serviço sem a senha
Fortalecimento da configuração
Muitas empresas criam apenas uma conta de serviço para determinado uso. Nesse cenário do Ansible Automation Platform, é criada apenas uma conta de serviço do Ansible Automation Platform para se conectar a todos os hosts gerenciados. No entanto, se essa conta de serviço for comprometida, o invasor poderá acessar qualquer host gerenciado.
Essa é a primeira alteração necessária. A segurança é construída em camadas, sendo a criação de contas de serviço diferentes uma base essencial. Não existe uma abordagem universal para essa implementação. Revise sua arquitetura e decida o que faz mais sentido para sua infraestrutura. Confira algumas estratégias comuns para criar diferentes contas de serviço:
- Local ou data center: crie uma conta de serviço para cada data center
- Organização ou domínio: crie uma conta de serviço para cada organização ou domínio
- Sistema operacional: crie uma conta de serviço para cada tipo de host (Red Hat Enterprise Linux 7, 8, 9 e assim por diante)
- Uso: crie uma conta de serviço para cada uso de host da aplicação principal (banco de dados, Apache, Kafka)
- Segurança: crie uma conta de serviço para cada zona de segurança (DMZ, Internal Zone 1 etc.)
Crie um grupo comum para todas as contas de serviço. Isso facilita a permissão de uma conta de serviço e a negação de acesso a todas as outras.
Autenticação de chave pública SSH usando AD/LDAP
Baseie a autenticação SSH por contas de serviço em chaves públicas. As chaves públicas têm algumas desvantagens em relação às senhas, mas seu uso impede o ataque de força bruta ao login SSH.
Primeiro, adicione chaves SSH públicas de cada conta de serviço ao atributo altSecurityIdentities
no AD/LDAP.
Em cada host gerenciado, inclua ssh na lista de serviços em /etc/sssd/sssd.conf
:
services = nss, pam, ssh
Adicione os parâmetros ldap_user_extra_attrs
e ldap_user_ssh_public_key
à seção [domain]
de /etc/sssd/sssd.conf
:
[domain/example.com] ldap_user_extra_attrs = altSecurityIdentities ldap_user_ssh_public_key = altSecurityIdentities
A opção AuthorizedKeysCommandUser
especifica a conta de usuário usada para executar o AuthorizedKeysCommand
. É recomendável ter um usuário dedicado para isso, então adicione esses parâmetros SSH a /etc/ssh/sshd_config
:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser nobody
Para mais informações, leia Armazene as chaves SSH do usuário no Active Directory para autenticação SSH no Portal do Cliente Red Hat.
Negação da autenticação por senha
Adicione esses parâmetros SSH a /etc/ssh/sshd_config
em todos os hosts gerenciados para negar o uso da autenticação por senha SSH (<Service Account> substitua
Match User <Service Account> PasswordAuthentication no Match all
Exigência de senha para sudo
Para sudo, solicite a senha para a conta de serviço. Para fazer isso, crie um novo arquivo com nome para o grupo de contas de serviço em /etc/sudoers.d
e adicione esta linha:
%<Service Account Group> ALL=(ALL:ALL) ALL
Por exemplo, se o nome do grupo for aapsas
:
$ cat /etc/sudoers.d/aapsas %appsas ALL=(ALL:ALL) ALL
Segundo as práticas recomendadas de segurança, é melhor adicionar apenas alguns comandos permitidos específicos para executar o sudo. Porém, isso não é possível com o Ansible Automation Platform. Para hosts gerenciados, o Ansible Automation Platform se comunica com as máquinas de destino (geralmente usando SSH) para copiar e executar um script Python.
Permissão para conexões de nós de execução autorizados do Ansible Automation Platform
A configuração de fortalecimento final é permitir conexões SSH para uma conta de serviço proveniente somente de nós de execução do Ansible Automation Platform ou LOCAL
(para sudo). Para fazer essa implementação, adicione uma linha em /etc/security/access.conf. A primeira linha permite conexões do Ansible Automation Platform e LOCAL, enquanto a outra proíbe outras contas de serviço.
+: <Service Account> : <AAP Execution Nodes IPS> LOCAL -: <Service Account Group> : ALL
Automação de toda a configuração
Este artigo mostrou as etapas necessárias para fortalecer seus hosts gerenciados para fazer login SSH. Porém, como você está usando o Ansible Automation Platform, não é necessário fazer tudo manualmente. Todas as etapas de configuração abordadas são facilmente automatizadas usando o módulo de template. Crie templates para os arquivos de configuração /etc/security/access.conf
, /etc/sssd/sssd.conf
e /etc/ssh/sshd_config
.
Você está alterando os parâmetros de segurança de conexão do host de destino. Portanto, tenha cuidado. Uma configuração incorreta pode levar o serviço sshd a falhar, permitir acesso indevido a usuários não autorizados, entre outros problemas. Verifique tudo antes de propagar as alterações.
Não basta configurar apenas uma vez para ter boa segurança. Fortalecer a configuração de SSH para hosts gerenciados é uma etapa importante em um processo contínuo, e isso ficou mais fácil graças ao Ansible Automation Platform.
Sobre o autor
Alberto Gonzalez de Dios is a Senior Cloud consultant: Automation and OpenShift specialist. He joined Red Hat in 2018, and he is certified in Azure, AWS and Red Hat (Red Hat Certified Architect Level II).
Mais como este
Navegue por canal
Automação
Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes
Inteligência artificial
Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente
Nuvem híbrida aberta
Veja como construímos um futuro mais flexível com a nuvem híbrida
Segurança
Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias
Edge computing
Saiba quais são as atualizações nas plataformas que simplificam as operações na borda
Infraestrutura
Saiba o que há de mais recente na plataforma Linux empresarial líder mundial
Aplicações
Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações
Programas originais
Veja as histórias divertidas de criadores e líderes em tecnologia empresarial
Produtos
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Red Hat Cloud Services
- Veja todos os produtos
Ferramentas
- Treinamento e certificação
- Minha conta
- Suporte ao cliente
- Recursos para desenvolvedores
- Encontre um parceiro
- Red Hat Ecosystem Catalog
- Calculadora de valor Red Hat
- Documentação
Experimente, compre, venda
Comunicação
- Contate o setor de vendas
- Fale com o Atendimento ao Cliente
- Contate o setor de treinamento
- Redes sociais
Sobre a Red Hat
A Red Hat é a líder mundial em soluções empresariais open source como Linux, nuvem, containers e Kubernetes. Fornecemos soluções robustas que facilitam o trabalho em diversas plataformas e ambientes, do datacenter principal até a borda da rede.
Selecione um idioma
Red Hat legal and privacy links
- Sobre a Red Hat
- Oportunidades de emprego
- Eventos
- Escritórios
- Fale com a Red Hat
- Blog da Red Hat
- Diversidade, equidade e inclusão
- Cool Stuff Store
- Red Hat Summit