參考來源 earth
環境:
Linux:
OS:cnetos 6.2 x64
hostname:adlinux
ip:192.168.1.151/24
getway:192.168.1.1
dns:192.168.1.253
AD:
OS:windows 2003 x86
ip:192.168.1.253
Domain:TEST.COM
1. 必要程式安裝
1 |
>yum install -y samba samba-common samba-winbind krb5-server krb5-workstation ntp |
2.確認HOSTNAME 設定
1 |
>hostname –f |
結果應該為 adlinux.test.com ,若無法正常查詢請先解決這個問題 , 我的解決方式是直接去修改/etc/hosts , 加入一行
1 |
192.168.1.151 adlinux.test.com adlinux |
3.校正時間 (一定要校正 , 除非你能確認誤差5分鐘內)
1 |
>ntpdate 192.168.1.253 |
4.開始設定AD認證
直接使用 setup tool ,這樣設定比較快 , 若無setup tool 請直接往下找各檔案的設定檔
1 |
>setup |
請依下例設定,內容請參考環境說明
上面這一步做完可以直接 join domian , (但是我從來沒成功過 ,原因我也查不出來,我想應該是DNS 設置上有點問題)不過我還是會做,完成後退出
5.測試連線(可略過)
$ kinit [email protected](注意大寫),輸入密碼無誤後,跳回提示字元
[Q1:] kinit(v5) : cannot find KDC for requested realm while getting initial credentials
[A1:] 網域名稱沒有大寫
[Q2:] kinit(v5) : clock skew too great while getting initial credentials
[A2:] samba與windows2003/2008系統時間相差不可超過5分鐘
[Q3:] kinit(v5) : preauthentication failed while getting initial credentials
[A3:] 密碼不對
6.join ad , 執行以下命,會要求你輸入密碼 ,若正常加入ad 會出現 joined 訊息,就可以加AD內看這這台PC
1 |
>net ads join -U administrator |
7.檢視DOMAIN USER
將sbm , winbind 重啟 ,利用 wbinfo 進行檢視
1 2 3 |
>service smb restart >service winbind restart >wbinfo -u |
8.setup 會影響4個檔案分別為 /etc/samba/smb.conf ,/etc/krb5.conf,/etc/nsswitch.conf,/etc/pam.d/system-auth ,但是只有 smb.conf 需要再修改一下
smb.conf :
1 2 3 4 5 6 7 8 9 |
workgroup = RODAN password server = 192.168.1.253 realm = RODAN.COM.TW security = ads idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /bin/bash winbind use default domain = fase winbind offline logon = false |
但是我們可能要再加工一下
1 2 3 4 5 6 7 8 9 10 11 12 |
#這兩行改成 true winbind use default domain = true winbind offline logon = true #加入 以下 #編碼方式傳遞密碼 encrypt passwords = yes #指定winbind是否在系統上建立網域使用者(Users) winbind enum users = yes #指定winbind是否在系統上建立網域群組(Groups) winbind enum groups = yes #設定使用者家目錄,%D指Domain,%U指User template homedir = /home/%D/%U |
krb5.conf
1 2 3 4 5 6 7 8 9 |
[realms] TEST.COM = { kdc = 192.168.1.253 admin_server = 192.168.1.253 kdc = 192.168.1.253 } [domain_realm] test.com=TEST.COM .test.com=TEST.COM |
nsswitch.conf
1 2 3 4 |
#在 passwd,shadow,group 加入 winbind passwd: files winbind shadow: files winbind group: files winbind |
/etc/pam.d/system-auth
1 2 3 4 5 6 7 8 9 |
#系統登入認證加入 krb 及 winbind auth sufficient pam_krb5.so use_first_pass auth sufficient pam_winbind.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_krb5.so account [default=bad success=ok user_unknown=ignore] pam_winbind.so password sufficient pam_krb5.so use_authtok password sufficient pam_winbind.so use_authtok password sufficient pam_krb5.so use_authtok password sufficient pam_winbind.so use_authtok |
8.確認domain 帳號 是否寫入 passwd 檔
1 2 |
>servcie winbind restart >getent passwd |
9.建立 domain user 家目錄,帳號太多可利用 awk 來做, 以下為範例
1 |
>vi mkhome.awk |
內容如下
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/awk BEGIN { FS=":" uidmin=16777216 uidmax=33554431 } { if ( $3 >= uidmin && $3 <= uidmax ) { print " make directory " $6 " chown " $3 "." $4 " " $6 system( "mkdir -p " $6 ";chown " $3 "." $4 " " $6 ) } } |
1 |
>getent passwd | awk -f mkhome.awk |
打完收工