Join di una macchina RHEL a un dominio Active Directory Windows

Transcript

Join di una macchina RHEL a un dominio Active Directory Windows
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
HowTo in salsa cookbook
Join di una macchina RHEL a un dominio Active Directory
Windows e uso dei dischi condivisi dal dominio
Questo documento descrive, in salsa cookbook, come realizzare il join di una macchina Red Hat
Linux Server versione 6 ad un dominio Active Directory realizzato con Windows server 2003 o
2008.
Segue una seconda parte che descrive come poter montare i dischi esposti da Windows ed usarli
in scrittura e lettura.
A seconda dei requisiti una volta fatto il join sarà anche possibile usare le utenze del dominio
Windows per fare le autenticazioni sulla macchina Linux.
Essendo un testo in salsa cookbook non c’è spiegazione o approfondimento tecnico. Si aggiunge
una piccola sezione di troubleshooting, sempre in forma cookbook.
Sommario
1. Premessa...........................................................................................................................................2
2. Join di una macchia RHEL a Dominio Windows 2K3/2K8.............................................................2
2.1. Verifica firewall........................................................................................................................2
2.2. Configurazione del DNS...........................................................................................................3
2.3. Configurazione client NTP.......................................................................................................3
2.4. Configurazione di Kerberos......................................................................................................3
2.5. Configurazione di samba..........................................................................................................4
2.6. Join del server Linux.................................................................................................................5
2.7. Troubleshooting........................................................................................................................5
3. Autenticazione centralizzata SSO.....................................................................................................6
3.1. Personalizzazioni dei file di configurazione.............................................................................6
3.2. Troubleshooting........................................................................................................................9
4. Usare condivisioni esposte da Windows server 2K3/2K8..............................................................10
4.1. Montaggio manuale temporaneo............................................................................................10
4.2. Montaggio permanente...........................................................................................................10
4.3. Troubleshooting......................................................................................................................10
5. Conclusione....................................................................................................................................11
6. Appendici........................................................................................................................................12
6.1. How to join Red Hat Enterprise Linux 6 to Microsoft Windows Active Directory 2003
domain using Kerberos and samba/winbind method ?..................................................................12
6.2. Join RHEL 6 with Active Directory 2003 R2 Using Winbind................................................16
6.3. Risorse utili.............................................................................................................................18
1/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
1. Premessa
Prima di passare alla parte operativa è bene raccogliere i dati del dominio dal sistemista che
gestisce il dominio. In questa guida si ipotizza la seguente configurazione:
Hostname del server Windows: win1.dom.it
IP del server Windows: 10.0.0.1
DNS 1: 10.0.0.3
DNS 2: 10.0.0.4
Server NTP: 10.0.0.5
Nome Dominio: dom.it
Nome Gruppo Windows: domit
Hostname del server Linux: redhat100.dom.it
IP del server Linux: 10.0.0.100
Disco contiviso da Windows: testsharing
NOTA 1: il server NTP deve essere quello usato dal server Windows.
NOTA 2: le indicazioni qui riportate potrebbe non dare successo. Esistono alcune varianti in Linux
e in Windows server, ma, sopratutto, dipende dalle configurazioni del dominio Windows. Windows
facilita molto l’amministratore nel configurare il server, ma non rende subito visibili alcuni
parametri di configurazione. Potrebbe essere necessaria una analisi più dettagliata della
configurazione del server da parte dall’amministratore.
NOTA 3: il nome del server Linux deve essere già registrato nel DNS del dominio Windows.
2. Join di una macchia RHEL a Dominio Windows 2K3/2K8
Per poter fare il join a un dominio Windows dobbiamo intervenire sul nostro server Linux prima
configurando adeguatamente il DNS, poi la sincronizzazione dell’orario in sintonia con la
configurazione del PDC del dominio Windows, configureremo poi Kerberos ed in fine faremo il
join.
2.1. Verifica firewall
Prima di procedere oltre è bene controllare che non sia attivo un firewall in Linux. Infatti
potrebbe verificarsi che le corrette configurazioni diano risultati fallimentare perché le
comunicazioni sono interrotte dal firewall. Finita tutta la configurazione e certi del buon
funzionamento di tutto si può ripristinare il firewall facendo attenzione a lasciare aperte le varie
porte necessarie al funzionamento di tutto.
Per disattivare il firewall:
service iptables off
chkconfig iptables off
2/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
2.2. Configurazione del DNS
1. Collegarsi al server Red Hat come root ed editare il file /etc/resolv.conf
2. inserire le seguenti righe:
search dom.it
nameserver 10.0.0.3
nameserver 10.0.0.4
2.3. Configurazione client NTP
1. Verificare l’installazione del demone NTP ed installarlo se non presente:
yum install ntp atpdate
2. editare /etc/ntp.conf e aggiungere il server NTP del dominio (nota: se ci sono altri server
inseriti, quello usato dal dominio deve essere il primo):
server 10.0.0.5
3. riavviamo il demone
service ntpd restart
4. impostiamo il demone come servizio di defualt all’avvio della macchina
chkconfig ntpd on
NOTA: se la differenza di orario e data del server Linux rispetto a quella fornita dal server NTP
impostata dovesse essere molto grande (ore o giorni) l’orario e la data corretta del server Linux
devono essere impostati manualmente.
2.4. Configurazione di Kerberos
1. Verificare l’installazione dei pacchetti kerberos client ed installarli se non presenti:
yum install krb5-workstation
2. editare il file /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOM.IT
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
3/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
renew_lifetime = 7d
forwardable = true
[realms]
DOM.IT = {
kdc = win1.dom.it
admin_server = 10.0.0.1
}
[domain_realm]
.dom.it = DOM.IT
dom.it = DOM.IT
3. testiamo la configurazione chiedendo la creazione di un ticket e successivamente chiediamo
di vedere l’elenco dei ticket ricevuti. Per far questo dobbiamo usare un utente qualsiasi
presente e attivo nel dominio:
kinit [email protected]
klist
2.5. Configurazione di samba
1. Editare il file /etc/samba/smb.conf. Le righe riportate sono quelle fondamentali per il join:
workgroup = DOMIT
password server = 10.0.0.1
realm = DOM.IT
security = ads
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /sbin/nologin
winbind use default domain = true
winbind offline logon = false
winbind enum users = Yes
winbind enum groups = Yes
client use spnego = Yes
encrypt passwords = yes
restrict anonymous = 2
winbind refresh tickets = yes
4/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
preferred master = no
server string = Server RedHat
passdb backend = tdbsam
2. Avviare il demone winbind
service winbind start
3. Rendere il demone un servizio di default all’avvio:
chkconfig winbind on
NOTA: ai fini del join e dell’SSO (descritta qui di seguito) è necessario il solo demone winbind.
Winbind è una parte di SAMBA e si occupa esclusivamente del dialogo con i server Windows. Per
far erogare servizi Windows anche alla nostra macchina Linux dobbiamo lanciare i demoni smbd e
nmbd e completare adeguatamente la configurazione di SAMBA.
2.6. Join del server Linux
1. Prima di dare l’istruzione accertarsi di avere username e password di un amministratore del
server Windows abilitato ad accettare i join. Inoltre assicurasi di essere root sul server
Linux. Per evidenziare eventuali errori si può aggiungere al comando qui di seguito
l’opzione “--verbose”:
net ads join -S win1.dom.it -U Administrator
2. verifichiamo il buon risultato del join tramite il test base e la richiesta della lista degli utenti
e dei gruppi del dominio:
net ads testjoin
wbinfo -u
wbinfo -g
Arrivati a questo punto la nostra macchina è a tutti gli effetti un membro del dominio Windows.
A seconda di quello che desideriamo possiamo sfruttare il server Windows per diversi vantaggi. I
capitoli 3 e 4 illustrano due possibilità:
•
SSO, ovvero l'autenticazione usando la lista utenti presente sul server Windows
•
usare gli sharing esposti dal server Windows.
2.7. Troubleshooting
1. Per verificare se il firewall è attivo, per spegnerlo e impostarlo come servizio standard o
meno collegarsi come utente root.
Per vedere se il firewall è attivo e vedere le regole attive:
service iptables status
Per disattivare al volo il firewall
service iptables stop
Per attivare al volo il firewall
service iptables start
5/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
Per rendere permanente la disattivazione del firewall
chkconfig iptables off
service iptables stop
Per rendere permanente l’attivazione del firewall
chkconfig iptables on
service iptables start
2. Per verificare se il DNS funziona regolarmente si può usare dig. Questo programma stampa
sul monitor la risposta del DNS permettendo di capire la correttezza della configurazione e
l’eventuale errore. Esempio
dig www.libero.it
3. L’ora della macchina Linux è sbagliata e ntp non la riallinea.
Il demone ntp riallinea l’ora della macchina solo se la differenza è contenuta. Qualora ci
siano ore di differenza, o giorni, o mesi o anni bisogna reimpostare manualmente data e ora.
Successivamente ntp manterrà sincronizzata l’ora. Ipotizzando che vogliamo impostare data
e ora al 1 agosto 2012, ore 9:00 procedere, come root, con il seguente comando. Il primo
imposta date e ora del sistema, il comando seguente imposta data e ora del BIOS:
service ntpd stop
date -u -s "20120801 09:00:00"
hwclock -u --set --date="1/8/12 9:00:00"
service ntpd start
4. La configurazione di SAMBA ed il suo corretto funzionamento può risultare complicato per
l’estrema flessibilità che ha. Per avere documentazione ed eventuale supporto rimando ai siti
di samba (http://www.samba.org) e di RedHat (http://www.redhat.com). Con RedHat è
opportuno avere una sottoscrizione attiva per poter accedere anche alla parte FAQ,
knoledgebase e supporto diretto.
Un programma estremamente utile per verificare subito la correttezza formale della
configurazione, ad avere riscontro dello stato di configurazione, ed, eventualmente, il dump
della configurazione seza tutte le righe di commento è “testparm”. Come utente root dare il
comando:
testparm
3. Autenticazione centralizzata SSO
In questo capitolo vediamo come configurare il Server Red Hat per usare i nomi utente e le
password presenti nel server Windows per autenticarsi anche sul Server Linux. A seconda di quello
che si vuole ottenere si dovranno inserire specifiche righe di configurazione in SAMBA, Apache,
ecc...
L'utente root è sempre locale. Inoltre dobbiamo creare anche un secondo utente locale per i login
remoti e/o assumere l'identità di root se non lo configuriamo come nologin.
3.1. Personalizzazioni dei file di configurazione
1. Editare /etc/samba/smb.conf e modificare la riga “template shell = /sbin/nologin” in
6/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
template shell = /bin/bash
2. editare il file /etc/nsswitch.conf
passwd:
files winbind
shadow:
files winbind
group:
files winbind
hosts:
files 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
3. editare il file /etc/pam.d/system-auth-ac
auth
required
pam_env.so
auth
sufficient pam_unix.so nullok try_first_pass
auth
requisite
auth
sufficient pam_winbind.so use_first_pass
auth
required
pam_succeed_if.so uid >= 500 quiet
pam_deny.so
account
required
pam_unix.so broken_shadow
account
sufficient
pam_localuser.so
account
sufficient
pam_succeed_if.so uid < 500 quiet
account
[default=bad success=ok user_unknown=ignore] pam_winbind.so
7/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
account
required
pam_permit.so
password
requisite
pam_cracklib.so try_first_pass retry=3 type=
password
sufficient pam_unix.so sha512 shadow nullok try_first_pass 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
[success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session
required
pam_unix.so
4. editiamo il file/etc/pam.d/passwd
auth
include
account
system-auth
include
password substack
system-auth
system-auth
-password optional pam_gnome_keyring.so
5. editiamo il file /etc/pam.d/password-auth-ac
auth
required
pam_env.so
auth
sufficient pam_unix.so nullok try_first_pass
auth
requisite
auth
sufficient pam_winbind.so use_first_pass
auth
required
pam_succeed_if.so uid >= 500 quiet
pam_deny.so
account
required
pam_unix.so broken_shadow
account
sufficient
pam_localuser.so
account
sufficient
pam_succeed_if.so uid < 500 quiet
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 sha512 shadow nullok try_first_pass use_authtok
password
sufficient pam_winbind.so use_authtok
password
required
pam_deny.so
8/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
session
optional
pam_keyinit.so revoke
session
required
pam_limits.so
session
[success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session
required
pam_unix.so
A questo punto è possibile loggarsi sulla nostra macchina Linux con un utente presente sul
dominio, ma non presente sul nostro server.
NOTA: tutte le configurazioni sopre riportate possono essere fatte automaticamente tramite l’utility
testuale:
authconfig-tui
o tramite l’utility grafica:
system-config-authentication
Personalmente sconsiglio l’uso di questi tool per l’operazione di join se non si è sicuri dei
parametri del dominio o se, dopo il tentativo di join, i test danno risultato negativo. Questi due
programmi mascherano i messaggi di output dell’operazione di join. Se c’è qualcosa di sbagliato ed
il join non può essere completato con successo i messaggi di output notificano subito questa
situazione e danno precise indicazione su dove si trovano gli errori.
3.2. Troubleshooting
Ci sono molti potenziali problemi in cui si potrebbe incappare. La questione è molto variegata
soprattutto in riferimento alla nostra specifica configurazione. Qui di seguito do qualche dritta
semplicemente per verificare il join (requisito NECESSARIO per far funzionare l’autenticazione
SSO), gli utenti e gruppi del dominio Windows e sull’errore della home al login con un utente del
dominio.
1. Abbiamo fatto il join, ma non siamo sicuri che sia riuscito. Per testare la validità del join da
utente root dare l’istruzione
net ads jointest
Se otteniamo una risposta d’errore e ripetiamo il join potrebbe essere necessario che
l’amministratore del dominio Windows rimuova la nostra macchina Linux dal dominio.
2. Per verificare l’appartenenza al dominio e per usare gli utenti ed i gruppi del dominio
Windows possiamo usare getent. Se non specifichiamo un nome utente o un nome gruppo ci
restituisce la lista completa degli utenti e dei gruppi disponibili. Rimando alla
documentazione di SAMBA, per l’istruzione “net”, per manipolazioni avanzate come il
caching degli utenti/gruppi in locale.
getent passwd
getent group
getent passwd utente.dominio
getent group gruppo.dominio
3. Completato con successo il join e la configurazione dell’SSO potremmo trovarci con un
errore come il seguente dopo aver fatto il login con un utente del dominio Windows:
9/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
Could not chdir to home directory /home/DOMIT/stefano.bortolato: No such file or
directory
Questo significa che non esiste la directory dell’utente. Bisogna procedere per configurare
SAMBA e Linux che crei automaticamente la home degli utenti e, manualmente, creare la
directory del gruppo Windows. Nel caso di questa guida si tratta di creare /home/DOMIT.
Per il come fare rimando alla documentazione di SAMBA (www.samba.org) e di RedHat
(www.redhat.com).
4. Usare condivisioni esposte da Windows server 2K3/2K8
Una volta completato il join al dominio è possibile usare i dischi condivisi dal server Windows.
4.1. Montaggio manuale temporaneo
Per montare manualmente un disco condiviso dal server è sufficiente:
1. loggarsi al server Linux come utente root o diventare l’utente root tramite il comando “su -”
2. dare il comando
mount -t cifs //win1.dom.it/testsharing /mnt -o rw,nosuid,nodev,user=nome.utente,domain=DOM.IT
Con questa istruzione verrà chiesta la password dell’utente.
4.2. Montaggio permanente
Per rendere persistenti le impostazioni del mount e rendere automatico l’operazione dobbiamo:
1. loggarsi a linux come utente root o diventare root tramite il comando “su -”
2. creare il file /etc/samba/credentials (nota: sostituire "nome.utente" w "password" con nomi e
password reali!):
user=nome.utente
pass=password
domain=DOM.IT
3. cambiare i permessi al file
chmod 600 /etc/samba/credentials
4. editare il file /etc/fstab e aggiungere la seguente riga
//win1.dom.it/testsharing /mnt cifs rw,nosuid,nodev,credentials=/etc/samba/credentials 0 0
A questo punto per montare subito il disco dare l’istruzione:
mount /mnt
Successivamente ad ogni reboot ci ritroveremo il disco automaticamente montato.
4.3. Troubleshooting
1. È possibile che a un tentativo di montaggio di un disco ci venga restituito il seguente errore:
mount error(13): Permission denied
Il significato è chiaro, ma le cause possono essere molteplici. Per individuare l’errore è utile
10/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
adottare le seguenti pratiche:
1. verificare, lato server Windows, i log. Potrebbe essere scritta la causa, ma in alcune
situazioni non viene tracciato nulla
2. se abbiamo dato il comando manualmente verificare la correttezza sintattica di mount, in
particolare:
aver messo una corretta username, password e dominio
aver usato le virgole (,) come separatori dopo il “- o” e non gli spazi ( )
aver scritto correttamente il nome della condivisione Windows
che la condivisione Windows sia effettivamente accessibile per l’utente ed il computer
da cui facciamo la richiesta
3. che il join precedentemente fatto del computer da cui facciamo la richiesta di montaggio
sia effettivamente valido (usare, come root, il comando “net ads jointest”).
5. Conclusione
Questa guida in miniatura spiega cosa fare riportando i comandi da dare al computer senza
alcuna spiegazione tecnica.
L'argomento affrontato è una configurazione avanzata, articolata e complessa. Offre delle grandi
opportunità ed è estremamente flessibile.
Tutto ciò significa:
•
è consigliabile avere esperienza
•
è opportuno studiare le varie tecnologie coinvolte
•
è possibile che l'applicazione fedele di queste indicazioni diano risultati fallimentari.
La complessità e varietà delle situazioni reali non permette una esposizione esaustiva in poche
pagine e, soprattutto, realizzate con questo stile cookbook.
Avventurarsi seguendo questa guida, comunque, non è da sconsiderati, basta agire con prudenza.
In caso di successo è buono, a fine lavoro, approfondire la conoscenza su questa tecnologia. In caso
di fallimento si sa che serve un supplemento di indagine sul server/rete Windows e/o un
approfondimento tecnico sulle tecnologie coinvolte.
11/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
6. Appendici
Riporto due articoli della knowledge di Red Hat che illustrano parte delle procedure sopra
descritte. Essendo nella parte del sito accessibile dietro autenticazione li riporto per esteso qui di
seguito.
6.1. How to join Red Hat Enterprise Linux 6 to Microsoft Windows
Active Directory 2003 domain using Kerberos and samba/winbind
method ?
Da: https://access.redhat.com/knowledge/solutions/67432
Ultima modifica di Nirupama Karandikar il 05/07/12 - 06:44
Problema
• How to join Red Hat Enterprise Linux 5 to Microsoft Windows Active Directory 2003
domain using Kerberos and samba/winbind method ?
Ambiente
• Red Hat Enterprise Linux 6
• Microsoft Windows Active Directory 2003
• samba-client- 3.5.10-114.el6
• samba-common-3.5.10-114.el6
• samba-winbind-3.5.10-114.el6
• samba-winbind-clients-3.5.10-114.el6
• samba-winbind-krb5-locator-3.5.10-114.el6
• pam_krb5-2.3.11-1.el6.x86_64
• krb5-libs-1.9-9.el6_1.2.x86_64krb5-workstation-1.9-9.el6_1.2.x86_64
Risoluzione
Here are steps to join RHEL 6 system to Microsoft Windows Active Directory 2003 native
domain, including home directory integration. This document was written specifically for
Microsoft Windows 2003 AD domin. Authentication against Windows 2003 R2 /2008/2008 R2
requires different configuration.
1. Need to install 'Services For UNIX' component in Microsoft Windows AD 2003 in case
"imap backend = ad" is used in smb.conf file. For all other idmap backend this is step is optional.
2. To configure kerberos for AD 2003 authentication. Here is sample configuration to
/etc/krb5.conf file :
# cat /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24000
12/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
EXAMPLE.COM = {
kdc = server1.example.com
default_domain = example.directory
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
Where example.com is Microsoft Windows Active Directory Domain name and and
server1.example.com is FQDN of Windows 2003 AD Domain Controller.
3. Here is the sample configuration to configure smb.conf for Microsoft Windows AD 2003
Authentication using samba/winbind.
[global]
security = ADS
workgroup = EXAMPLE.COM
realm = EXAMPLE.COM
password server = server1.example.com
Because this document is tailored specifically for Windows 2003 AD services, it will be
necessary to also include the following two lines in the [global] section of the smb.conf file:
client use spnego = yes
server signing = auto
server string = Samba Server
In addition to the above, the following additional options may also be included. The first three
references to winbind entries enable getent on the Samba server to provide the correct responses
when called. If desired, idmap entries can also be included in order to specify user and group IDs
for AD accounts. Finally, below specified /bin/bash as the template shell for AD users. If users do
not require a shell access specify /bin/false as the template shell for AD users .
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind separator = +
template shell = /bin/bash
For idmap tdb backend
13/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
idmap backend = tdb
idmap uid = 1000000-1999999
idmap gid = 1000000-1999999
For idmap AD backend
idmap config CORP : backend = ad
idmap config CORP : range = 1000-999999
Where 'CORP' is AD domain short name.
For Windows 2003 R2, Windows 2008 and Windows 2008 R2 above add following parameters
in smb.conf file. The Windows 2003 R2 uses Identity Management for UNIX Components
instead of SFU.
idmap config CORP : schema_mode = rfc2307
winbind nss info = rfc2307
It is also necessary to include winbind as options within the passwd, shadow and group lines
within /etc/nsswitch.conf:
passwd:
shadow:
group:
files winbind
files winbind
files winbind
4. Running "authconfig-tui"command line utility will do all above configuration automatcially,
including proper PAM configuratiom in /etc/pam.d/system-auth file. For example :
# authconfig-tui
Under "User Information" section select "Use Winbind" and under "Authentication" section
Select "Use Kerberos Authentication" => Click Next.
Click Next and specify Kerberos Settings
REALM:<kerberos REALM>
KDC: <FQDN/ip address of Microsoft Windows Active Directory controller>
Admin Server: <FQDN/ip address of Microsoft Windows Active Directory controller>
Click on "Use DNS to resolve hosts to realms" and "Use DNS to locate KDCs for realms" if you
want
DNS
server
to
resolve the AD server and locate the appropriate kdc server
For example :
Realm: EXAMPLE.COM
KDC: server1.example.com:88
Admin Server: server1.example.com:749
[ ] Use DNS to resolve hosts to realms
[ ] Use DNS to locate KDCs for realms
Under Winbind Settings, specify Microsoft Windows Active Directory Domian Controller
information, for example :
Security Model: ads
Domain: example
Domain Controller: server1.example.com
ADS Realm : EXAMPLE.COM
Template Shell: /bin/bash
14/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
Click ok. Do not use "Join Domain" button from authconfig-tui utility.
5. The kerberos is a time sensitive protocol. As kerberos is used for authentication here.
Before joining the domain, please ensure that system time between the AD server and the
RHEL 5 server are synchronised. If the AD server is running as an NTP server, set up NTP to point
at the DC. One method would be by using the redhat-config-date GUI:
system-config-date
check the synchronisation has worked with the following command on the RHEL 5 server. Note
the asterix at the start of the bottom line of the file. This denotes that the syncronisation is complete:
[root@dhcp-103 samba]# ntpq -c peers
remote
refid
st t when poll reach
delay
offset jitter
==================================================
*dhcp-107.winlab 86.77.84.80
2 u 108 512 377
2.834
-7.901 12.137
6. If smb and winbind are currently running, stop both services before proceeding:
# service smb stop
# service winbind stop
1. Run following command to join RHEL 5 system to Microsoft Windows AD domain. To
use an account other than Administrator, ensure that the user has the appropriate
permissions to join systems to the domain.
# net ads join -U Administrator
8. Configuring Home Directories:
Home directory configuration needs to be defined within /etc/samba/smb.conf. In the example
below, we have used '%D+%S' for valid user definition. If this syntax is to be employed, ensure
that the 'winbind separator = +' line is included in the [global] section (see above). %D defines
'domain' and %S defines 'share'.
[homes]
comment = AD User Home Directories
browseable = no
writable = yes
valid users = %D+%S
9. It is also necessary to create the top level directory in which each of the AD user's home
directories will be mounted. In our example, that would be as follows.
# mkdir /home/EXAMPLE
so an AD user 'test' would have the following home directory:
/home/EXAMPLE/test
10. Here is sample /etc/pam.d/system-auth file.
#%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 uid >= 500 quiet
auth
sufficient
pam\_krb5.so use\_first\_pass
15/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
auth
account
account
account
account
password
password
password
password
session
session
session
session
required
pam\_deny.so
required
pam\_unix.so broken\_shadow
sufficient
pam\_succeed\_if.so uid < 500 quiet
[default=bad success=ok user\_unknown=ignore] pam\_krb5.so
required
pam\_permit.so
requisite
pam\_cracklib.so try\_first\_pass retry=3
sufficient
pam\_unix.so md5 shadow nullok try\_first\_pass use\_authtok
sufficient
required
optional
required
optional
pam\_krb5.so use\_authtok
pam\_deny.so
pam\_keyinit.so revoke
pam\_limits.so
pam\_mkhomedir.so
required
optional
pam\_unix.so
pam\_krb5.so
[success=1 default=ignore] pam\_succeed\_if.so service in crond quiet use\_uid
session
session
11. Now from RHEL 5 system. Check output following commands and see whether AD
users/groups are listed their.
#
#
#
#
wbinfo
wbinfo
getent
getent
-u
-g
passwd
group
12. Try to login with any AD user credentials from this RHEL 6 system.
Prodotto(s)
Red Hat Enterprise Linux
Componente
krb5
samba
6.2. Join RHEL 6 with Active Directory 2003 R2 Using Winbind
Da: https://access.redhat.com/knowledge/solutions/43065
Ultima modifica di Himanshu Bansal il 07/03/12 - 16:39
Problema
• Join Red Hat Enterprise Linux to Active Directory 2003 R2 Using Winbind.
Ambiente
• Red Hat Enterprise Linux 5/6
• Windows 2003 R2 (SP2) with active directory configured
Risoluzione
• In order to join Red Hat Enterprise Linux 6 with active directory, install following
packages in your system:
# yum install libtdb samba-client samba-common samba-winbind
samba-winbind-clients
• After installing above packages, execute following steps:
1. Modify /etc/samba/smb.conf [global]
workgroup =
16/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
realm =
log level = 2
syslog = 0
preferred master = no
server string = Linux Test Machine
security = ads
encrypt passwords = yes
log file = /var/log/samba/%m
max log size = 50
printcap name = cups
printing = cups
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = yes
winbind nested groups = Yes
idmap uid = 600-20000
idmap gid = 600-20000
template shell = /bin/bash
password server =
2. Join to domain
# net ads join -U Administrator
3. Start winbind
# service winbind start
4. Verify
# wbinfo -t
checks whether the trust secret via RPC calls succeeded
# wbinfo -u (will list AD users)
# wbinfo -g (will list AD groups)
5. Run "authconfig-tui" and select Winbind for "User Information" and
"Authentication".
6. Click on "Next" and check all the entries and then click on "OK".
7. You can see AD users and groups with these commands # getent passwd test
test::600:602:test:/home/PNQ/kery:/bin/bash
# id test
uid=600(test) gid=602(domain users)
groups=602(domain users),603(group1)
# getent group "domain users"
domain users::602:
Prodotto(s)
Red Hat Enterprise Linux
Componente
samba
17/18
/home/stefbort/Progetti/Articoli/HowTo_JoinADeMountDeiWindowsSharing/HowTo_JoinADeMountDeiWindowsSharing.odt
Join di una macchina RHEL a un dominio Active Directory Windows e uso dei dischi condivisi dal dominio
6.3. Risorse utili
Segnalo dei link che possono essere utili per trovare risposte immediate a problemi topici e una
guida che offre un’ottima descrizione a 360° sulla questione di integrazione di sistemi basati su
SAMBA con il mondo Windows Active Directory:
www.samba.org, Samba - opening windows to a wider world
www.redhat.com, Red Hat | The World's Open Source Leader
docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/chConfiguring_Authentication.html, Chapter 10. Configuring Authentication
www.linuxtopia.org/online_books/rhel6/rhel_6_deployment/rhel_6_deployment_chAuthentication_Configuration.html, Chapter 8. Authentication Configuration
www.gpaterno.com/pubblicazioni/single-sign-on-con-kerberos-e-ldap, Single Sign-On con
Kerberos e LDAP
18/18