作者 主題: Linux用winbind與AD認證筆記的補充説明  (閱讀 23976 次)

0 會員 與 1 訪客 正在閱讀本文。

promisexiong

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
首先表示對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 = <NT-Server-Name>
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 &szlig;加入winbind
shadow: files
group: files winbind &szlig;加入 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

zhaoqing811027

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
Linux用winbind與AD認證筆記的補充説明
« 回覆 #1 於: 2006-07-20 16:37 »
我下载了selinux-policy-targeted-1.17.30-2.88.noarch.rpm,但是在安装时提示我
warning: selinux-policy-targeted-1.27.1-2.28.noarch.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2
error: Failed dependencies:
        libselinux >= 1.23.5-1 is needed by selinux-policy-targeted-1.27.1-2.28.noarch

我的libselinux版本是1.19.1的,无法删除,其他程序依赖,现在怎么办?我也在getent passwd的时候出现问题,没有读取到AD的帐号

请帮忙,谢谢

yuqian

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
回覆: Linux用winbind與AD認證筆記的補充説明
« 回覆 #2 於: 2008-11-12 16:45 »
问一下,当win2003的AD和samba服务器都整合好之后,如果要给samba里的对应AD用户的文件夹做空间大小的限制(磁盘配额),有什么办法做吗??

jaymsa

  • 活潑的大學生
  • ***
  • 文章數: 409
  • 性別: 男
    • 檢視個人資料
    • Jay's Blog
回覆: Linux用winbind與AD認證筆記的補充説明
« 回覆 #3 於: 2008-11-13 09:40 »
问一下,当win2003的AD和samba服务器都整合好之后,如果要给samba里的对应AD用户的文件夹做空间大小的限制(磁盘配额),有什么办法做吗??
不知道我這樣想對不對....
我也是實做這樣的系統,我在磁碟管理無法去做磁碟配額,但我試著在linux上做quota可以成功,不知道這是不是正確作法??
Linux真好玩...博大精深!!
RHCE,ISO27001,ISO20000
http://jayclub.no-ip.org/jayblog