2013-07-30

使用 Samba 架設 File Server,整合 AD 2003 帳號,並支援 User Security

使用 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 = test.lab.corp <- 密碼主機
  encrypt passwords = yes <- 密碼加密
  wins server = 10.10.1.1 <- 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.10.1.1
  或
  vi /etc/hosts
  10.10.1.1 test.lab.corp.com lab.corp
  只要修改其中一種能查詢到 lab.corp 網域即可。

 3. 修改 Kerberos
   vi /etc/krb5.conf
  [libdefaults]
  default_realm = test.lab.corp <- AD 主機

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

  [domain_realm]
  .example.com = LAB.CORP <- 完整網域名稱
  example.com = LAB.CORP <- 完整網域名稱

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

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

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


 5. 加入 sample.com 網域
  net ads join -U test001 <- test001 為網域帳號
  test001'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@LAB.CORP <- 網域名稱要大寫
  若密碼正確會跳回命令提示字元
  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 = lab\gavin lab\test001 <- 允許的使用者,格式為 網域\帳號 
   public = yes <- 是否公開
   writable = yes <- 是否可寫入

  service smb restart

四、開啟 ACL
      vi /etc/fstab
  /dev/hdaX /ftpdata ext3 defaults,acl 1 2

  # mount -ro,remount /dev/hdaX <- 重新掛載
  開啟 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 的指令還原到原先的資料夾中。

沒有留言:

張貼留言