[2] Comentário enviado por
araujo_silva em 20/02/2009 - 20:22h:
noss12
Você o mais difícil, que é autenticar o cliente Linux no LDAP, vamos então analisar a autenticação no samba.
1º O servidor Samba PDC possui uma configuração que é comum aos usuários Windows e Linux:
[globals]
workgroup = organizacao
netbios name = servidor
domain master = yes
logon script = netlogon.bat
logon home = \\%U\.profiles
logon path = \\%L\profiles\%U
logon drive = j:
security = user
encrypt passwords = yes
os level = 100
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
hosts allow = 127.0.0.0/8 $rede
obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
template homedir = /home/%U
template shell = /bin/bash
[netlogon]
comment = Servico de logon
path = /var/samba/netlogon
guest ok = yes
browseable = no
[profiles]
path = /var/samba/profiles
writable = yes
browseable = no
create mask = 0600
directory mask = 0700
[home]
browseable = no
read only = no
2° Devemos destacar os aspectos de que as diretivas de autenticação e domínio devem estar configuradas. Os compartilhamentos "netlogon" e "profiles" deverão estar configurados para tornar possível a autenticação dos usuários no domínio.
As permissões devem ser atribuídas a esses diretórios, e um usuário root do samba deverá ser criado no servidor de domínio:
$ mkdir -p /var/samba/profiles
$ chmod 1777 /var/samba/profiles
$ mkdir -p /var/samba/netlogon
$ chmod 775 /var/samba/netlogon $ smbpasswd -a root
3º As máquinas devem ser adicionadas ao domínio, obrigatoriamente. O que pode ser feito de forma interativa, por meio de um script:
sh maquinas.sh
#!/bin/bash
groupadd maquinas
maquinas= " ibm1 ibm2 intel1 intel2 "
for i in $maquinas;do
useradd -s /bin/false -d /dev/null -g maquinas $i$
passwd -l $i$
smbpasswd -a -m $i
done
4º Terminada a inclusão das contas das máquinas no servidor é preciso configurar as máquinas clientes: configurar o smb.conf (domain), o nsswitch.conf e os módulos da infraestrutura PAM.
[globals]
workgroup = empresa
netbios name = servidor
domain master = yes
logon script = netlogon.bat
logon home = \\%U\.profiles
logon path = \\%L\profiles\%U
logon drive = j:
security = domain
encrypt passwords = yes
os level = 33
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template homedir = /home/%U
template shell = /bin/bash
[netlogon]
comment = Servico de logon
path = /var/samba/netlogon
guest ok = yes
browseable = no
[profiles]
path = /var/samba/profiles
writable = yes
browseable = no
create mask = 0600
directory mask = 0700
[home]
browseable = no
read only = no
/etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
(Nesse arquivo o fundamental é que existam as associações entre passwd, group e shadow com a ferramenta winbind que irá buscar os clientes no domínio)
/etc/pam.d/login
auth requisite pam_securetty.so
auth requisite pam_nologin.so
auth required pam_unix.so
auth sufficient pam_winbind.so use_first_pass
auth optional pam_mount.so
account required pam_unix.so
account sufficient pam_winbind.so use_first_pass
session optional pam_mount.so
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_limits.so
session optional pam_motd.so
password required pam_unix.so
password sufficient pam_winbind.so use_first_pass
/etc/pam.d/kdm ou /etc/pam.d/gnome-session # Conforme se utilize kde ou gnome
auth requisite pam_nologin.so
auth required pam_unix.so
auth sufficient pam_winbind.so use_first_pass
auth optional pam_mount.so
account required pam_unix.so
account sufficient pam_winbind.so use_first_pass
session optional pam_mount.so
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session required pam_limits.so
session optional pam_motd.so
password required pam_unix.so
password sufficient pam_winbind.so use_first_pass
(A configuração desse arquivo permite o login em terminais dos clientes do domínio e dos clientes locais. Para autenticação no console é necessário alterar kdm ou gdm. Para maiores de talhes consulte o artigo publicado aqui no VOL a esse respeito).
Junte o cliente ao domínio e teste se os usuários do domínio conseguem autenticar através do terminal.
# net rpc testjoin
# net rpc join -S servidor -U administrador
# wbinfo -u
# wbinfo -g
# getent passwd
# getent group
(Não esqueça de verificar se a máquina cliente e o servidor se encontram no mesmo segmento de rede e no mesmo WORKGROUP)
Confira os logs:
# tail /var/log/auth.log
# tail /var/log/samba/log.smbd
# tail /var/log/samba/log.winbind
# tail /var/log/syslog
Abraços e Boa Sorte !!!