Centos 7+Samba +winbind+Windows 2012 AD (Samba加入WINDOWS AD域)


公司辦公系統采用windows系統,有大量的數據需要共享。其中需要把辦公數、生產數據分開保存。

我打算采用Samba管理,便有以下的使用過程。在此過程中有參閱以下samba文檔:

http://www.mamicode.com/info-detail-2306907.html
https://www.jianshu.com/p/f2fd9e88077c
https://www.cnblogs.com/Ericshang/p/9070978.html
https://www.cnblogs.com/rusking/p/3993148.html
https://blog.csdn.net/QTM_Gitee/article/details/84060845#3__Samba__288

https://xz.aliyun.com/t/5004#toc-16

https://www.cnblogs.com/fatt/p/5856892.html

概念:

PDC:主域控制器,一般用來做驗證
BDC:備份域控制器,一般用於和主域做同步帳號等操作
KDC:密鑰分發中心,說白了,就是kerbrose服務器。這個需要對kerbrose有一定的了解,這里不多說了
PAM:可插拔認證模塊,這玩意就是使用不同的驗證方法來驗證你所需要的服務,比如sshd,login,ftp等。這些服務都對應一個配置文件,這個配置文件位於/etc/pam.d/下。而支持這些驗證的動態庫位於/lib/security/下。

SRV:服務器定位資源記錄,要使活動目錄正常工作,DNS必須支持SRV。活動目錄客戶端和域控制器使用SRV記錄決定域控制器的ip地址。使用SRV記錄決定域控制器的ip地址

 

 

 

samba簡介

Samba,是種用來讓UNIX系列的操作系統與微軟Windows操作系統的SMB/CIFS(Server Message Block/Common Internet File System)網絡協定做連結的自由軟件。

目前samba不僅可存取及分享SMB的資料夾及打印機,本身還可以整合入Windows Server的網域,扮演為網域控制站(Domain Controller)以及加入Active Directory成員。簡而言之,此軟件在Windows與UNIX系列OS之間搭起一座橋梁,讓兩者的資源可互通有無。

1.基礎准備:

A .修改hosts:  # vim /etc/hosts

B. 修改dns:# vim /etc/resolv.conf

C.修改selinux : # vim /etc/sysconfig/selinux

修改內存中設定,讓其立即生效:       setenforce 0

D. 修改防火牆:# systemctl stop firewalld && systemctl disable firewalld

 

2. yum安裝samba所需軟件:

    yum -y install pam_krb5* krb5-libs* krb5-workstation* krb5-devel*  samba samba-winbind* samba-client* samba-swat*

    安裝完成后,請啟動相關服務:

     systemctl start smb nmb
     systemctl start winbind

3.  配置文件說明:

      kerberos :

              配置文件:#   /etc/krb5.conf

              作用:一種網絡認證協議,其設計目標是通過客戶端+KDC+服務端提供強大的認證服務。

      samba:

              配置文件:#  /etc/samba/smb.conf

              作用:samba的配置文件,通過該文件來管理文件共享、用戶權限,samba服務設置、與winbind交互等。

      winbind:

              配置文件:

              作用:Samba作為域成員運行,則winbindd服務將負責向域操作系統(AD)提供有關域用戶和組的信息。

              winbindd服務為用戶和組提供唯一的ID給Linux,必須在samba配置文件(/etc/samba/smb.conf)中配置ID映射。
              samba winbind包里包含上面說的做映射的服務庫(NSS library)和客戶端工具。
              samba winbind clients包里只含有客戶端工具(wbinfo , ntlm_auth)。

      nssiwtch:

              配置文件:# /etc/nsswitch.conf

              作用: Nsswitch.conf文件通常控制着用戶(在passwd中)、口令(在shadow中)、主機IP和組信息(在group中)的搜索。

            

PAM模塊接口(模塊管理組)

PAM為認證任務提供四種類型可用的模塊接口,它們分別提供不同的認證服務:

單個PAM庫模塊可以提供給任何或所有模塊接口使用。例如,pam_unix.so提供給四個模塊接口使用

 

配置文件:   /etc/pam.d/system-auth     

作用: 用戶身份認證

配置文件:   /etc/pam.d/password-auth

作用:  密碼認證

√ auth

- 認證模塊接口,如驗證用戶身份、檢查密碼是否可以通過,並設置用戶憑據

√ account

- 賬戶模塊接口,檢查指定賬戶是否滿足當前驗證條件,如用戶是否有權訪問所請求的服務,檢查賬戶是否到期

√ password 

- 密碼模塊接口,用於更改用戶密碼,以及強制使用強密碼配置

√ session

- 會話模塊接口,用於管理和配置用戶會話。會話在用戶成功認證之后啟動生效

 

配置文件:  /etc/security/pam_winbind.conf

作用: 將AD域中用戶連接samba服務器后,限制在samba服務器中的 / home目錄對應的AD用戶目錄下:

例如AD用戶小明連接到samba后,將權限限制在samba中的/home/xiaoming/中(共享目錄除外) 

 

 

 

3. 與AD同步時間:

      ntpdate 192.168.8.188

   

4.具體配置:

# /etc/samba/smb.conf(只顯示全局設置)

[global]
        workgroup = SILANIC
        realm = SILANIC.CN
        security = ads
        idmap config * : range = 16777216-33554431
        template shell = /bin/bash
        template homedir = /home/%D/%U
        winbind enum users = yes
        winbind enum groups =yes
        winbind use default domain = true
        winbind offline logon = true

        server string = PT2CTD
        log file =/var/log/samba/log.%m
        max log size = 50

        passdb backend = tdbsam
        encrypt passwords = yes
        printing = cups
        printcap name = cups
        load printers = yes

# /etc/nsswitch.conf  (只顯示修改項)

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

# /etc/krb5.conf(全部顯示)
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
 default_realm = SILANIC.CN
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
  SILANIC.CN = {
   kdc = 172.17.1.11
   admin_server = 172.17.1.11
  }

[domain_realm]
 .example.com = SILANIC.CN
  example.com = SILANIC.CN

 

# /etc/pam.d/system-auth(在末行增加以下內容:)

session     required      pam_mkhomedir.so

# /etc/pam.d/password-auth(在末行增加以下內容:)

session     required      pam_mkhomedir.so

# /etc/security/pam_winbind.conf (在末行增加以下內容:)

require_membership_of =S-1-5-21-1111111111-1111111111-1111111111-111

 

 5. 加入AD域:

net ads join -Uadministrator

加入后,請重新服務:

systemctl restart smb
systemctl restart winbind

 

6.測試winbind

    wbinfo -t
    wbinfo -u
    wbinfo -g

7.測試kerberos

kinit administrator

[root@pt2ctd samba]# kinit administrator
Password for administrator@SILANIC.CN:
[root@pt2ctd samba]#

8. 加入域時各種報錯:

 A. 先清理緩存

rm -rf /var/lib/samba/private/secrets.tdb

rm -rf /var/lib/samba/gencache.tdb

B. samba退出域

net ads leave -U cdroot

 

9.常用命令

 A. 重載smbdnmbdwinbindd的配置,請將reload-config消息類型發送到all目標:

# smbcontrol all reload-config

  

 B.測試samba配置參數:

 # testparm /etc/samba/smb.conf

C. 加入AD域命令:

net ads join -U "DOMAIN\administrator"

10.安全防護:

設置SELinux,請在目錄中設置samba_share_t上下文:

# semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?"
# restorecon -Rv /srv/samba/example/

打開所需的端口並使用firewall-cmd實用程序重新加載防火牆配置:

# firewall-cmd --permanent --add-service=samba # firewall-cmd --reload
11. samba共享說明
要提供分享資源時,須先把欲分享的資源以 [ ] 符號括住,底下通常會帶指令和參數來表示此資源的設定和存取權限等,詳情如下:

comment---------注釋說明
path------------分享資源的完整路徑名稱,除了路徑要正確外,目錄的權限也要設對
browseable------是yes/否no在瀏覽資源中顯示共享目錄,若為否則必須指定共享路徑才能存取
printable-------是yes/否no允許打印
hide dot ftles--是yes/否no隱藏隱藏文件
public----------是yes/否no公開共享,若為否則進行身份驗證(只有當security = share 時此項才起作用)
guest ok--------是yes/否no公開共享,若為否則進行身份驗證(只有當security = share 時此項才起作用)
read only-------是yes/否no以只讀方式共享當與writable發生沖突時也writable為准
writable--------是yes/否no不以只讀方式共享當與read only發生沖突時,無視read only
vaild users-----設定只有此名單內的用戶才能訪問共享資源(拒絕優先)(用戶名/@組名)
invalid users---設定只有此名單內的用戶不能訪問共享資源(拒絕優先)(用戶名/@組名)
read list-------設定此名單內的成員為只讀(用戶名/@組名)
write list------若設定為只讀時,則只有此設定的名單內的成員才可作寫入動作(用戶名/@組名)
create mask-----建立文件時所給的權限
directory mask--建立目錄時所給的權限
force group-----指定存取資源時須以此設定的群組使用者進入才能存取(用戶名/@組名)
force user------指定存取資源時須以此設定的使用者進入才能存取(用戶名/@組名)
allow hosts-----設定只有此網段/IP的用戶才能訪問共享資源
allwo hosts = 網段 except IP
deny hosts------設定只有此網段/IP的用戶不能訪問共享資源
allow hosts=本網段指定IP指定IP
deny hosts=指定IP本網段指定IP
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM