Para oferecer suporte ao True SSO em áreas de trabalho Ubuntu/Debian, integre a máquina virtual (VM) base a um domínio Active Directory (AD) usando as soluções Samba e Winbind.
Para integrar uma VM Ubuntu/Debian a um domínio do AD, use o procedimento a seguir.
Alguns exemplos no procedimento usam valores de espaço reservado para representar entidades em sua configuração de rede, como o nome do host da sua VM. Substitua os valores do espaço reservado por informações específicas para sua configuração, conforme descrito na tabela a seguir.
Valor do espaço reservado |
Descrição |
dns_IP_ADDRESS |
Endereço IP do seu servidor de nomes DNS |
meudomínio.com |
Nome DNS do seu domínio do AD |
MEUDOMÍNIO.COM |
Nome DNS do seu domínio do AD, em letras maiúsculas |
meuhost |
Nome do host da sua VM Ubuntu/Debian |
MEUDOMÍNIO |
Nome DNS do grupo de trabalho ou domínio NT que inclui o servidor Samba, em letras maiúsculas |
ads-hostname |
Nome do host do seu servidor AD |
usuário-administrador |
Nome de usuário do administrador de domínio do AD |
Pré-requisitos
Verifique se:
- O servidor AD pode ser resolvido pelo DNS na VM.
- O Network Time Protocol (NTP) está configurado na VM.
Procedimento
- Na VM Ubuntu/Debian, instale os pacotes samba e winbind.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- Defina as configurações de Autenticação Kerberos.
- Se a janela para configurações de Autenticação Kerberos não aparecer no seu sistema, execute o seguinte comando para exibi-la.
sudo dpkg-reconfigure krb5-config
- Em Realm Kerberos versão 5 padrão (Default Kerberos version 5 realm), digite o nome DNS do seu domínio do AD usando todas as letras maiúsculas.
Por exemplo, se o nome de domínio do AD for
meudominio.com, digite
MEUDOMAIN.COM.
- Para servidores Kerberos para seu domínio (Kerberos servers for your realm), digite o nome do host do seu servidor AD (representado como ads_hostname nos exemplos ao longo deste procedimento).
- Em Servidor administrativo para seu domínio Kerberos (Administrative server for your Kerberos realm), digite o nome do host do seu servidor AD novamente.
- Atualize a configuração do PAM.
- Abra a página de configuração do PAM.
- Selecione Criar diretório pessoal ao fazer login (Create home directory on login) e, em seguida, selecione Ok.
- Edite o arquivo de configuração /etc/nsswitch.conf, conforme mostrado no exemplo a seguir.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
- (Opcional) Se o sistema detectar automaticamente o servidor DNS correto, ignore esta etapa e prossiga para a próxima. Se o sistema não conseguir detectar o servidor DNS correto, conclua esta etapa para definir o servidor DNS manualmente.
Para garantir que o arquivo
resolv.conf gerado automaticamente se refira ao seu domínio do AD como um domínio de pesquisa, edite as configurações do NetworkManager para a conexão do sistema. As subetapas a seguir fornecem as instruções de exemplo para um sistema Ubuntu 20.04.
- Abra o painel de controle do NetworkManager e navegue até as Configurações de IPv4 (IPv4 Settings) para a conexão do sistema. Em Método, selecione Somente endereços automáticos (DHCP). Na caixa de texto Servidores DNS (DNS servers), digite o endereço IP do seu servidor de nomes DNS (representado como dns_IP_ADDRESS nos exemplos ao longo deste procedimento). Em seguida, clique em Salvar (Save).
- Edite o arquivo /etc/dhcp/dhclient.conf conforme mostrado no exemplo a seguir.
supersede domain-name "mydomain.com";
prepend domain-name-servers dns_IP_ADDRESS;
- Edite o arquivo /etc/systemd/resolved.conf conforme mostrado no exemplo a seguir.
DNS=dns_IP_ADDRESS
Domains="mydomain.com"
Observação: Um novo adaptador de rede virtual é adicionado quando uma nova área de trabalho virtual de clonagem instantânea é criada. Quando você adiciona o adaptador de rede a uma área de trabalho virtual clonada, o modelo de área de trabalho virtual limpa as configurações do adaptador de rede, como o servidor DNS. Para manter a configuração do servidor DNS ao adicionar um novo adaptador de rede, você deve especificar um servidor DNS para sua VM.
- Especifique o servidor DNS editando o arquivo de configuração /etc/resolv.conf, conforme mostrado no exemplo a seguir. Se um aviso for exibido, você poderá desconsiderar e continuar com as alterações.
nameserver dns_IP_ADDRESS
search mydomain.com
- Reinicie a VM e faça login novamente.
- Edite o arquivo de configuração /etc/hosts, conforme mostrado no exemplo a seguir.
127.0.0.1 localhost
127.0.1.1 myhost.mydomain.com myhost
- Edite o arquivo de configuração /etc/samba/smb.conf, conforme mostrado no exemplo a seguir.
[global]
security = ads
realm = MYDOMAIN.COM
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
- Reinicie o serviço smbd.
sudo systemctl restart smbd.service
- Edite o arquivo de configuração /etc/krb5.conf para que ele tenha conteúdo semelhante ao exemplo a seguir.
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
MYDOMAIN.COM = {
kdc = ads-hostname
admin_server = ads-hostname
}
[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
- Ingresse a VM Ubuntu/Debian no domínio AD.
- Inicie um tíquete Kerberos.
sudo kinit admin-user
Quando solicitado, digite sua senha de administrador.
- Verifique se o tíquete foi criado com êxito.
sudo klist
Esse comando retorna informações sobre o tíquete, incluindo a hora de início e a hora de expiração válidas.
- Crie um arquivo keytab Kerberos.
sudo net ads keytab create -U admin-user
- Ingresse no domínio do AD.
sudo net ads join -U admin-user
- Reinicie e verifique o serviço Winbind.
- Reinicie o serviço Winbind.
sudo systemctl restart winbind.service
- Para verificar o serviço Winbind, execute os comandos a seguir e verifique se eles retornam a saída correta.
- sudo wbinfo -u
- sudo wbinfo -g
- sudo getent passwd
- sudo getent group
- Reinicie a VM e faça login novamente.