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 "
make directory " $6 "
chown " $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登入時,名稱是打上domainnameusername,再來是密碼。
或者在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

最後修改日期: 2006 年 11 月 14 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。