Autenticar Red Hat no Active Directory
Autor: Edson Cardoso Ribeiro Junior | Publicado: 2012-06-08T09:57:00-07:00

Essa eu vou traduzir ao pé da letra, com pequenas adições:


Ambiente testado: RHEL 5 e 6, CentOS 5 e 6, Oracle Linux 5 e 6, Windows 2003 e Windows 2008.



O que queremos:




Autenticar o RHEL no Active Directory via Winbind e Kerberos
Permitir acesso local e remoto ao SSH para membros de um grupo específico (linuxadmins)
Permitir que os membros do grupo linuxadmins utilizem o sudo
Criação automática do diretório $HOME do usuário no primeiro login, via pam_mkhomedir
UID/GID mapeados no Active Directory
Possibilidade de usuários locais acessarem o servidor em caso de indisponibilidade do AD


Instalar os pacotes necessários e habilitar o Winbind no boot:




# yum install samba-common pam_krb5 sudo authconfig# chkconfig winbind on




IMPORTANTE : antes de continuarmos, precisamos ter certeza de que o comando &nbsp;“hostname -f” retorne um FQDN, O SUBDOMÍNIO DEVE SER IGUAL AO DOMÍNIO DO AD:



# hostname -fsrv.intranet.example.org




Habilitar autenticação:



# authconfig--disablecache--enablewinbind--enablewinbindauth--smbsecurity=ads--smbworkgroup=EXAMPLE--smbrealm=INTRANET.EXAMPLE.ORG--enablewinbindusedefaultdomain--winbindtemplateshell=/bin/bash--enablekrb5--krb5realm=INTRANET.EXAMPLE.ORG--enablekrb5kdcdns--enablekrb5realmdns--enablelocauthorize--enablemkhomedir--enablepamaccess--updateall




Dica: utilizar o authconfig-tui facilita o entendimento das opções listadas.



O Winbind deve reiniciar sozinho. Caso não:&nbsp;



# service winbind restart



O comando authconfig modificará alguns arquivos: /etc/samba/smb.conf, /etc/pam.d/system-auth, /etc/nsswitch.conf, etc.

Por padrão, UID/GID são armazenados localmente e podem diferir de um sistema para outro.

Para que nossos servidores tenham sempre os mesmos UID/GID do Active Directory, temos que mapeá-los no Active Directory, com a seguinte modificação de /etc/samba/smb.conf :


De :

workgroup = EXAMPLErealm = INTRANET.EXAMPLE.ORGsecurity = adsidmap uid = 16777216-33554431idmap gid = 16777216-33554431template homedir = /home/%Utemplate shell = /bin/bashwinbind use default domain = truewinbind offline logon = false

Para :

workgroup = EXAMPLErealm = INTRANET.EXAMPLE.ORGsecurity = adsidmap domains = EXAMPLEidmap config EXAMPLE:backend = rididmap config EXAMPLE:base_rid = 500idmap config EXAMPLE:range = 500-1000000#idmap uid = 16777216-33554431#idmap gid = 16777216-33554431template homedir = /home/%Utemplate shell = /bin/bashwinbind use default domain = truewinbind offline logon = false



Agora, para permitirmos o acesso aos usuários do grupo linuxadmin, devemos editar:

Para RHEL5.x : /etc/pam.d/system-authPara RHEL6.x : /etc/pam.d/password-auth

Temos que modificar também o umask padrão para a criação do diretório $HOME do usuário.
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so user ingroup linuxadmin debug
auth        requisite     pam_succeed_if.so uid &gt;= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        sufficient    pam_winbind.so use_first_pass
auth        required      pam_deny.so

account     required      pam_access.so
account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid &lt; 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so



Reiniciar Winbind :

# service winbind restart

Inserir a máquina no domínio. Nesse exemplo o usuário user01 possui permissão de admin.

# net ads join -U user01user01's password:Using short domain name -- exampleJoined 'SRV' to realm 'INTRANET.EXAMPLE.ORG'

Reiniciar Winbind novamente:

# service winbind restart

Checar se funcionar, listando grupos do Active Directory:

# wbinfo -g

Permitir que os usuários do grupo linuxadmin usem o sudo:

# echo "%linuxadmin ALL=(ALL) ALL" &gt;&gt; /etc/sudoers

Testar a autenticação usando uma conta do AD (que esteja no grupo linuxadmin) e utilizar o sudo para tornar-se superusuário :

$ ssh user01@srv.intranet.example.org

user01@srv.intranet.example.org's password:Creating directory '/home/user01'.[user01@srv ~]$ sudo su -[sudo] password for user01:[root@srv ~]#

Comados úteis:
# wbinfo -n user05
S-1-5-21-x-x-x-1129 User (1)

# getent passwd user05
user05:*:1129:519:John Doe:/home/example/user05:/bin/bash

# getent group linuxadmin
linuxadmin:*:7579:user01,user02,user03,user04

# wbinfo -u
# wbinfo -g

# wbinfo -D EXAMPLE
Name              : EXAMPLE
Alt_Name          : intranet.example.org
SID               : S-1-5-21-x-x-x
Active Directory  : Yes
Native            : Yes
Primary           : Yes
Sequence          : -1


Fontes:&nbsp;

http://blog.wains.be/2011/04/11/authenticate-linux-red-hat-with-microsoft-active-directory/


http://lanestechblog.blogspot.com/2010/11/ad-authentication-with-rhel-6.htmlhttp://conigliaro.org/2008/12/19/active-directory-authentication-with-winbind-on-red-hat-linux/