Ingressar desktop GNU/Linux no domínio Active Directory do Windows Server 2008
O objetivo do artigo é mostrar como ingressar um desktop com as distribuições Debian, LMDB e Ubuntu 12.04 LTS no domínio Active Directory do Windows Server 2008. No artigo irei mostrar como fazer o trabalho usando o prompt de comando e entender qual é a finalidade de cada pré-requisito usado para este trabalho.
Parte 3: Configurando Samba, ingressando máquina no domínio e arquivo /etc/nsswitch.conf
Configurando o Samba
Antes de colocar a máquina no domínio, é necessário configurar o Samba para que seja possível à máquina ingressar no domínio. Toda configuração é feita no /etc/samba/smb.conf, o Winbind não precisa configurar pois o mesmo é um daemon usado pelo Samba.Edite o arquivo /etc/samba/smb.conf com Vim:
# vim /etc/samba/smb.conf
Inclua as seguintes linhas no arquivo "smb.conf", caso algumas dessas linhas já estejam dentro do arquivo, edite e deixa-as como está abaixo. O arquivo está bem comentado com explicações dos principais parâmetros:
[global]
security = ads # O modo de operação ADS faz com que o Samba se comporte como um membro (cliente) de um domínio Windows
realm= MISTOLI.NET # Informa o domínio que controlador de domínio Kerberos que será usado
workgroup = MISTOLI# Informa o grupo de trabalho, nesse caso informa o domínio
idmap uid = 10000-15000# Especifica o intervalo de IDs de usuários que serão mapeados para o sistema local, coloquei um intervalo de cinco mil, mas pode colocar menor ou maior número
idmap gid = 10000-15000# Especifica o intervalo de GIDs de grupos que serão mapeados para o sistema local
winbind enum users = yes# Permiti o winbind enumerar usuários
winbind enum groups = yes# Permiti o winbind enumerar grupos
template homedir = /home/%D/%U# Informa aonde será criado o diretório home de cada usuário após logar no sistema, o parâmetro %D informa o nome do domínio e %U o nome do usuário
template shell = /bin/bash# Informa qual shelll será atribuído ao usuário, você pode incluir /bin/false para impedir que o usuário faça uso do shell, mas irá ser usado por todos usuários do domínio
client use spnego = yes# Este parâmetro controla se smbclient irá usar negociação simples e protegido na autenticação, essa opção permite usar o Kerberos
winbind use default domain = yes# Parâmetro usado para não incluir o nome do domínio a ser usado junto ao nome do usuário no sistema, por exemplo: DOMINIO\usuário. Habilitando esse parâmetro, somente o nome do usuário será usado para identificar o mesmo
restrict anonymous = 2
winbind refresh tickets = yes # Este parâmetro é usado para controlar se o winbind deve atualizar os tickets do Kerberos usando o módulo pam_winbind
security = ads # O modo de operação ADS faz com que o Samba se comporte como um membro (cliente) de um domínio Windows
realm= MISTOLI.NET # Informa o domínio que controlador de domínio Kerberos que será usado
workgroup = MISTOLI# Informa o grupo de trabalho, nesse caso informa o domínio
idmap uid = 10000-15000# Especifica o intervalo de IDs de usuários que serão mapeados para o sistema local, coloquei um intervalo de cinco mil, mas pode colocar menor ou maior número
idmap gid = 10000-15000# Especifica o intervalo de GIDs de grupos que serão mapeados para o sistema local
winbind enum users = yes# Permiti o winbind enumerar usuários
winbind enum groups = yes# Permiti o winbind enumerar grupos
template homedir = /home/%D/%U# Informa aonde será criado o diretório home de cada usuário após logar no sistema, o parâmetro %D informa o nome do domínio e %U o nome do usuário
template shell = /bin/bash# Informa qual shelll será atribuído ao usuário, você pode incluir /bin/false para impedir que o usuário faça uso do shell, mas irá ser usado por todos usuários do domínio
client use spnego = yes# Este parâmetro controla se smbclient irá usar negociação simples e protegido na autenticação, essa opção permite usar o Kerberos
winbind use default domain = yes# Parâmetro usado para não incluir o nome do domínio a ser usado junto ao nome do usuário no sistema, por exemplo: DOMINIO\usuário. Habilitando esse parâmetro, somente o nome do usuário será usado para identificar o mesmo
restrict anonymous = 2
winbind refresh tickets = yes # Este parâmetro é usado para controlar se o winbind deve atualizar os tickets do Kerberos usando o módulo pam_winbind
Observe que nem todos os parâmetros são necessários para ingressar a máquina no domínio. Depois de editar, salve as alterações e reinicie os serviços do Samba e Winbind.
# service winbind restart
# service samba restart
No Ubuntu, reinicie da seguinte forma:
# service winbind restart
# restart smbd
# restart nmbd
Ingressando a máquina no domínio
Depois de configurar o Samba, é hora de ingressar a máquina no domínio com o comando net. Execute o comando abaixo como root:# net ads join -U Administrador
Veja que usei a opção "-U" no comando net, seguido do nome do usuário com permissão de ingressar máquinas no domínio, o usuário Administrador foi usado. Após a execução do comando, deverá retornar uma mensagem como que está abaixo:
Using short domain name - MISTOLI
Joined 'MINTVIRT' to realm 'MISTOLI.NET'
Agora, faça o teste e liste os grupos e usuários do domínio com o comando wbinfo. Para listar usuários execute:
# wbinfo -u
Para listar os grupos execute:
# wbinfo -g
Caso não retorne nenhum nome de usuário ou grupo, reinicie o Winbind.
Arquivo nsswitch.conf
Depois ingressar a máquina no domínio, vamos configurar o arquivo /etc/nsswitch.conf para que o sistema possa saber onde buscar informações de login dos usuários que estão se autenticando. É neste arquivo que iremos comunicar ao sistema que ele deve procurar nossas informações de login usando o Winbind.Edite o arquivo usando o Vim e deixando as linhas abaixo como demonstrado. Em seguida, salve as alterações:
# vim /etc/nsswitch.conf
Conteúdo alterado:
passwd: compat winbind
group: compat winbind
group: compat winbind
Veja que, como estamos lidando com usuários, grupos e senhas, apenas alteramos as linhas que correspondem aos mesmos, estamos informando ao sistema que ele deve procurar nossas informações de login usando o Winbind nas linhas:
- "passwd: compat" para senha
- "group: compat" para group