quinta-feira, 17 de janeiro de 2008

Ubuntu autenticando no AD

Para começar, temos que configurar o arquivos hosts a fim de haver comunicação correta entre o host e o Servidor do AD, senão haverá um erro na hora de entrar no domínio.

# vim /etc/hosts

127.0.0.1 nome_da_máquina.oseudominio.com nome_da_máquina

Primeiro instale alguns pacotes necessários:

# apt-get install krb5-user libpam-krb5 krb5-config libkrb53 libkadm55

Servidores Kerberos para seu realm: --> (o nome do servidor AD)
Servidor administrativo para seu realm Kerberos:
--> (o nome do servidor AD)

Para sincronizar o horário do seu pc com o servidor de AD faça:

# vi /etc/default/ntpdate
NTPSERVERS="servidorAD.oseudominio.com.br"
# additional options for ntpdate
NTPOPTIONS="-u"

Vamos instalar os serviços samba e winbind.
# apt-get install samba smbfs smbclient libpam-mount winbind

Edit o smb.conf deixando-o assim:

[global]
workgroup = OSEUDOMINIO
netbios name = DESKTOP
realm = OSEUDOMINIO.COM.BR
password server = X.X.X.X (Ip do servidor AD)
server string = Minha estação
security = ADS
template homedir = /home/%U
allow trusted domains = No
template shell = /bin/bash
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind separator = /
winbind use default domain = Yes
winbind enum users = Yes
winbind enum groups = Yes
winbind nested groups = Yes
domain master = no
local master = no
preferred master = no
os level = 0

* Os valores uid e gid de idmap e winbind, devem ser o mesmo valor que está no servidor.

Altere o arquivo nsswitch.conf, acrescentando a opção winbind

# vim /etc/nsswitch.conf
passwd: compat winbind
shadow: compat winbind
group: compat winbind

Agora coloque a máquina no domínio com o seguinte comando

# net rpc join member -U admin

Se retornar algum erro você pode tentar o comando

# net rpc join -S HOST_SERVIDOR -w DOMINIO_SERVIDOR -U admin

* admin é o usuário root que eu configurei no servidor
* HOST_SERVIDOR é o nome do host do servidor samba pdc/ldap
* DOMINIO_SERVIDOR é o nome do domínio da sua rede
Será pedido uma senha, informe a senha do administrador do domínio
A resposta deve ser algo como

Joined domain OSEUDOMINO."

Reinicie o samba e o winbind

# invoke-rc.d samba restart
# invoke-rc.d winbind restart

Para certicificar que os dois estão funcionando

# ps -A | grep -i smb

Deve retornar algo como:

6730 ? 00:00:00 smbd
6735 ? 00:00:00 smbd

No caso do winbind

# ps -A | grep -i win
6979 ? 00:00:00 winbindd
6980 ? 00:00:00 winbindd

Verifique o log para ver se apresenta algum erro

# tail /var/log/syslog

Se estive tudo ok, você pode digitar os camandos abaixo para ver os usuários e grupos do servidor, respectivamente

# wbinfo -u
# wbinfo -g

ou ainda :

# getent passwd USUARIO_SERVIDOR
# getent group GRUPO_SERVIDOR

Correndo tudo bem, vamos à configuração do PAM, edite os seguintes arquivos
deixando apenas a configuração abaixo. Não esqueça de fazer um backup deste arquivos
antes de alterá-los.

no arquivo /etc/pam.d/common-auth altere para:

auth required pam_env.so
auth required pam_group.so
auth sufficient pam_unix.so nullok_secure likeauth
auth required pam_winbind.so use_first_pass
auth required pam_krb5.so nullok_secure use_authtok
no arquivo /etc/pam.d/common-account altere para:

account requisite pam_unix.so
account sufficient pam_localuser.so
account required pam_winbind.so use_first_pass

no arquivo /etc/pam.d/common-session, acrescente:

session optional pam_mkhomedir.so umask=0077 skel=/etc/skel
session required pam_limits.so
session required pam_unix.so
session required pam_winbind.so use_first_pass
session optional pam_umask.so

no arquivo /etc/pam.d/common-password, acrescente:

password sufficient pam_winbind.so
password requisite pam_pwcheck.so nullok cracklib
password required pam_unix.so use_authtok nullok

no arquivo /etc/pam.d/gdm, acrescente:

@include common-pammount

no arquivo /etc/pam.d/login acrescente:

@include common-pammount
@include common-authpara executar o sudo no arquivo /etc/pam.d/sudo acrescente:
auth include common-auth
account include common-account
password include common-password
session include common-sessionpara logar na proteção de tela no arquivo /etc/pam.d/gnome-screensaver acrescente
@include common-auth

no arquivo /etc/security/pam_mount.conf, acrescente:

volume * smbfs 192.168.2.115 CPD /media/CPD uid=&,iocharset=utf8,codepage=cp850,dmask=0700 - -

* a última linha está dizendo que vai montar o compartilhamento "temp" em /media/temp

no arquivo /etc/secutiry/group.conf, acrescente:

*; *;*;Al0000-2400;floppy, video, cdrom, audio, dialout, disk, games, cdrecording, plugdev, lp, powerdev, dip, fuse,
Para que os seu usuário do domínio tenham acesso ao comando sudo, crie um grupo (Ex: UnixAdmins) e acrescente essas informações com o seguinte comando:
#visudo

%UnixAdmins ALL=(ALL) ALL

getent passwd


getent group


chown –R ‘administrator:Domain Users’ /home/data

vi /etc/fstab


# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/mapper/fileserver-root / ext3 defaults,errors=remount-ro 0 1
/dev/sda1 /boot ext3 defaults 0 2
/dev/mapper/fileserver-home /home ext3 acl,defaults 0 2
/dev/mapper/fileserver-tmp /tmp ext3 defaults 0 2
/dev/mapper/fileserver-usr /usr ext3 defaults 0 2
/dev/mapper/fileserver-var /var ext3 defaults 0 2
/dev/mapper/fileserver-swap_1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Pronto, agora basta reiniciar o X e você estára autenticando no servidor, montando seus compartilhamentos e ainda não terá problemas de permissão dos grupos como audio, vídeo, cd-rom e etc. OBS: o grupo fuse deve ser colocado depois de ter sido instalado o suporte a NTFS

Nenhum comentário: