Definindo hosts no arquivo sudoers

1

Eu quero editar meu arquivo sudoers para que os usuários tenham privilégios diferentes com base no local de onde estão fazendo login. Eu quero ter 3 locais diferentes: rede externa (internet), interna (lan local) e o console (usuário sentado na frente do computador). definir externo e interno seria algo como:

Host_Alias       PRIVNET         = 10.6.66.0/25, 10.6.67.128/28

Mas como eu defino o console?

Eu não quero que um usuário possa fazer alterações no firewall ou nos sudoers, por exemplo, se ele não estiver no local se algo der errado ou até mesmo se a conta dele estiver comprometida.

Eu só quero ter certeza de que o usuário está por perto quando fizer alterações críticas.

    
por Stulli 02.12.2009 / 13:58

2 respostas

2

A definição do host sudoers (e, portanto, Host_Alias) serve para definir a quais hosts essa entrada do arquivo sudoers se aplica. Em outras palavras, define quais direitos os usuários têm este host, e não de quais hosts eles têm esses direitos. (iirc)

Então, para encurtar a história, o que você quer fazer não pode ser feito com uma entrada sudoers.

    
por 02.12.2009 / 14:53
1

Se você puder fazer isso, eu acho que seria feito em algum lugar com o PAM (Pluggable Authentication Modules). Ou talvez a diretiva 'requiretty' do arquivo de suoders ( man sudoers ).

No entanto, acho que você pode querer mencionar seu objetivo. Isso não parece certo para mim de uma perspectiva de segurança. Acho que faria mais sentido ter contas diferentes com diferentes níveis de acesso e permitir que essas contas façam login de um determinado endereço IP. Então você tem dois níveis Macro de segurança, autenticação por senha e IP. O nível principal é a conta - eu acho que uma conta deve ser capaz de fazer as mesmas coisas, não importa de onde eles entraram.

Usar o arquivo sudoers para restringir comandos parece um pouco difícil de encontrar para mim, então eu só usaria isso como uma camada adicional de segurança para o que eu mencionei acima.

Então, no final, minha recomendação é:

  • Crie contas / grupos diferentes com o acesso que você quer, e dar-lhes acesso a esses comandos no arquivo suoders. A ideia é que existam contas 'externas (não-lan)' que podem nunca executar certos comandos e contas com privilégios que podem.
  • Use o PAM para controlar onde essas contas privilegiadas podem fazer login, aqui é um exemplo fazendo isso com ssh.
por 02.12.2009 / 14:09