Número limite de usuários simultâneos que mudam para a conta root?

5

Isto é para o Ubuntu 14.04 e o Centos 7.

Eu preciso limitar o número de usuários ativamente em execução como root. Ou seja, logado como root no CLI.

Basicamente, eu quero apenas um usuário por vez para poder executar comandos como root. O objetivo aqui é auditar.

Eu olhei para a definição de limites em /etc/security/limits.conf, mas o módulo pam_limits.so só parece afetar os logins. Ou faça o login de shells. Não tenho certeza. Mas quaisquer que sejam os detalhes, ele faz impedir que um usuário faça SSH para uma caixa mais de uma vez, mas não impede que mais de um usuário se torne root através de "sudo su". Assim, definir o limits.conf ainda pode permitir que mais de um usuário esteja logado como root por vez.

Aqui está a linha limits.conf que eu tentei que limita isso:

root            hard    maxlogins            1

Em seguida, tentei limitar os usuários no grupo @admins. Imaginei que esses usuários são os únicos autorizados a sudo su para root (com base nas regras personalizadas de sudo que temos em vigor).

@admins            hard    maxlogins            1

Isso parece fazer o que eu quero, mas parece desajeitado / errado. Chame isso de intuição - não entendo muito bem o que considero errado a respeito disso.

Finalmente, "Por quê?" Por que eu tenho esse requisito?

Estamos tentando implementar controles para atender ao requisito do PCI-DSS 3.1 8.5 "Não usar IDs, senhas ou outros métodos de autenticação de grupo, compartilhados ou genéricos" - ênfase no "compartilhado". Em um ambiente Windows, você apenas concede aos usuários autorização para fazer qualquer coisa e ninguém compartilha a conta de administrador principal. Ambientes Linux são projetados de tal forma que, para algumas coisas, você realmente deseja estar logado como root. Deve haver uma maneira compatível com PCI para resolver esse problema em um ambiente Linux.

    
por JDS 06.01.2016 / 22:38

1 resposta

2

Isso resolve meu problema: Registre todos os comandos executados pelos administradores nos servidores de produção

Resumo

1) Instale o auditd

2) audite o execve syscall com estas regras em audit.rules

-a exit,always -F arch=b64 -F euid=0 -S execve
-a exit,always -F arch=b32 -F euid=0 -S execve

3) Adicione audit=1 ao grub.conf

Exemplos para Centos e Ubuntu:

#Centos
grep audit=1  /etc/default/grub || \
( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg )

#ubuntu
grep audit=1  /etc/default/grub || \
( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
/usr/sbin/update-grub )

4) Coloque esta linha nestes arquivos /etc/pam.d/{login,kdm,sshd}

session  required                pam_loginuid.so

(incluí este resumo, pois a vinculação a soluções é contra a maneira de falha do servidor)

    
por 14.01.2016 / 21:35