茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671954 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00062.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]Linux samba + winbind + krb5 與 windows 2000、2003 網域 AD 整合

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Linux fedora core 2 加入windows 2000/2003網域

Linux fedora core 2 加入windows 2000/2003網域


Linux fedora core 2 side
[1.] install samba

[2.] vi /etc/samba/smb.conf


[global]
     workgroup = 123                                            # 網域名稱
     realm = 123.com                                             # 完整網域名稱
     server string = samba server-linux                 # linux samba主機描述
     netbios name = linux samba host name         # linux samba主機名稱
     security = ads                                                 # 安全等級為ads,帳號認證交由ad
     password server = windows2003.123.com    # 指定密碼ad domain server
     encrypt passwords = yes                               # 編碼方式傳遞密碼

[3.] vi /etc/hosts

10.10.10.123 windows2003.123.com windows2003

[4.] vi /etc/krb5.conf (如果沒有則安裝 krb5-server)

# AD是採kerberos認證機制,所以設定samba主機的kerberos與ad能溝通 ,注意大寫

[libdefaults]
     default_realm = WINDOWS2003.123.COM
[realms]
     123.COM = {
     kdc = WINDOWS2003.123.COM:88
     admin_server = WINDOWS2003.123.COM:749
     default_domain = 123.COM
[domain_realm]
     .example.com = 123.COM
     example.com = 123.COM

[5.] vi /var/Kerberos/krb5kdc/kdc.conf

[realm]
     123.COM = {
..
.

[6.] 測試連線

      install krb5-workstation

      kinit administrator@123.COM

      (注意大寫),輸入密碼無誤後,跳回提示字元

[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系統時間相差不可超過5分鐘

[Q3:] kinit(v5) : preauthentication failed while getting initial credentials
[A3:] 管理者密碼不對
 
[10.] service smb restart
 
[11.] net ads join

   加入網域,出現成功訊息為Joined ‘sambahost’ to realm ‘123.com’,
   此時可在windows2003 server上的AD使用者及電腦上的computers看到sambahost的名稱
 
讓Linux認證windows AD網域帳號

[1.] apt-get install samba   

   已包含winbind,winbind 即用來做Linux認證 windows 的AD
 
[2.] 檢查nss library
         ldconfig –v | grep winbind

      顯示 libnss_winbind.so -> libnss_winbind.so.2
 
[3.] vi /etc/nsswitch.conf

passwd:  files   winbind
group:    files    winbind

[4.] vi /etc/samba/smb.conf


[global]
     idmap uid = 10000-20000
     idmap gid = 10000-20000                              #設定ad網域帳號的uid、gid使用範圍
     winbind separator = +                                     #網域與帳號之間分隔符號,預設為‘ \‘
     winbind use default domain = yes                  #不顯示網域名稱
     template homedir = /home/winnt/%D/%U      #使用者家目錄,D->domain,U->user
     template shell = /bin/bash


[5.] service winbind restart
 
[6.] 取得AD帳號,執行 wbinfo -u
 
[7.] 取得本機與ad的帳號,執行getent passwd

[8.] net ads info
 
[9.] net ads status -U Administrator%123456
 
[10.] 解決本機與winbind分配給ad的uid與gid可能相衝的問題,把本機的uid與gid限制在9999之內
         vi /etc/login.defs

UID_MAX 9999
GID_MAX 9999

Linux 中各種服務的帳號整合
[1.] 確定winbind library,執行 locate /pam_ |egrep ‘.so$’

/lib/security/pam_winbind.so

[2.] 建立使用者家目錄的scripts,用來存取AD上的帳號,進而於linux上建立家目錄
         vi mk2003home.awk


#!/bin/awk
 
BEGIN {
 
FS=":"
 
uidmin=10000
uidmax=20000
 
}
 
{
       if ( $3 >= uidmin && $3 <= uidmax ) {
                 print "\nmake directory " $6 "\nchown " $3 "." $4 " " $6
                 system( "mkdir -p " $6 ";chown " $3 "." $4 " " $6 )
       }
}

[3.] 執行方式
         getent passwd | awk –f mk2003home.awk
 
[4.] vi /etc/pam.d/system-auth


# 加入
auth           sufficient    pam_winbind.so
account      sufficient    pam_winbind.so
password   sufficient    pam_winbind.so
session       sufficient    pam_winbind.so

注意:
當從console登入時,名稱是打上domainname\username,再來是密碼。
或者在smb.conf設定檔中設定winbind use default domain = yes,那名稱就不需要加個domainname。
 
以下尚未測式
Apache認證網域使用者
[a.] 下載
http://pam.sourceforge.net/mod_auth_pam/dist/mod_auth_pam-2.0-1.1.1.tar.gz

[b.] 編譯mod_auth_pam前先安裝httpd-devel,apr-devel,apr-util-devel三套件

[c.] tar zxvf xxx ; cd mod_auth_pam ; make ; make install

[d.] vi /etc/pam.d/httpd
         (加入項目同上)

[e.] 讓apache 啟動時載入mod_auth_pam
         vi /etc/httpd/conf/httpd.conf

# 加入
LoadModule auth_pam_module modules/mod_auth_pam.so

[f.] service httpd restart


[g.] 於需要認證的目錄內,此為使用網域的帳號來認證
         vi .htaccess

AuthType Basic
AuthType “secure area”
Require valid-user


[h.] 允許使用.htaccess檔案認證使用者
         vi /etc/httpd/conf/httpd.conf

AllowOverride AuthConfig (or All)

[i.] 使apache認證本機使用者
         groupadd shadow_readers ; chgrp shadow_readers /etc/shadow ; chmod g+r /etc/shadow

      
      vi /etc/httpd/conf/httpd.conf

Group shadow_readers

[j.] service httpd restart
 
[5.] Proxy(squid)認證AD
      a. vi /etc/pam.d/squid


#%PAM-1.0
auth       sufficient     /lib/security/pam_winbind.so
auth       required      pam_stack.so service =system-auth
account  sufficient    /lib/security/pam_winbind.so
account  required     pam_stack.so service=system-auth

      b. vi /etc/squid/squid.conf


# 加入
auth_parm basic program /usr/lib/squid/pam_auth
acl PASSWORD proxy_auth REQUIRED                    # 建立一名為PASSWORD的存取清單
                                                                               # 必須通過密碼認證的使用者才能列入
                                                                               # 此清單,並所有使用者皆需認證

http_access allow PASSWORD #設定允許PASSWORD存取清單中的
                                                                                        # 使用者進行連線

      c. squid認本機
            groupadd shadow_readers ; chgrp shadow_readers /etc/shadow ; chmod g+r /etc/shadow


            vi /etc/squid/squid.conf

# 加入

cache_effective_group shadow_readers

      d. service squid restart


原文出處:LDAP + WIndows AD + winbind - Service -
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]整理:debian 下samba用windows 2003 AD進行身份驗證成功

整理:debian 下samba用windows 2003 AD進行身份驗證成功

關鍵字: samba ad

參考:http://bbs2.chinaunix.net/thread-968948-1-1.html

前幾天使用ubuntu 8.04配置不成功,後來安裝了debian,配置成功了。方法如下:
按照上面的參考文檔我使用了第二種方法,也就是使用winbind。

1.實現環境
Debian 4.2+Samba 3.0 + Krb5
2.軟件包安裝
Samba及Krb5都是用新立得安裝

3.Kerberos配置
Win2003系統默認通過Kerberos做身份驗證,Kerberos驗證需要安裝Krb5軟件包。配置文件及測試都很簡單。Krb5的配置文件為/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 = TEST.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
TEST.COM = {
   kdc = dc.test.com:88
   admin_server = dc.test.com:749
   default_domain = TEST.COM
}

[domain_realm]

.test.com = TEST.COM
test.com = TEST.COM

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
4.SAMBA配置

[global]:
      workgroup = TEST
      netbios name = debian
      server string = Samba &ADS Test Server
      security = domain
      password server = dc.test.com
      preferred master = no
      domain master = no
      domain logons = no
       log file = /var/log/samba.log
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum groups = no
winbind enum users = no


註:此二行表示為是否在linux下添加AD帳號,只有加了此二行,在使用getent passwd和gentent group才能顯示AD上面的帳號和組
winbind separator = /
winbind use default domain = yes
template homedir = /home/test/%U 註:此處可以自己設定在/home/%D/%U
template shell = /bin/bash


[homes]
      comment = User's Home Directories
       path = /home/test/%U   和上面 template homedir的值一樣
       browseable = no
       valid users = %U

特別注意:此二處為一定要是%U,而不能使用%S ,%U 需要的客戶端用戶名即登錄用戶名,而%S是 當前共享名
      writable = yes

[A組]
        comment = Group A
        path = /usr/keynetsamba/a
        browseable = yes
        vaild users = @gpa

        writable = yes
        create mode = 755
        directory mode = 0755

[B組]
        comment = Group B
        path = /usr/keynetsamba/b
        browseable = yes
        vaild users = @gpb
        writable = yes
        create mode = 755
        directory mode = 0755



這些設置的一個簡單的說明如下:

- idmap uid - 指定一個uid範圍,該範圍內的uid被用來映射UNIX用戶到windows用戶SID,而且要確保這個id範圍內沒有被本地或者NIS用戶佔用,winbind啟動以後,也不能在該ID範圍內添加用戶。

- idmap gid - 指定一個gid範圍,該範圍內的gid被用來映射UNIX用戶到windows的組SID,而且要確保這個id範圍內沒有被本地或者NIS組佔用,winbind啟動以後,也不能在該ID範圍內添加新組。


- winbind separator - 指定一個字符作為分隔符,winbind將使用該分隔符來用戶或組名。使用該配置將使得域用戶表示為 "MYDOMAIN+username",域組被表示為"MYDOMAIN+Domain Users"

- winbind enum groups和winbind enum users - 指定winbind是否在系統上創建域的組/用戶,一般情況下都要設置為yes,除非你處於某種原因希望關閉該功能。

- template homedir - 用來指定為域用戶產生主目錄。上面的示例中使用了變量替換,將使得winbind把用戶主目錄設置為/home/MYDOMAIN/username。

需要注意的是如果希望特定域或者所有域用戶在samba目錄有主目錄,那麼管理員必須手工創建,雖然template homedir控制samba在哪裡尋找域用戶的主目錄,但是不會自動創建,所以要自己手動創建,並設定權限。

5. 配製NSS

Nss為Name Service Switch,控制帳號的驗證修改/etc/nsswitch.conf文件,這樣winbind能實現使用域上的用戶,內容如下:

    passwd:         files winbind
    group:          files winbind
    shadow:         files winbind

    hosts:          files dns wins


    bootparams:nisplus [NOTFOUND=retum] files

    protocols:      db files
    services:       files
    ethers:         db files
    rpc:            files
    networks:       files dns
    netmasks:       files

    netgroup:       files

    publickey:      nisplus

    automount:      files
    aliases:        files nisplus

6.重啟samba與winbind服務

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

7.將debian加入2003域
    net rpc join -S dc.test.com -U administrator
如果遇到錯誤提示類似為: Failed to open /var/lib/samba/secrets.tdb
請執行:sudo chmod 777 /var/lib/samba/secrets.tdb

8. 確認Samba主機帳號在AD中正確註冊
    wbinfo –t
    checking the trust secret via RPC calls succeeded
    說明主機信任已成功建立

    使用wbinfo -u列出AD中註冊的帳號信息。Wbinfo –g可以返回AD中的組信息。

此時可以使用windows客戶端來訪問samba服務器了。

註:如果samba服務器上安裝有iptables服務,而且filter鏈裡的INPU 為DROP,請打開以下端口,方能正常使用samba服務:
TCP: 139,445
UDP:137,138
TCP:88(此為krb5驗證端口)

歡迎大家和我一起探討l!!!!
QQ:232565592

新問題:如何實現對用戶進行quota



原文出處:整理:debian 下samba用windows 2003 AD進行身份驗證成功 - 整理,轉載,方便個人查閱 - JavaEye技術網站
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Linux用winbind與AD認證筆記的補充説明
首先表示對alien大大的感謝,由於他的文檔我做出了Linux用winbind與AD認證。
但是做到getent passwd 出現了問題,無法獲取AD的帳號,經過我的刻苦研究,發現是使由於REDHET AS4的BUG,打上selinux-policy-targeted-1.17.30-2.88.noarch.rpm就OK了,
下載地址:http://rpmfind.net/linux/rpm2html/search.php?query=selinux-policy-targeted

目前已經完成了samba,ssh,smtp等的認證,其它的正在努力中.........
我是新人,以後要是有了什麽好東西,一定馬上給大家分享!

為了方便大家,以下給出alien大大的相關設定檔

--------------------------------------------------------------------------------

alien - 星期四 四月 28, 2005 1:30 pm
文章主題: Linux用winbind與AD認證筆記
--------------------------------------------------------------------------------
筆記參考來源~
施威銘 lunix與Windows異質平台整合
酷學園討論區

第一節、Linux採用AD認證
假設 區域網路中AD主機為 server.test.com.tw 、IP為192.168.0.86
(一).設定samba
[root@linux2 /]# vi /etc/samba/smb.comf
[global]

# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = test ---指定網域名稱
realm = test.com.tw ---完整網域名稱
# server string is the equivalent of the NT Description field

netbios name = Data_Server ---Samba主機名稱
server string = Linux --- 主機描述
……………………………………………………………………………
…………………………………………………………………………………….
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = ads ---設定安全等級為AD ,表示由AD來做帳號認證
# Use password server option only with security = server
; password server =
password server = server.test.com.tw

# Password Level allows matching of _n_ characters of the password
# all combinations of upper and lower case.
; password level = 8
; username level = 8

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes ---採用編碼方式傳遞密碼
; smb passwd file = /etc/samba/smbpasswd


存檔離開
(二) 如果沒有DNS做轉址,那必須修改hosts檔,位置在 /etc/hosts
[root@linux2 /]# vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 linux2.test.com.tw linux2 localhost.localdomain localhost
192.168.0.86 server.test.com.tw test.com.tw

(三) 修改Kerberos 位置在 /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 = SERVER.TEST.COM.TW ---改成AD主機
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
TEST.COM.TW = { ---改成網域
kdc = SERVER.TEST.COM.TW:88
admin_server = SERVER.TEST.COM.TW:749 ---AD主機名稱
default_domain = TEST.COM.TW ----網域名稱
}

[domain_realm]
.example.com = TEST.COM.TW
.example.com = TEST.COM.TW

(四) 修改 /var/kerberos/krb5kdc/kdc.conf (如果沒有此檔案,則代表未安裝krb5-server,請由光碟安裝)
[root@linux2 /]#vi /var/Kerberos/krb5kdc/kdc.conf
[kdcdefaults]
acl_file = /var/Kerberos/krb5kdc/kadm5.acl

dict_file = /usr/share/dict/word
admin_keytab = /var/Kerberos/krb5kdc/kadm5.keytab
v4_mode = nopreauth

[realms]
TEST.COM.TW = { ---網域名稱
Master_key_type = des-cdc-crc
Supported_enctypes = arcfour-hmac:normal arcfour-hma

(五)測試連線
[root@linux2 /]# kinit administrator@TEST.COM.TW
如果正常則會跳回命令提示字元
網域名稱是大寫喔
AD主機與Linux主機兩台時間不得相差超過5分鐘
(六)將Samba主機加入網域
[root@linux2 /]# service smb restart
[root@linux2 /]# net ads join
當出現 Joined “Linux” to realm “test.com.tw” 則代表成功。

(七)Winbind運作
(1) 設定NSS設定檔 設定檔在 /etc/nsswitch.conf
[root@linux2 /]# vi /etc/nssswitch.conf
# Example:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#group: db files nisplus nis

passwd: files winbind ß加入winbind
shadow: files
group: files winbind ß加入 winbind

#hosts: db files nisplus nis dns
hosts: files dns

(八) 修改gid與uid的範圍(linux從AD抓取過來的帳號)
及目錄
[root@linux2 /]vi /etc/samba/smb.conf

idmap uid = 16777000-33550000
idmap gid = 16777000-33550000
template shell = /bin/bash
winbind use default domain = yes
template homedir = /home/winnt/%D/%U
重新啟動Samba
[root@linux2 /]# service smb restart
(九) 啟動winbind
[root@linux2 /]# chkconfig winbind on
[root@linux2 /]# service winbind start

(十) 測試取得AD帳號資訊
[root@linux2 /]# wbinfi –u

[root@linux2 /]# getent passwd
(十一) 設定本機uid與gid 發放範圍,以避免Linux帳號與AD帳號衝突
修改的檔案在 /etc/login.defs
[root@linux2 /]# vi /etc/login.defs
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 9999 ---修改為9999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 9999 ---修改為9999
#

(十二) 整合
(1) 我們必須建立AD帳號在Linux的虛擬目錄,由於AD帳號過多的狀況下我們一個個建立會浪費時間,所以我們可以利用指令稿來快速建立
在root 的目錄底下 我們新增一個檔案mknthome.awk
[root@linux2 ~]# vi mknthome.awk
內容如下
#!/bin/awk
BEGIN {
FS = “:”
uidmin = 16777000

uidmax = 33550000


}

{
if ($3 >= uidmin && $3<= uidmax ) {
print “\nmake directory “ $6 “\nchown “ $3 “.” $4 “ “ S6
system ( “mkdir -p “ $6 “ ;chown “ $3 “.” $4 “ “ $6 )
}
}

(2) 開始建立家目錄了
[root@linux2 ~]# getent passwd | awk -f mknthome.awk
此時你會看到畫面自動幫你建立帳號了,如果沒有請檢查mknthome指令稿有沒有錯

(3)開始整合帳號
依照我們的需求來修改ssh smtp dovecot 等等檔案
目錄分別為目錄分別在 /etc/pam.d/sshd /etc/pam.d/smtp /etc/pam.d/dovecot
先修改 ssh
[root@linux2 /]# vi /etc/pam.d/sshd
#%PAM-1.0
auth sufficient pam_winbind.so ---加入這行
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
account sufficient pam_winbind.so ---加入這行
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth

修改 smtp
[root@linux2 /]# vi /etc/pam.d/smtp
#%PAM-1.0
auth sufficient pam_winbind.so ---加入這行

auth required pam_stack.so service=system-auth
account sufficient pam_winbind.so ---加入這行
account required pam_stack.so service=system-auth

修改 dovecot
[root@linux2 /]# vi /etc/pam.d/dovecot
#%PAM-1.0
auth sufficient pam_winbind.so ---加入這行
auth required pam_nologin.so
auth required pam_stack.so service=system-auth
account sufficient pam_winbind.so ---加入這行
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth

原文出處: 酷!學園 - Linux用winbind與AD認證筆記的補充説明
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]如何讓Samba server 成為Windows 2K Domain 的一份子.
Samba server authentication with W2k Domain

前言:

一般公司還是習慣以 Windows 2000 server 為公司內部的 Active Directory 或PDC server, Microsoft 的 Active Directory
功能強大, 設定簡單, 又可以結合目錄系統, 除了價格考量之外, 實在不是 SAMBA 所能匹敵的. 可是 Linux 的價格與穩定性, 又讓
辛苦的 MIS 忍不釋手, 拿來當 File server 是個很好的選擇 (很多 NAS 也是用Linux 及SAMBA implement 的). 所以, 將SAMBA server
加入Windows 網域, 以 Windows Active Directory 來管理 samba file server 的權限存取似乎是個很實用的選擇.

環境介紹: (Sorry, 因為我是用公司的環境作測試, 所以沒辦法附上圖片)
Domain Name: WINDOM
PDC/ AD : WINPDC
SAMBA server: SAM01 (SAMBA 2.2.7a)

Step 1.
在windows 2000 server 的 Active Directory使用者與電腦 或是
在同樣的畫面新增新電腦 - 你的 samba server 的 'netbios name'(SAM01) (必須選擇 root 為有權限將SAM01 加入WINDOM)

Notes. 你也可以不建 root 帳號, 直接使用 administrator 為SAM01 加入WINDOM


Step 2. 試看看能否加入 WINDOM 網域
root# smbpasswd -j WINDOM -r WINPDC -U root%root_password
如果出現 Joined domain WINDOM 就代表 Step1. 成功了

Step 3. 修改 smb.conf
主要參數如下:
[global]

   workgroup =  WINDOM
   netbios name = SAM01
   server string = TEST SAMBA Server
   client code page = 950
   password server=WINPDC # 也可以是 IP address
   security = domain      # 一定要改為 domain
   encrypt passwords = yes
   smb passwd file = /etc/samba/smbpasswd
   add user script = /usr/sbin/useradd -g smbuser -d /dev/null -s /bin/False %u -d /home/%u
   # 當 user 在 windows 瀏覽到 SAM01, 就會為該user 新增帳號與 home directory
   # 指定home directory 為較佳的方式, 方便讓你分群管理
   log file = /var/log/samba/%m.log
   max log size = 0
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775


Step 4. 試看看你的成果....
登入 Windows Domain - WINDOM 使用檔案總管或網路芳鄰瀏覽 \\SAM01, 很神奇的...自己的home directory 自動被建立.
Hints: 不可使用 net use * \\SAM01\homes, 因為如果是新user, 帳號都還沒建, 怎麼會有 home drectory?

Step 5. 大功告成... 建立網路磁碟機
這時候, 你總算可以建立home directory的網路磁碟機, 隨你如何運用. 所有的帳號及密碼都可以由WINPDC 所掌控, 更改
密碼也不用動到SAM01.

補述: 如果沒有登入網域, 可以使用SAM01 的 home directory 嗎?
當然可以, 當你 net use 時, user id 需使用 WINDOM\user_id

有問題, 歡迎指教 Peter ( peterkan@yahoo.com)

原文出處: 酷!學園 - 如何讓Samba server 成為Windows 2K Domain 的一份子.
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]使用 Samba 架設 File Server,整合 AD 2003 帳號,並支援 User Security

 之前在恆逸上課,老師曾教過使用 Samba 架設 File Server,並與 AD 2003 整合,正好手邊有一台勘用,但公司要報廢的電腦,於是拿來測試。


 測試環境:
  AD Server: twadc.sample.com
  AD Server IP: 10.1.1.57
  WINS Server IP: 10.1.1.57
  DNS Server IP: 10.1.1.57
  Linux:Fedora 5
  套件:samba-3.0.23c-1.fc5

一、整合 AD 2003 帳號
 1. 設定 Samba
   # vi /etc/samba/smb.conf
  [global]
  workgroup = sample  <- 網域名稱
  realm = sample.com  <- 完整網域名稱
  netbios name = linux-src  <- 主機名稱
  server string = Linux Src Server  <- 電腦描述
  display charset = Big5  <- 支援中文 ShareName
  dos charset = CP950

  unix charset = Big5
  security = ads  <- AD 網域認證模式
  password server = twadc.sample.com  <- 密碼主機
  encrypt passwords = yes  <- 密碼加密
  wins server = 10.1.1.57  <- WINS 主機
  idmap uid = 16777000-33550000   <- 修改 GID 與 UID 的範圍及目錄
  idmap gid = 16777000-33550000   <- (Linux 從 AD 讀取的帳號)
  winbind enum users = yes
  winbind enum groups = yes
  template shell = /bin/bash  <- 指定 AD 帳號的 Shell
  winbind use default domain = yes  <- 是否自動套用網域名稱
  template homedir = /home/%D/%U  <- %D 網域名稱,%U 帳號

 2. 設定 DNS 或 hots
   # vi /etc/resolv.conf

  nameserver 10.1.1.57
  或
   # vi /etc/hosts
   10.1.1.57 twadc.sample.com sample.com
  只要修改其中一種能查詢到 sample.com 網域即可。

 3. 修改 Kerberos
   # vi /etc/krb5.conf
  [libdefaults]
  default_realm = twadc.sample.com  <- AD 主機

  [realms]
   SAMPLE.COM = {  <- 改成網域
   KDC = twadc.sample.com:88  <- AD 認證主機
   admin_server = twadc.sample.com:749  <- AD 認證主機
   default_domain = sample.com  <- 完整網域名稱
  }

  [domain_realm]
  .example.com = SAMPLE.COM  <- 完整網域名稱
  example.com = SAMPLE.COM 
<- 完整網域名稱

   # vi /var/kerberos/krb5kdc/kdc.conf  <- 如果沒有此檔案,則代表未安裝krb5-server
  [realms]
   SAMPLE.COM = {  <- 完整網域名稱
  ................................
  }

 4. 重新啟動 samba 及 winbind
   # service smb restart
  # service winbind restart

  設定開機啟動
   # chkconfig smb on
  # chkconfig winbind on


 5. 加入 sample.com 網域
   # net ads join -U joindomain  <- joindomain 為網域帳號
  joindomain's password:

 6. 設定與 DC 溝通時的使用者
   # wbinfo --set-auth-user= user (具一般使用者權限即可)
  Password:

 7. 編輯 NSS 設定檔
   # vi /etc/nsswitch.conf 
<- 設定認證順序
  passwd: files winbind
  shadow: files
  group: files winbind

 8. 測試連線
   # kinit administrator@SAMPLE.COM  <- 網域名稱要大寫
  若密碼正確會跳回命令提示字元
   AD主機與Linux主機兩台時間不得相差超過5分鐘  <- 這個部份很容易忽略,要注意。


 9. 測試讀取 AD 帳號資訊
   # wbinfo -u
  或
   # getent passwd

 10. 設定本機 UID 與 GID 發放範圍,避免 AD 帳號與 Linux 本機帳號衝突
  # vi /etc/login.defs
  UID_MIN 500
  UID_MAX 9999  <- 改為9999

  GID_MIN 500
  GID_MAX 9999  <- 改為9999

二、整合 Samba
  
# vi /etc/pam.d/samba
  #%PAM-1.0
  auth       required     pam_nologin.so
  auth       sufficient   /lib/security/pam_winbind.so  <- 加入這行
  auth       required     pam_stack.so service=system-auth
  account    sufficient   /lib/security/pam_winbind.so  <- 加入這行
  account    required     pam_stack.so service=system-auth
  session    required     pam_stack.so service=system-auth
  password   required     pam_stack.so service=system-auth

三、分享目錄
   # vi /etc/samba/smb.conf
  [SRC]
   comment = Linux Src 
<- 目錄描述
   path = /ftpdata  <- 分享路徑
   valid users = sample\gavin sample\ida  <- 允許的使用者,格式為 網域\帳號 
   public = yes  <- 是否公開
   writable = yes  <- 是否可寫入

   # service smb restart

四、開啟 ACL
   # vi /etc/fstab
  /dev/hda X /ftpdata ext3 defaults, acl1 2

   # mount -ro,remount /dev/hda X  <- 重新掛載
 
 開啟 ACL 可讓 File Server 支援 MS 的 User Security

五、設定安全性
  1. 在分享的目錄下新增子目錄,並按滑鼠右鍵,選擇 「內容」
  2. 點選 「安全性」
,即可看到與 Windows 下同樣的安全性設定。

  註:雖可使用 Windows 下的安全性圖形介面,設定權限,但並非百分之百完全支援。

六、啟動網路資源回收筒機制
   # vi /etc/samba/smb.conf
  [SRC]
   comment = Linux Src
   path = /ftpdata
   valid users = sample\gavin sample\ida
   public = yes
   writable = yes

   在分享目錄後,增加下面幾行
    vfs object = recycle
   recycle:keeptree = yes
   recycle:versions = yes
   recycle:repository = ../Garbage/%u

    『recycle:keeptree = yes』:刪除的資料,到了網路資源回收筒後,仍然保有其樹狀結構。
    『recycle:versions = yes』:保留相同的檔案名稱。
    『recycle:repository = ../Garbage/%u』:資源回收筒存放位置,需使用相對路徑表示。

   Garbage資料夾的權限需注意,必須讓使用者具有 『rwx』
權限,且共享的目錄必須設定 sticky 權限,避免資料被非擁有者刪除。
   還原時可使用 cp -p 的指令還原到原先的資料夾中。


資料參考來源:
施威銘 lunix與Windows異質平台整合
http://linux.vbird.org/somepaper/20060608-samba.pdf


原文出處: Gavin's Linux學習手札: 使用 Samba 架設 File Server,整合 AD 2003 帳號,並支援 User Security
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]從Windows到Linux遷移之文件服務器(Samba和AD完美結合)

從Windows到Linux遷移之文件服務器(Samba和AD完美結合)

經過在網上查找好多資料,現在終於搞定了Samba的用戶管理由AD 域控制器來執行,也就是說把samba 服務器加入到AD 域中,使之成為AD中的member server,這樣就可以逐步把Windows的文件服務器向linux的(samba)文件服務器進行遷移,(我的目的就是要把WIN往linux上面遷移!呵呵,這樣就是提高服務器的安全性和穩定性,在前期我做過使用desktop OS也換成linux,但是對我來說是可以的,而對大多數非專業人員、或者說企業內部人員,這是很難做到,所以最終可以在資金和安全方面考慮,把企業裡面的服務器換成linux OS,這樣是可以做到的,當然,有人也會說,把AD也換成Samba,不過我還沒有去試過,以後再去試,再說,現在大多數企業環境還是離不開回win吧,呵呵,所以我認為把Samba加入到域是最好的一種方式,以後可以把ISA換成squid,exchange換成sendmail或是qmail等,最終還是要用AD來實現全網統一用戶管理,所以我們要走的路還很長!在chinaunix 上面的已經有高手這樣做到了,看來我要加油)

Samba有兩種方法來動態增加系統用戶帳號

一、添加用戶腳本

使用添加用戶腳本可能是兩種方法裡面最簡單的一種,因為它只需要一個配置選項。

添加用戶腳本這個Samba配置選項可以在/etc/samba/smb.conf文件的[global]項裡使用。

下面是一個示例:

# if you only want the accounts created but do not want the users to have a real

# login shell or their own home directory on the server, use something like this:

# add user script = /usr/sbin/useradd -g smbusers -s /bin/false -d /dev/null -M %u


# if you want to the domain users to have a real login shell and a home directory

# on the server, use something like this instead:

add user script = /usr/sbin/useradd -g smbusers -s /bin/bash %u

對一個連接用戶,如果他成功通過身份認證,並且帳戶在/etc/passwd裡並不存在,添加用戶腳本將為其創建一個系統帳戶。除非被配置成其他的目錄名,用戶主目錄將被創建成/home/<username>。

二、使用Windbind

 詳情參看 《Samba有兩種方法來動態增加系統用戶帳號》

我的實際例:可以參看 http://romexp.blog.163.com/blog/static/3610065200762614516829

1.        實現環境

Fedora 7 + Squid 2.6 + Samba 3.0 + Krb5

2.        軟件包安裝

Samba及Krb5均通過yum安裝最新版本。

3.        Kerberos配置

Win2003系統默認通過Kerberos做身份驗證,Kerberos驗證需要安裝Krb5軟件包。配置文件及測試都很簡單。Krb5的配置文件為/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 = TEST.COM

 dns_lookup_realm = false

 dns_lookup_kdc = false

 ticket_lifetime = 24h

 forwardable = yes

[realms]

 TEST.COM = {

  kdc = 192.168.1.200:88

  admin_server = 192.168.1.200:749

  default_domain = TEST.COM

 }

[domain_realm]

.test.com = TEST.COM

test.com = TEST.COM

[appdefaults]

 pam = {

   debug = false

   ticket_lifetime = 36000

   renew_lifetime = 36000

   forwardable = true

   krb4_convert = false

 }

我使用winbind方法同步AD帳號:

samba.conf配置如下:

[global]:

         workgroup = TEST


         netbios name = fedora

         server string = Samba Server

         security = domain

         password server = win2k3.test.com

         preferred master = no

         domain master = no

         domain logons = no

   idmap uid = 15000-20000

   idmap gid = 15000-20000

   winbind enum groups = yes

   winbind enum users = yes

註:此二行表示為是否在linux下添加AD帳號,只有加了此二行,在使用getent passwd和gentent group才能顯示AD上面的帳號和組

   winbind separator = \

   winbind use default domain = yes  //注意:不要這項就會顯示為AD賬號為 LIONKING/user1,LIONKING/group1 ,用了這個就只顯示user1 group1


   template homedir = /homes/%D/%U 註: 此處為homes而不是home,我在此處就走了很多彎路,當然也可以自己設定在/home/%D/%U

   template shell = /bin/bash

[homes]

         comment = User's Home Directories

        path = /homes/%D/%U   和上面 template homedir的值一樣

        browseable = no

        valid users = %U

特別注意:此二處為一定要是%U,而不能使用%S ,%U 需要的客戶端用戶名即登錄用戶名,而%S是 當前共享名

         writable = yes

這些設置的一個簡單的說明如下:

- idmap uid - 指定一個uid範圍,該範圍內的uid被用來映射UNIX用戶到windows用戶SID,而且要確保這個id範圍內沒有被本地或者NIS用戶佔用,winbind啟動以後,也不能在該ID範圍內添加用戶。

- idmap gid - 指定一個gid範圍,該範圍內的gid被用來映射UNIX用戶到windows的組SID,而且要確保這個id範圍內沒有被本地或者NIS組佔用,winbind啟動以後,也不能在該ID範圍內添加新組。


- winbind enum groups和winbind enum users - 指定winbind是否在系統上創建域的組/用戶,一般情況下都要設置為yes,除非你處於某種原因希望關閉該功能。

- template homedir - 用來指定為域用戶產生主目錄。上面的示例中使用了變量替換,將使得winbind把用戶主目錄設置為/homes/MYDOMAIN/username。

需要注意的是如果希望特定域或者所有域用戶在samba目錄有主目錄,那麼管理員必須手工創建,雖然template homedir控制samba在哪裡尋找域用戶的主目錄,但是不會自動創建,所以要自己手動創建,並設定權限。

然後,管理員需要手工編輯/etc/nsswitch.conf文件,這樣winbind能實現使用域上的用戶。在紅帽知識庫中有其他文章討論該問題。 http://www.redhat.com.cn/kbase/4760.php

使用 net rpc join -S win2k3.test.com -U administrator 把linux主機加入到域中

重新啟動samba

       service smb restart

同時winbind也要重新啟動。

service winbind restart

 確認Samba主機帳號在AD中正確註冊

root# wbinfo –t

checking the trust secret via RPC calls succeeded

說明主機信任已成功建立

使用wbinfo -u 可以列出AD中註冊的帳號信息。Wbinfo –g可以返回AD中的組信息。

配製NSS

Nss為Name Service Switch,控制帳號的驗證。編輯/etc/nsswitch.conf,如下


     passwd: files winbind

    group: files winbind

檢查PDC用戶(組)轉換為本地用戶(組)UID和GIU情況:

      getent passwd

顯示將PDC用戶轉換成系統用戶的GID情況,顯示最後類似如下信息:

      getent group

此時可以看到AD帳號已經加到linux的系統用戶列表中 uid和gid

總結:到目前為止,現在可以用AD的用戶進行samba ,並且home目錄也都可以訪問自己的家目錄了!比如:現在我在AD上新增user2 ,並設定

了password,能後需要在linux下面 mkdir /home/TEST/user2 再使用

# chown 'TEST\user2':'TEST\domain users'  /home/TEST/user2  改變目錄所有者,就可以登錄使用了。

要設定share folds 就可以使用以下代碼:

[user2' Directory]

        comment = user2's Directory

        path = /homes/TEST/user2

        ;browseable = no

        valid users = TEST/user2

        writable = yes


        create mode = 0777

        directory mode = 0777  這二種方式還是需要合用chown 來改變目錄所有者才可以,還要研究!

以上為我使用 samba的winbind來對AD和samba的完美整合,使用用戶腳本方式,我還沒有去研究測試,我是在借鑒別人很多技術分享才得以成功的,當然可能還會有很多紕漏,還請大家多多指正,這也是我要把服務器逐步換為linux OS的第一步!請關注我的blog ( http://romexp.blog.163.com)後續還會有我的第二步。

我的MSN: rome_xp@msn.com

=================================================================================

以下是網友找到的: 批量添加域帳號的文件夾shell腳本
[root@linux2 ~]# vi mknthome.awk
#!/bin/awk
BEGIN {
FS = 「:」
uidmin = 16777000
uidmax = 33550000
}
{
if ($3 >= uidmin && $3 <= uidmax ) {
print 「\nmake directory 「 $6 「\nchown 「 $3 「.」 $4 「 「 S6
system ( 「mkdir -p 「 $6 「 ;chown 「 $3 「.」 $4 「 「 $6 )
}
}

(2) 開始建立家目錄了

[root@linux2 ~]# getent passwd | awk -f mknthome.awk


原文出處: 從Windows到Linux遷移之文件服務器(Samba和AD完美結合) - 深呼吸只為你的日誌 - 網易博客
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]smb.conf 的建議修改方式
如果,有時間可以仔細看一下 /etc/samba/smb.conf 中的一些敘述,他建議以下列的方式來修改 smb.conf:
$cp smb.conf smb.conf.master (先將 smb.conf 複製成 smb.conf.master)
$vi smb.conf.master (修改 smb.conf.master 而非 smb.conf)
$testparm -s smb.conf.master > smb.conf (透過 testparm 來檢查 smb.conf.master 的語法正確性,並且把沒用的東西拿掉,然後存到 smb.conf)
$/etc/rc.d/init.d/samba restart (重新啟動 Samba 伺服器)
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]getent passwd無法取得AD帳號
如果碰上『getent passwd』沒有辦法列出AD User的話,要注意兩個地方:
1.可能是RedHeat AS4的BUG,打上selinux-policy-targeted-1.17.30-2.88.noarch.rpm就OK了。
2.另一個,就是把smb.conf裡面的『winbind enum』開起來:
winbind enum users = yes
winbind enum groups = yes


這樣應該就可以用getent passwd看到AD帳號了!
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]CentOS-5.3 加入Win2k3 網域

作者: 榮哥  日期: 2009-08-25 15:01

很想將linux  和 windows 整合,可是看了google 一些文章

都做不起來,這次在圖書館借了" Linux 與 Windows 共舞異質整合方案"

來參考,這本書已經絕版如果有網友用不到,可以和小弟連絡我可以買下來

我的LAB 環境

*  windows 2003 DC 

    IP:192.168.3.180

    主機名稱 : dc

    有安裝 DNS 服務

    網域名稱: mis888.com

*  CentOS-5.3

    IP: 192.168.3.181

    主機名稱: linux

達成目標:

要將linux 主機加入網域,且可以瀏覽到網域的帳號

步驟

windows 部分:

  • 將windows 2003 升級成DC (詳細就不說明了)

Linux 部分

  • 設定主機名稱 :
    修改 /etc/sysconfig/network 檔案中的 HOSTNAME=linux(如下圖)
    attachments/200908/8960649848.jpg

  • 設定 /etc/samba/smb.conf (直接在global部分新增即可)
            workgroup = MIS888 (大寫)
            server string = Linux-Server (描述)
            realm = mis888.com (完整網域名稱)
            netbios name = linux (Linux 主機名稱)
            security = ads  ( 設定為ads 表示帳號認證交給DC)
            password server = dc.mis888.com (密碼伺服器指的就是DC主機)
            encrypt passwords = yes (編碼方式傳遞密碼)
    attachments/200908/0562537060.jpg

  • 設定/etc/hosts 檔案
    192.168.3.180           dc.mis888.com mis888.com
    attachments/200908/1835736439.jpg

  • 修該kerberos 檔案
    /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 = MIS888.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     forwardable = yes

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

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

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

    attachments/200908/9693351467.jpg
    修改  /var/kerberos/krb5kdc/kdc.conf (黑色粗體字改成 網域名稱)
    沒有此檔案清安裝krb5-server套件
    [kdcdefaults]
     v4_mode = nopreauth
     kdc_tcp_ports = 88
    [realms]
     MIS888.COM = {
      #master_key_type = des3-hmac-sha1
      acl_file = /var/kerberos/krb5kdc/kadm5.acl
      dict_file = /usr/share/dict/words
      admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
      supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-  md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
     }


    attachments/200908/8461028697.jpg

  • 測試連線指令如下
    kinit  administrator@MIS888.COM
    (administrator 是網域帳號,網域MIS888.COM 一定要大寫)
    下完此指令後會要輸入密碼,正確就直接回到命令提示字元
    [root@linux ~]# kinit administrator@MIS888.COM
    Password for administrator@MIS888.COM:
    [root@linux ~]#

    密碼錯誤會又下面訊息
    kinit(v5): Preauthentication failed while getting initial credentials
    若MIS888.COM 打成小寫會有下面訊息
    kinit(v5): Cannot find KDC for requested realm while getting initial credentials

  • 將linux 主機加入網域 指令如下
    net rpc join -U administrator
    OR
    net ads join ( 此指令也可以不過我只成功一次)


    執行後會出現下面訊息,且ad上面也有新增加一台加入網域的主機 如下圖
    [root@linux ~]# net rpc join -U administrator
    Password:
    Joined domain MIS888.
    attachments/200908/7254310019.jpg

原文出處: CentOS-5.3 加入Win2k3 網域 - MIS文章-Linux篇 - MIS的背影
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]使用samba將linux主機加入AD域
使用samba將linux主機加入AD域(一)研究了2個星期的一點小成,寫出來供大家分享。所有功能都在as3下調試通過。為了圖方便,as3採用默認安裝。

在研究中經常看到下面這些東東,還是先瞭解下理論依據
PDC:主域控制器,一般用來做驗證
BDC:備份域控制器,一般用於和主域做同步帳號等操作
KDC:密鑰分發中心,說白了,就是kerbrose服務器。這個需要對kerbrose有一定的瞭解,這裡不多說了
PAM:可插拔認證模塊,這玩意就是使用不同的驗證方法來驗證你所需要的服務,比如sshd,login,ftp等。這些服務都對應一個配置文件,這個配置文件位於/etc/pam.d/下。而支持這些驗證的動態庫位於/lib/security/下。
SRV:服務器定位資源記錄,要使活動目錄正常工作,DNS必須支持SRV。活動目錄客戶端和域控制器使用SRV記錄決定域控制器的ip地址,具體請參見http://www.cnblogs.com/LCX/archive/2007/02/05/640843.html

下面言歸正傳,介紹如何將samba服務器加入到AD域中
(1)配置/etc/samba/smb.conf
workgroup = LIZL # 你要加入的域,比如你AD上建的域叫LIZL.COM,這裡只需省略填入即可
# winbind
   netbios name = leeldap        #你的linux機器名,samba服務器
   idmap uid    = 15000-20000
   idmap gid    = 15000-20000
   winbind enum groups = yes
   winbind enum users  = yes
   winbind separator   = /
;  winbind use default domain = yes
   template homedir = /home/%D/%U
   template shell   = /bin/bash
   security = domain
   password server = 192.168.115.128 #這裡是你的安裝ad的機器的ip
   encrypt passwords = yes
    hosts allow = 192.168.1. 192.168.2. 127. 192.168.115.
[homes]
   comment = Home Directories
   path = /home/%D/%U
   browseable = no
   writable = yes
   valid users = %D/%U    #這裡記得把域名帶上,否則你用ad帳號訪問samba服務器時輸入正確的ad帳號和密碼仍然不能訪問共享目錄
   create mode = 0777
   directory mode = 0777

(2)配置/etc/nsswitch.conf
passwd:     files winbind
shadow:     files
group:      files winbind

(3)啟用samba和winbind服務。
 service smb reload   #加這一句是用來解決有時候samba啟動不了的問題
  service smb start
  service winbind start

(4)使用net加入AD域
[root@leeldap pam.d]# net rpc join -S lee -U administrator
Password:
Joined domain LIZL.

(5)測試是否加入成功
[root@leeldap pam.d]# net rpc testjoin
Join to 'LIZL' is OK
[root@leeldap pam.d]# wbinfo -t
checking the trust secret via RPC calls succeeded
[root@leeldap pam.d]# wbinfo -u
LIZL/Administrator
LIZL/brown
LIZL/bruce
LIZL/Guest
LIZL/jet
LIZL/krbtgt
LIZL/lee
LIZL/lili
LIZL/lizl
LIZL/samba
LIZL/SUPPORT_388945a0
LIZL/test
[root@leeldap pam.d]# wbinfo -g
BUILTIN/System Operators
BUILTIN/Replicators
BUILTIN/Guests
BUILTIN/Power Users
BUILTIN/Print Operators
BUILTIN/Administrators
BUILTIN/Account Operators
BUILTIN/Backup Operators
BUILTIN/Users
[root@leeldap pam.d]# getent passwd
root:x:0:0:root:/root:/bin/bash
。。。。。。。
LIZL/administrator:x:15000:15000::/home/LIZL/administrator:/bin/bash
LIZL/brown:x:15001:15000:Brown Lee:/home/LIZL/brown:/bin/bash
LIZL/bruce:x:15002:15000:Bruce Lee:/home/LIZL/bruce:/bin/bash
LIZL/guest:x:15003:15000::/home/LIZL/guest:/bin/bash
LIZL/jet:x:15004:15000:Jet Chen:/home/LIZL/jet:/bin/bash
LIZL/krbtgt:x:15005:15000::/home/LIZL/krbtgt:/bin/bash
LIZL/lee:x:15006:15000:Jackie Lee:/home/LIZL/lee:/bin/bash
LIZL/lili:x:15007:15000:lily:/home/LIZL/lili:/bin/bash
LIZL/lizl:x:15008:15000:lizhili:/home/LIZL/lizl:/bin/bash
LIZL/samba:x:15013:15000:samba:/home/LIZL/samba:/bin/bash
LIZL/support_388945a0:x:15009:15000:CN=Microsoft Corporation,L=Redmond,S=Washington,C=US:/home/LIZL/support_388945a0:/bin/bash
LIZL/test:x:15014:15000:test:/home/LIZL/test:/bin/bash
[root@leeldap pam.d]# getent group
root:x:0:root
。。。。。
BUILTIN/System Operators:x:15009:
BUILTIN/Replicators:x:15010:
BUILTIN/Guests:x:15011:
BUILTIN/Power Users:x:15012:
BUILTIN/Print Operators:x:15013:
BUILTIN/Administrators:x:15014:
BUILTIN/Account Operators:x:15015:
BUILTIN/Backup Operators:x:15016:
BUILTIN/Users:x:15017:

(5) 現在可以到ad機器上的活動目錄中可以看到該機器了

接下來介紹加入AD域後的一個簡單應用,要不就不知道這樣加有啥子用了。既然samba服務器已經加入AD域中,那自然會想到,window域中的本地帳號是否能訪問linux機器呢?答案是肯定的。這就是winbind的作用了,當window域中的本地帳號需要登錄linux主機時,winbind服務去ad服務器去驗證該帳號是否合法,而不是到linux本地的/etc/passwd中去驗證,當然如果要用不同的驗證方式,就可以用pam去進行複雜的設定.
(1)確保/etc/samba/smb.conf中配置了passwd server選項,這個折磨過我2天,一定要切記
(2)配置system-auth
auth        required      /lib/security/$ISA/pam_env.so
auth        sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok
auth        sufficient    /lib/security/$ISA/pam_winbind.so use_first_pass
auth        required      /lib/security/$ISA/pam_deny.so

account     required      /lib/security/$ISA/pam_unix.so broken_shadow
account     [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so
account     required     /lib/security/$ISA/pam_permit.so

password    required      /lib/security/$ISA/pam_cracklib.so retry=3
password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password    sufficient    /lib/security/$ISA/pam_winbind.so use_authok
password    required      /lib/security/$ISA/pam_deny.so

session     required      /lib/security/$ISA/pam_limits.so
session     required      /lib/security/$ISA/pam_unix.so

(3)配置sshd,使用ad帳號登錄時,自動創建/home/LIZL/ad帳號目錄
auth       sufficient   /lib/security/pam_winbind.so
auth       required     /lib/security/pam_stack.so service=system-auth
auth       required     /lib/security/pam_nologin.so
account    sufficient   /lib/security/pam_winbind.so
account    required     /lib/security/pam_stack.so service=system-auth
password   required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_limits.so
session    required     /lib/security/pam_mkhomedir.so
session    optional     /lib/security/pam_console.so

(4)順便配置下samba這個pam
#auth       required    pam_nologin.so
auth       required     pam_stack.so service=system-auth
account    required     pam_stack.so service=system-auth
#session    required    pam_stack.so service=system-auth
#session    required     pam_mkhomedir.so skel=/etc/skel umask=0022
#password   required    pam_stack.so service=system-auth


好了,接下來享受下用ad帳號登錄linux主機的快樂吧。。如果要結合samba控制目錄訪問等權限的話,繼續努力研究samba吧。。。

原文出處:使用samba将linux主机加入AD域(一) - 梦想开始的地方 - 博客园
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|