Sudo ldap com FQDN em vez de hostname curto

2

No meu local de trabalho, estamos usando o sudo-ldap para fornecer privilégios de sudo em toda a rede a partir de uma loja centralizada. Fazemos isso com base no nome de usuário e no nome do host em que eles estão usando o sudo, por exemplo:

sudoHost: foo1
sudoUser: user1

Eu quero ser capaz de combinar o atributo sudoHost com base no FQDN em vez do nome abreviado do host, para que possamos usar subdomínios DNS para diferentes ambientes - por exemplo, use web1.dev.example.com no ambiente de desenvolvimento e web1.test.example.com no ambiente de teste e assim por diante. No entanto, neste momento, o sudoHost corresponde apenas ao nome abreviado do host.

i.e. isso funciona:

sudoHost: foo1

Mas isso não funciona:

sudoHost: foo1.dev.example.com

O problema de ter apenas o nome do host abreviado ( foo1 ) é que ele corresponde a todos os ambientes todos - foo1.dev , foo1.test , foo1.staging etc. Eu quero que seja mais granular do que isso.

É possível obter o sudo-ldap para consultar com base no FQDN (conforme retornado por hostname -f ) em vez de apenas no nome do host abreviado?

Eu pesquisei sem sucesso. Não consigo encontrar nada na página man ou online; o mais próximo que fica quando se fala do atributo sudoHost é:

sudoHost

A host name, IP address, IP network, or host netgroup (prefixed with a '+'). The special value ALL will match any host.

Nenhuma menção de FQDN vs. hostname curto. Não houve menção de FQDN vs. hostname curto no Configurando o ldap.conf seção também.

O host em questão está executando o Ubuntu 10.04.

    
por Ben Williams 17.08.2011 / 01:09

1 resposta

1

Dado que o sudo em si só combina com as mesmas coisas que o atributo sudoHost menciona, estou inclinado a pensar que sem patch sudo intrusivo você não conseguirá o que procura.

Existe uma possibilidade - você está configurando o nome do host da máquina para o nome abreviado ou o FQDN? Se você estiver fazendo o primeiro, tente o último e veja se o sudo muda para reconhecer o FQDN (você provavelmente perderá a capacidade de combinar com o nome curto, no entanto). Honestamente, eu muito prefiro definir meu nome de host para um FQDN, acho que ele fornece muito mais valor em uma configuração de vários domínios como a que você descreve (que, a propósito, eu o aplaudo por fazendo, e eu desejo que todos façam isso).

Se eu fosse arriscar um palpite (educado) de por que você não pode (e honestamente, não deveria) corresponder com base no FQDN (ou, para ser mais específico, os dados fornecidos por hostname -f ) de hostname, eu diria que é porque esse valor ( hostname -f ) é obtido através do NSS - significando /etc/hosts ou DNS (e o sudo não sabe qual). Então, de repente, você tem uma vulnerabilidade de segurança em que, se um invasor puder manipular os resultados do DNS, ele terá sua configuração sudo restrita ao host pwned.

Como uma opção menos útil, mas ainda potencialmente valiosa (se a definição de FQDNs como o nome do host não for possível), alterne para o uso de endereços IP. É menos óbvio e um pouco trabalhoso de manutenção se você precisar renumerar, mas a menos que você esteja editando seus registros LDAP manualmente, sua sudo-config-maintenance-tool thingy pode pelo menos esconder a fealdade resolvendo nomes / endereços e dando-lhe nomes para brincar e sudo endereços IP.

    
por 17.08.2011 / 01:21