Linux i autentifikacija iz AD-a
AD – Active Directory
Dakle kako, sa što manje truda, povući sve moguće podatke sa AD-a korišćenjem CentOS 6U4.
Evo ga jedan dobar link, sa okvirnim objašnjenima.
S obzirom na data objašnjenja, ja sam se, kao i autor teksta, odlučila na Winbind opciju…..
1. Uneti AD server i DNS server (kod mene su to ista mašina) u /etc/hosts fajl :
10.10.10.19 ad.moj.domen
Tu se stavlja FQDN.
2. U /etc/resolv.conf staviti na prvo mesto AD+DNS server :
nameserver 10.10.10.19
Treba da se AD+DNS server pinguje po imenu :
# ping ad.moj.domen
PING ad.moj.domen (10.10.10.19) 56(84) bytes of data.
64 bytes from ad.moj.domen (10.10.10.19): icmp_seq=1 ttl=127 time=1.45 ms
3. Obavezno podesiti Linux i AD da se vremenski sinhronizuju prema istim NTP serverima. Windows je veoma osetljiv na vremenske disrepancije.
4. Podesiti YUM da radi (videti moj raniji post)
5. Instalirati Kerberos paket (krb5) i testirati njegov rad :
# rpm -qa|grep krb5
krb5-pkinit-openssl-1.10.3-10.el6.i686
krb5-appl-servers-1.0.1-7.el6_2.1.i686
krb5-libs-1.10.3-10.el6.i686
krb5-server-ldap-1.10.3-10.el6.i686
krb5-auth-dialog-0.13-3.el6.i686
krb5-workstation-1.10.3-10.el6.i686
krb5-devel-1.10.3-10.el6.i686
krb5-appl-clients-1.0.1-7.el6_2.1.i686
krb5-server-1.10.3-10.el6.i686
Nisam sigurna da su baš svi ovi paketi neophodni, ali bolje imati, nego nemati 😉
6. Izmeniti /etc/krb5.conf fajl :
[libdefaults]
allow_weak_crypto = true
ticket_lifetime = 600
default_realm = moj.domen
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc arcfour-hmac-md5 des-cbc-md5
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc arcfour-hmac-md5 des-cbc-md5
[realms]
moj.domen = {
kdc = 10.10.10.19
default_domain = moj.domen
}
[domain_realm]
.yourdomain = moj.domen
yourdomain = moj.domen
[kdc]
profile = /etc/krb5kdc/kdc.conf
[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.logog
Provera rada za Kerberos :
# kinit squid1@MOJ.DOMEN
Password for squid1@MOJ.DOMEN:
# <-- nema ispisa, tako i treba
# klist <-- ovime listamo upravo dodeljeni tiket
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: squid1@MOJ.DOMEN
Valid starting Expires Service principal
01/27/14 15:03:56 01/27/14 15:13:56 krbtgt/MOJ.DOMEN@MOJ.DOMEN
Iz misterioznih razloga kod kinit upita ime domena se MORA pisati velikim slovima, inače autentifikacija neće proći.....
7. Samba i Winbind konfiguracija
Izmeniti konfiguracioni fajl za Sambu /etc/samba/smb.conf :
[global]
workgroup = domen <-- ovo obavezno proveriti, da li je moj.domen ili nešto drugo.....
password server = 10.10.10.19
wins server = 10.10.10.19
realm = MOJ.DOMEN
security = ads
template shell = /bin/bash
winbind use default domain = false
winbind offline logon = false
winbind separator = +
allow trusted domains = Yes
log file = /var/log/samba/%m.log
load printers = no
Testirati konfiguraciju :
# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Loaded services file OK.
WARNING: The setting 'security=ads' should NOT be combined with the 'password server' parameter.
(by default Samba will discover the correct DC to contact automatically).
'winbind separator = +' might cause problems with group membership.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
8. Namestiti tako da Winbind bude odgovoran za autentifikaciju :
U fajl /etc/nsswitch dodati na već postojeće :
passwd: compat winbind
shadow: compat
group: compat winbind
Stavka sa “files” već postoji i mora se skloniti. I nema problema, autorizacija po passwd+shadow fajlovima će i dalje raditi.
9. Učlanjivanje u domen
# service smb start
# service winbind start
# service nmb start
Jednom kada sve lepo radi, postaviti da se servisi dižu pri restartu mašine :
# chkconfig smb on
# chkconfig winbind on
# chkconfig nmb on
Provera rada (izlistavanje user-a pod domenom, za izlistavanje grupa je svič “-g”) :
# wbinfo -u|grep squid
DOMEN+squid1 <-- ovaj DOMEN je iz smb.conf, stavka workgroup!!!!
DOMEN+squid
I sada da učlanimo mašinu u domen :
# net ads join -S ime.AD.servera -U squid1%moja.lozinka
Using short domain name -- DOMEN
Joined 'CENTOS6U4' to dns domain 'MOJ.DOMEN'
No DNS domain configured for centos6u4. Unable to perform DNS Update.
DNS update failed!
Paziti!! Stavka ime.AD.servera MORA da ide kao naziv servera NE kao IP adresa. Squid1 je moj testni nalog.....
Takođe DOMEN i MOJ.DOMEN nisu isto!!! DOMEN je workgroup (definisan pod smb.conf), a MOJ.DOMEN je AD domen.
Napomena : paziti, pri testiranju sa WIN PC mašine vezivanje na Linux može da bude ometeno FireWall-om ili AV-om koji takvu komunikaciju mogu smatrati za opasnu, pa je isključe, i bace vas u totalno neznanje..... 😉