Configure o SSSD (sudo e dyndns_update) com o realmd

4

Estou tentando juntar um Ubuntu 16.04 a um domínio do Windows (diretório ativo) usando o realmd + sssd. Basicamente eu estava seguindo este post que funcionou muito bem e eu estava capaz de se juntar ao meu servidor e poderia autenticar com sucesso como usuário do AD. No entanto, faltam duas partes na integração:

  1. Registrar o nome do host do servidor no DNS
  2. Use sssd-sudo para autorização do usuário

Registre o nome do host do servidor no DNS

Como mencionado, juntei-me com sucesso ao AD usando realm join --user=dpr MYDOMAIN.INT --install=/ :

root@ip-172-28-5-174 ~ # realm list
mydomain.int
  type: kerberos
  realm-name: MYDOMAIN.INT
  domain-name: mydomain.int
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin
  login-formats: %[email protected]
  login-policy: allow-realm-logins

No entanto, apesar da participação bem-sucedida, meu servidor não é conhecido pelas outras máquinas no domínio usando seu nome de host ip-172-28-5-174.mydomain.int . Eu encontrei esta documentação que menciona uma configuração dyndns_update no arquivo sssd.conf.

Como estou usando o reino. A configuração do sssd é gerada automaticamente, emitindo o comando de união. O arquivo de configuração gerado é assim:

[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam

[domain/mydomain.int]
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad

De alguma forma, preciso adicionar dyndns_update = True a esse arquivo gerado. Mas como?

Use sssd-sudo para autorização do usuário

Além disso, quero fazer o sssd ler minha configuração do sudo do AD. Eu acho que isso pode ser alcançado usando sssd-sudo mas isso precisa ser ativado / configurado no sssd. arquivo conf, adicionando sudo aos serviços sssd e use sudo_provider = ldap para meu domínio. Mais uma vez, não consigo descobrir como fazer isso com o reino.

Basicamente, quero que meu arquivo de configuração gerado tenha esta aparência:

[sssd]
domains = mydomain.int
config_file_version = 2
services = nss, pam, sudo

[domain/mydomain.int]
id_provider = ad
access_provider = ad
sudo_provider = ldap
ad_domain = mydomain.int
krb5_realm = MYDOMAIN.INT
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d

Alguma idéia de como isso pode ser alcançado?

    
por dpr 13.09.2016 / 13:25

2 respostas

1

Infelizmente não parece haver uma opção para adicionar parâmetros de configuração personalizados ao arquivo sssd.conf gerado pelo realmd.

Eu tive que ajustar a configuração gerada para conter minhas configurações necessárias após ingressar no domínio com realm join e reiniciar o sssd ( service restart sssd ) para que as configurações entrassem em vigor.

    
por 21.04.2017 / 10:26
4

Se você quiser que o Active Directory gerencie sudoers , precisará carregar um esquema especializado no AD e criar suas regras usando uma ferramenta como o ADSI Edit. Este passo a passo funcionou para mim no Ubuntu 14.04. Os destaques são:

  • Importar schema.ActiveDirectory
  • Crie regras seguindo a sudoers-ldap manpage
  • Atualize etc/nsswitch.conf para incluir sss entre as entradas na linha sudoers =
  • Atualize etc/sssd/sssd.conf para incluir:
    • sudo entre as entradas na linha services =
    • uma seção [sudo] vazia (não são necessárias configurações, mas Redhat afirma que isso aciona a configuração apropriada do suporte do sudo)
    • uma linha como sudo_provider = ad (documentos sssd no pagure.org que o provedor sudo de reivindicação é ativado por padrão para ldap, ad e ipa, então isso pode ser opcional)

Quando repito esse processo para 16.04 (ou seja, as mesmas regras do AD como 14.04), estou realmente tendo outros problemas. Aparentemente, isso é não incomum . É possível que haja um bug na versão do sudo incluída em 16.04.

  • Em princípio, a atualização manual para o mais recente deve resolver esse problema.
  • O pacote normal sudo (não sudo-ldap ) é o pacote certo se você quiser que o SSSD (e não sudo ) gerencie a conexão ldap. Especificamente, a instalação de sudo-ldap não gerou registros em sssd_sudo.log , enquanto o pacote regular sudo o fez.
  • Enquanto o sssd_sudo agora está exibindo Returning 2 rules for [<user>@<domain>] , sudo -l ainda está respondendo com Sorry, user <user>@<domain> may not run sudo on <host> , então pode haver outros problemas que precisam ser resolvidos.

Minha situação pode não ser típica, já que estou tendo problemas adicionais que não parecem ser comuns. Por exemplo, eu tive problemas executando realm join que foram resolvidos usando soluções alternativas de esta pergunta de falha de servidor .

Se você encontrou o seu caminho aqui devido a questões realmd / sssd / sudo em 16.04, aqui estão alguns outros problemas relatados que podem ser úteis (não necessariamente diretamente relacionados à questão do OP):

Estamos avaliando o upgrade para 16.04, então podemos colocar isso em segundo plano, mas esperamos que nosso trabalho de campo ajude os outros.

    
por 20.04.2017 / 22:06