Existe uma maneira de configurar o sudo para não precisar procurar nomes de grupos / ou acelerar a resolução de nomes de grupos sssd?

1

Eu tenho um grande número de hosts Linux conectados usando sssd a um domínio do Windows Active Directory (AD) para pesquisa de usuário / grupo. Isso funciona bem, exceto por um problema; sudo .

Pelo que consegui encontrar em meus testes sempre que você executa um sudo command sudo tenta resolver todos os nomes de todos os grupos em que o usuário está. Como sssd apenas por padrão armazena em cache o gid e tem que fazer uma pesquisa lenta do nome (supondo que algo não tenha causado sssd para armazenar em cache os nomes dos grupos recentemente no host) isso pode fazer com que o comando sudo pause por 45 segundos para contas em muitos grupos antes ele irá solicitar ao usuário sua senha para continuar com o comando sudo .

Do meu teste, a resolução do nome do grupo ocorre independentemente de haver ou não sudo regras que se aplicam ao usuário que faz uso de seus grupos. Eu testei a alteração dos valores de group_source em sudo.conf , mas isso não parece ter muito efeito.

Remover todos os nossos usuários da maioria dos grupos em que eles estão não é realmente uma opção (decisão de segurança de infraestrutura sobre a qual não tenho controle), então estou tentando encontrar uma maneira de parar sudo pausando por muito tempo enquanto todos os IDs do grupo são pesquisados.

A única solução que consegui até agora foi executar um cronjob a cada 15min para fazer algo como getent group fazer com que sssd mantenha os nomes dos grupos armazenados em cache na memória continuamente, mas isso parece uma correção hacky. Então, espero que alguém na net tenha uma solução melhor para acelerar sudo nessa situação?

    
por Jason Alavaliant 03.06.2016 / 02:16

1 resposta

1

Sugiro que você defina a opção ignore_group_members como true , ou crie uma ligação simbólica para o cache do tmpfs ou aguarde a versão original do 1.14.

A razão pela qual a resolução do grupo é lenta é que salvar o grupo na atualização de cache após a expiração do cache sempre grava o objeto de grupo completo no cache em disco, mesmo que nada tenha sido alterado. Em 1.14, estamos mudando a lógica do cache para atualizar somente o cache se algo realmente mudou, veja Um Quatorze Melhorias no Desempenho .

A configuração de ignore_group_members faria os grupos parecerem vazios, o que reduz seu tamanho e acelera os tempos de salvamento do cache. Observe que isso não afetaria a funcionalidade sudo , porque sudo usa initgroups() para ver de quais grupos o usuário é membro, não getent group e initgroups.

Eu também escrevi um blog postar no sssd de ajuste de desempenho há algum tempo, embora seja focado no caso do servidor IPA, muitos pontos se aplicam à configuração sssd-ad também.

    
por 03.06.2016 / 09:59