This is the fast instruction to Join window AD domain with samba and winbind

(0) Update the time and sync with AD server
ntpdate 192.168.0.2
hwclock -w

(1) # upgrade the samba to the latest version save a lot of your time.
yum install samba samba-common samba-client krb5-workstation

(2) # 4 files to configure to get it work:
/etc/samba/smb.conf, /etc/nsswitch.conf, /etc/krb5.conf, /etc/krb.realms

(3) # replacing lines in /etc/nsswitch.conf with these:
passwd: files winbind
shadow: files
group: files winbind


(4) # Modify /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
default_realm = DOMAIN.COM
dns_lookup_realm = false
dns_lookup_kdc = false
forwardable = true
proxiable = true
default_etypes = des-cbc-crc des-cbc-md5
default_etypes_des = des-cbc-crc des-cbc-md5


[realms]
DOMAIN.COM = {
kdc = DC.DOMAIN.COM:88
admin_server = DC.DOMAIN.COM:749
default_domain = DOMAIN.COM
}

[domain_realm]
.example.com = DOMAIN.COM
example.com = DOMAIN.COM

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

kdc_timesync = 1
ccache_type = 4


(4.5) # test for krb5
kinit user@DOMAIN.COM
If it is success login , it will show nothing



(5) # Modify /etc/samba/smb.conf (assume 192.168.0.2 is DC ip)

[global]

workgroup = domain
realm = domain.com
netbios name = server
server string = server
preferred master = no
local master = no
domain master = no
password server = 192.168.0.2
security = ads
encrypt passwords = yes

## winbind ##
winbind separator = +
printcap name = cups
printing = cups
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
winbind cache time = 10
wins server = 192.168.0.2
name resolve order = lmhosts host wins bcast
client schannel = no

## log & charset ##
log file = /var/log/samba/%m.log
max log size = 5000
dns proxy = No
cups options = raw
dos charset = big5
unix charset = big5
log level = 3 winbind:3

[homes]
   comment = Home directory for %u on %h
   browseable = no
   writable = yes
   path = /home/%D/%U



(6) # vi /etc/hosts - 192.168.0.2 dc.domain.com domain.com DC.DOMAIN.COM DOMAIN.COM
                    - 127.0.0.1 server server.domain.com 

(7) # restart smb and winbind servcie

(Cool # joining the linux server to domain:
net rpc join -U Administrator (<= or any other DC domain admin)
net ads join -U Administrator (<= or any other DC domain admin)
system will then prompt a welcome message if everything is going fine

(9) # after joining to domain, you can check the something of domain:
wbinfo -t (check trust connectivity with domain controller)
wbinfo -u (check domain user)
wbinfo -g (check domain group)
net ads info (check DC info)
getent passwd (check home path)

(10) # afterwards, configure your server application to handle authentication with PAM,
 e.g. proftpd.conf, squid.conf. Then configure stuff in pam.d 
to use winbind module for authentication (see the post above)

Add this in pam.d :

vi /etc/pam.d/system-auth (centos5)
vi /etc/pam.d/password-auth (centos6)

auth        sufficient pam_winbind.so
auth        required      pam_env.so
.
.
account	    sufficient pam_winbind.so
account     required      pam_unix.so
.
.
session     required      pam_unix.so
session     required      pam_mkhomedir.so


/etc/init.d/winbind restart
/etc/init.d/samba restart

11) Test ssh login with AD account (It should auto generate home directory)
ssh DOMAIN+user@localhost

12) make script to auto create home folder for AD user per 5 minutes

vi create-ADhome.sh

#!/bin/bash

rm -fr /tmp/chown-user.sh
wbinfo -u > /tmp/wbinfo.txt

for user in `cat /tmp/wbinfo.txt` ;do
        su --command="exit" $user
        #echo $user
        echo "chown -R $user ~$user" >> /tmp/chown-user.sh
done

chmod +x /tmp/chown-user.sh
/tmp/chown-user.sh



chmod +x create-ADhome.sh

crontab -e
*/5 * * * * /root/create-ADhome.sh &> /dev/null




Server is hosted by Alanstudio
Linux Operating System

Recommend screen resolution 1024 x 768 / IE / FireFox
Alan Studio © 2007 by Alan Cheung Hin Lun. All rights reserved.