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

概念:

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

Centos 7+Samba +winbind+Windows 2012 AD (Samba加入WINDOWS AD域)_第1张图片

修改内存中设定,让其立即生效:       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 [email protected]:
[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

转载于:https://www.cnblogs.com/chenfuhai/p/11058381.html

你可能感兴趣的:(Centos 7+Samba +winbind+Windows 2012 AD (Samba加入WINDOWS AD域))