2009年8月5日 星期三

整合Linux 及 Windows AD

參考文件
1 http://www.enterprisenetworkingplanet.com/netos/article.php/3487081
整合 AD 及FEDORA 登入的範例
2 http://technet.microsoft.com/zh-tw/magazine/2008.12.linux.aspx
3 http://fedorasolved.org/network-solutions/ads-post-images
Fedora 的 AD 整合設定範例
4 http://phorum.study-area.org/index.php/topic,31397.0/wap2.html
5 http://phorum.study-area.org/index.php?topic=31397.0
6 http://ssorc.tw/rewrite.php/read-198.html

net ads join -U domainusers
可使用 domainusers 作為登入 網域的使用者名稱

作者: cross 日期: 2006-11-14 15:41:52 閱讀: http://ssorc.tw/index.php?load=read&id=198

cross@ssorc.idv.tw

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

沒有留言: