Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Permitindo a usuários Windows-ADS a logar em uma máquina Linux
Colaboração: Henrique Cicuto Machado
Data de Publicação: 17 de Novembro de 2005
Os procedimentos abaixo descritos forem testados e estão atualmente em operação em máquinas rodando a distribuição Linux Fedora Core 3 em uma rede Active Directory Windows 2000.
No final do documento existem algumas observações extras sobre algumas seções.
Introdução
Apesar da grande maioria das empresas que adotaram, em qualquer aspecto, o uso do Linux atualmente se utilizarem de servidores Linux e estações Windows (senão uma rede completamente Linux), existem aquelas (a minha, por exemplo) que resolveram adotar máquinas Linux dentro de uma rede Windows.
Esse foi meu primeiro grande projeto trabalhando com Linux, e digo que ter que fazer isso sozinho não foi nada fácil. Então resolvi escrever esse pequeno tutorial sobre como implementar esse tipo de solução. Espero que possa ajudar alguém.
Instalação
A instalação é bem simples, sendo necessários apenas os seguintes pacotes:
- Suíte SAMBA (samba, samba-common, samba-client)
- PAM (Pluggable Authentication Modules)
- Kerberos (krb5-libs e krb5-workstation)
Configuração
Agora vamos iniciar a configuração dos arquivos. Segue abaixo uma breve legenda para os exemplos:
- DC01 = É o meu controlador de domínio da rede Windows. IP: 192.168.0.2
- WS01 = É a minha estação de trabalho Linux
- KDOMAIN.SP = É o meu domínio Windows
- Admin = É o meu usuário Administrador da rede Windows
1) Kerberos (krb5.conf): Altere as seções 'realms' e 'domain_realms' para ficarem similares as abaixo.
[realms]
KDOMAIN.SP = {
kdc = 192.168.0.2
default_domain = kdomain.sp
}
[domain_realms]
.kdomain.sp = KDOMAIN.SP
kdomain.sp = KDOMAIN.SP
Cheque a configuração obtendo um ticket do Kerberos. Execute numa linha de comando:
kinit Admin@KDOMAIN.SP
Password for Admin@KDOMAIN.SP:
Entre com a senha e pressione Enter. Se não aparecer nenhuma mensagem quer dizer que funcionou. Cheque o ticket com o comando 'klist'. A saída deve ser algo mais ou menos como abaixo:
Ticket cache: FILE:/tmp/krb5cc_10000_YwFfS0
Default principal: Admin@KDOMAIN.SP
Valid starting Expires Service principal
08/23/05 09:30:00 08/23/05 19:30:04 krbtgt/KDOMAIN.SP@KDOMAIN.SP
renew until 08/24/05 09:30:00
Kerberos 4 ticket cache: /tmp/tkt10000
klist: You have no tickets cached
2) SAMBA (smb.conf): A configuração do SAMBA pode variar muito de rede para rede, mas as opções necessárias estão listadas aqui.
[global]
netbios name = WS01
server string = WS01
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
realm = KDOMAIN.SP
workgroup = KDOMAIN
security = ads
password server = *
encrypt passwords = yes
winbind separator = +
winbind use default domain = yes
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap uid = 10000-60000
idmap gid = 10000-60000
template shell = /bin/bash
template homedir = /home/%U
Agora execute o comando 'net' para adicionar a máquina Linux como parte da rede Windows:
net ads join
A saída do comando será algo como assim:
[2005/08/23 09:51:33, 0] libads/ldap.c:ads_add_machine_acct(1405)
Using short domain name -- KDOMAIN
Joined 'WS01' to realm 'KDOMAIN.SP'
Agora suba os daemons do SAMBA (smbd e nmbd) e do Winbind (winbindd).
Cheque a comunicação do Winbind através dos comandos 'wbinfo -u', 'wbinfo -g' e 'wbinfo -t'. O primeiro deverá listar os usuários do Windows, o segundo os grupos e o terceiro deverá devolver a mensagem 'checking the trust secret via RPC calls succeeded'.
3) PAM: No diretório do pam, nós iremos alterar o system-auth. Uma observação importante aqui: No Fedora, esse arquivo afeta o login pelos terminais texto e pelo KDM. Apesar de ter tentando, eu admito que não consegui fazer essa alteração para fazê-la funcionar no GDM ou no XDM.
Abaixo é uma cópia do meu system-auth.
Outra observação importante: Quando eu fui configurar esse arquivo, percebi que havia sido criado, automaticamente, um system-auth-winbind. Caso ele exista, basta renomeá-lo para system-auth.
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth required /lib/security/$ISA/pam_deny.so
account sufficient /lib/security/pam_winbind.so
account required /lib/security/$ISA/pam_unix.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account required /lib/security/$ISA/pam_permit.so
password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5shadow
password sufficient /lib/security/pam_winbind.so use_authtok
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
4) Nsswitch (/etc/nsswitch.conf): Apenas acrescente nas linhas 'passwd', 'shadow' e 'group' a entrada para o winbind:
passwd: files winbind
shadow: files winbind
group: files winbind
Agora é só correr para o abraço. Tente efetuar o login com seu usuário da rede Windows.
Observações:
- Caso opte por compilar os pacotes a partir do source, não esqueça de ativar, no SAMBA, os suportes a 'ldap, 'ads', 'pam', 'krb5' e 'winbind' (smbmount também é recomendável).
- É possível que, ao tentar obter o ticket do Kerberos ou ao adicionar a máquina no domínio, surja um erro sobre 'Clock skew too great'. Isso se refere a diferença muito grande de horário entre o Controlador de Dominio e a estação Linux. Acerte o relógio e o calendário caso isso ocorra.
- Por favor, quaisquer dúvidas ou criticas me falem. Meu e-mail é <henrique cicuto (a) gmail com>.
Veja a relação completa dos artigos de Henrique Cicuto Machado
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.00/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(431 votos)