Para criar este procedimento foi instalada a versão
Centos 5.0 64 bits em um servidor
VMware ESX 3.0 autenticando via
winbind, o software de Terminal Services
Free NX, um domínio com Windows Server 2003 usando o pam_mount para montar os compartilhamentos e o pam_listfile para controlar os usuários que tem acesso ao servidor. Não foram aplicadas atualizações no CentOS, não testei se funciona com as atualizações.
Como pré-requisito para começar é preciso instalar um CentOS 5.0, desabilitar o firewall e o SELinux.
Instalando o Winbind para permitir o acesso ao CentOS por usuários do domínio
1. Depois de instalado, logar como root. Entrar na console gráfica da máquina.
2. Executar o
system-config-network e trocar o nome da máquina colocando seu nome definitivo.
3. Executar o
system-config-authentication.
3.1. Ticar a opção para usar o winbind.
3.1.1. Preencher na tela Configurações do Winbind:
- Domínio Winbind: dominio
- Modelo de Segurança: ads
- Reino do Winbind ADS: dominio.teste
- Controladores de Domínio Winbind: servidor.dominio.teste
- Template Shell: /bin/bash
3.2. Clicar na aba Autenticação e ticar em Ativar Suporte Winbind.
4. Partindo do princípio que a máquina não será um servidor samba e só usará o Winbind, alterar o /etc/samba/smb.conf conforme o arquivo abaixo, alterando os parâmetros necessários nas linhas 2, 8, 9 e 14:
[global]
workgroup = dominio
server string = Servidor Terminal Services
security = ads
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
password server = servidor.dominio.teste
realm = DOMINIO.TESTE
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash
winbind use default domain = true
wins server = 10.0.0.1
5. Alterar o /etc/krb5.conf conforme abaixo, alterando os parâmetros nas linhas 6, 12, 13, 14, 15, 18 e 19:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMINIO.TESTE
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[realms]
DOMINIO.TESTE = {
kdc = servidor.dominio.teste:88
admin_server = servidor.dominio.teste:749
default_domain = dominio.teste
}
[domain_realm]
.dominio.teste = DOMINIO.TESTE
dominio.teste = DOMINIO.TESTE
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
6. Alterar /etc/resolv.conf, caso já não esteja conforme abaixo, alterando o ip do servidor de dns na primeira linha:
nameserver 10.0.0.1
search dominio.teste
domain dominio.teste
7. Executar o comando "net ads join -S servidor -U administrator" e informar a senha para adicionar a máquina ao domínio.
8. Executar o comando "net user -U administrator" e informar a senha para verificar se o Winbind está funcionado. Se estiver, deverão ser retornados os usuários do domínio.
9. Alterar o /etc/nsswitch.conf para:
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files wins dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus
10. Alterar o /etc/pam.d/system-auth, conforme abaixo:
#%PAM-1.0
auth required pam_listfile.so item=user sense=allow file=/etc/system_users onerr=fail
auth required pam_env.so
auth required pam_mount.so
auth sufficient pam_winbind.so use_first_pass
auth sufficient pam_unix.so use_first_pass likeauth nullok
auth required pam_deny.so
account required pam_unix.so
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password sufficient pam_unix.so nullok md5 shadow use_authtok
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_mount.so
11. A alteração na linha 2 do /etc/pam.d/system-auth especifica o nome do arquivo que conterá os usuários que podem logar no servidor, colocar um usuário em cada linha sem a informação do domínio, não esquecendo do root. NÃO ESQUEÇA DE ADICIONAR O ROOT SENÃO ELE NÃO CONSEGUIRÁ MAIS LOGAR NA MÁQUINA!!!
12. O nome do arquivo neste caso é o /etc/system_users, o arquivo não existe e será preciso criá-lo.
13. As alterações das linhas 4 e 15 do /etc/pam.d/system-auth serão para a montagem automática de compartilhamento Windows que veremos a seguir.
14. O arquivo /etc/pam.d/system-auth padrão do CentOS é diferente deste e pelos vários testes que eu fiz impedia que qualquer usuário local acessasse o servidor. Esta é uma versão modificada do arquivo que tenho no meu desktop com Gentoo.