Cent OS: 6.5, AD: 2012 R2

沒想到Cent OS6要加入網域是很麻煩的,Cent OS7簡單多了。使用Cent OS7的方法加入網域在6上面無效。(已試過)

先安裝相關套件:

# yum install samba samba-winbind krb5-server krb5-workstation  <<<CentOS 6

Installed:
  krb5-server.x86_64 0:1.10.3-57.el6       samba.x86_64 0:3.6.23-36.el6_8

Updated:
  samba-winbind.x86_64 0:3.6.23-36.el6_8

Dependency Updated:
  libsmbclient.x86_64 0:3.6.23-36.el6_8
  samba-client.x86_64 0:3.6.23-36.el6_8
  samba-common.x86_64 0:3.6.23-36.el6_8
  samba-winbind-clients.x86_64 0:3.6.23-36.el6_8

Complete!


# yum install samba-common samba-client krb5-server   <<<CentOS 5
 

# vi /etc/sysconfig/network
檢查CentOS的主機名稱是正確或是有設定的。

# ntpdate clock.stdtime.gov.tw (與DC的時間校正,誤差不能超過5分鐘) (也可以另外設好這台電腦的ntp)

# vi /etc/hosts

127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.1.168   centos.domain.com centos
192.168.1.11    adserver.domain.com  adserver     //網域DC

# vi /etc/samba/smb.conf

[global]

   workgroup = DOMAIN
   server string =

   password server = adserver.domain.com
   realm = DOMAIN.COM
   security = ads
   netbios name = wks-01
   encrypt passwords = yes
   idmap config * : range = 16777216-33554431
   template homedir = /home/%D/%U
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false
   winbind enum users = yes
   winbind enum groups = yes
 

# vi /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 = DOMAIN.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 DOMAIN.COM = {
  kdc = ADSERVER.DOMAIN.COM
  admin_server = ADSERVER.DOMAIN.COM
  default_domain = DOMAIN.COM
 }

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

 

# vi /var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 DOMAIN.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

 

以上都做完之後,就可以啟動samba了。

# service smb start
# chkconfig smb on

如果沒有錯誤,請測試是否抓到AD的帳戶:
# kinit administrator@DOMAIN.COM  (一定要大寫!!)
password for administrator:

輸入AD上的密碼之後,如果沒有錯誤訊息,表示前面設定正確。可以加入網域了。

# net rpc join -U administrator
Enter administrator’s password:
Joined domain DOMAIN.

加入完成!!

如果有錯誤訊息,可以先將防火牆關起來再試一次!萬一很不幸這一段一直過不了,請看下面的偷懶方法,就是到GUI介面下設定,下面的全部都可以跳過啦!

# service iptables stop (關閉防火牆)

# authconfig-tui
選擇左邊的[ * ] 使用Winbind 和右邊的[ * ] 使用Shadow 密碼、 [ * ] 使用Winbind認證。>>下一步
安全模式 [ * ] ads
網域 Domain
網域控制器 adserver.domain.com
ADS 領域 DOMAIN.COM
樣版 Shell ( * ) /bin/bash

[結合網域]

網域管理員:Administrator
密碼:

[確定]

# service winbind start
# chkconfig winbind on
# wbinfo -u
  (檢查AD的帳戶有沒有讀到)
administrator
guest
krbtgt
test_1
test_2

可以看到AD的帳戶已經被這台CentOS讀到了。

以下要建立AD帳戶自己的家目錄,有二種作法:

A. GUI介面下,打開Terminal:

# system-config-authentication

undefined

請記得勾選這個選項,否則會登入失敗喔!

 

B. 跑一個shell讓系統一次建完目前所有帳戶的家目錄:但這個方法有時候失靈喔。

# vi  mkADhome.awk
#!/bin/awk
BEGIN {
FS=":"
uidmin=16777000
uidmax=33550000
}
{
        if ( $3 >= uidmin && $3 <= uidmax ) {
              print " make directory " $6 " chown " $3 "." $4 " " $6
              system( "mkdir -p " $6 ";chown " $3 "." $4 " " $6 )
        }
}

# getent passwd | awk -f mkADhome.awk
................ (會跑一串新增目錄的動作,這些是以後AD帳戶的家目錄)

# vi /etc/pam.d/system-auth  (加入以下這四行讓使用者登入這台CentOS時使用AD驗證。)
auth             sufficient     /lib64/security/pam_winbind.so
account        sufficient     /lib64/security/pam_winbind.so
password     sufficient     /lib64/security/pam_winbind.so
session         sufficient     /lib64/security/pam_winbind.so

 

重新以AD的帳號登入本機,完成!!

 

如果從 #net rpc那行就開始失敗,有個偷懶的作法,請進入GUI介面,打開終端機(Terminal),輸入:

# system-config-authentication

undefined
請輸入Domain Name,ADS就是Domainname.com,網域控制器就是AD那台喔。然後記得先選第二頁的進階選項

undefined

然後再回到第一頁按下「加入網域」的按鈕,就成功啦!

undefined

可以用 # wbinfo -u 查看是不是有讀到AD中的使用者的名稱,就知道有沒有加入成功了。

 

以上的作法,在使用GUI登入時,如果是CentOS5需要手動輸入:Domain\ADuser,再按下登入。但如果是使用CentOS6,則可以直接輸入AD中的帳戶名稱,不用輸入Domain。,但在ssh時,不論哪一種OS都直接在Login: ADuser即可。

 

參考文獻:

http://www.lijyyh.com/2012/04/linuxactive-directory.html

http://doc.lang.idv.tw/?p=131

http://blog.pmail.idv.tw/?p=3296

 

arrow
arrow
    創作者介紹
    創作者 貓熊麗麗 的頭像
    貓熊麗麗

    片刻、瞬間、不知所云...

    貓熊麗麗 發表在 痞客邦 留言(0) 人氣()