Fedora 18 下Samba 配置二 -----加入windows 域

概要说明:

SAMBA加入域有两种作用:一种只是能把域用户作为samba共享的访问者,既samba配置成功后可以用域用户来访问共享。二是可以用域用户来登录本服务器。这两种功能是可以独立的,并不需要配置在一起。

[global]

workgroup = TEST

netbios name = fc18-domain

(功能1,参数)    (功能1的实现还需修改nsswitch.conf, krb5.conf)

security = ads    //domain 也一样,当为domain 时不用realm一项

realm = TEST.COM

(encrypt passwords = yes) 默认为yes

password server = 192.168.61.1

idmap config * : range = 100000-500000

idmap config * : backend = tdb

winbind use default domain = false

winbind offline logon = false

winbind separator = +

(功能2,参数)(功能2实现还需pam的认证配置,既system-auth-ac 和password-auth-ac 中添加pam_mkhomedir.so )

winbind enum  users = Yes  ( 这二行表示wiinbind把域用户映射到本地,既getent passwd 可以看到域用户,这两行是可选的)                  winbind enum groups = Yes

template homedir = /home/%D/%U  ( 这二行指定域用户登录到本服务器的主目录与shell,是必需的 )

template shell = /bin/bash

[demo] (功能1的实现,为域用户分配的共享)
        comment = Data
        path = /export
        valid users =@"TEST+wincaiwu",@"TEST+domain users"
        write list = +"TEST+wincaiwu"
        guest ok = No
        force create mode = 0777
        force directory mode = 0777
#       create mask = 0766
#       directory mask = 0766


实践过程如下:

实验:

把fedora 18 用samba 作为一个文件服务器,加入由windows 2003 作为域控制服务器的域中(同时也作为DNS服务器)。

fedora 18 机器名为fc18-domain( 既 netbios name = fc18-domain ), ip:192.168.61.3

windows 2003 域控制器:机器名全称为:win2003-serv.test.com ,域名为 :test.com,ip:192.168.61.1。


samba配置步骤:

1,同步文件服务器时间,因为fedora 与windows域控制器的时间差值不能大为5分钟。

2,配置DNS,

3,安装kerberos,配置,并测试。

4,samba 配置,

5,认证配置 setup。 选择 Use Winbind  ,Use Kerberos , Use Winbind Authentication ( 修改 /etc/pam.d/system-auth-ac)

6,修改,测试AD。


详细步骤:

1,同步时间。kerberos 认证要求时间差不能大于5分钟。

 编辑 /etc/ntp.conf 配置文件,把windows 域控制器作为fedora 的时间源。

 # Enable writing of statistics records.

#statistics clockstats cryptostats loopstats peerstats

server 192.168.61.1

# service ntpd stop

Shutting down ntpd: [ OK ]

# ntpdate 192.168.61.1         //立即开始同步

5 Apr 18:03:30 ntpdate[4134]: adjust time server 10.16.143.163 offset

-0.002382 sec

# service ntpd start

Starting ntpd: [ OK ]

#

2,配置DNS。

编辑 /etc/resolv.conf 配置文件:(PEERDNS=yes时会修改(DNS)此文件,开启DHCP时,PEERDNS默认为yes) 

----------可以通过修改/etc/hosts(静态主机名IP表)添加DNS服务器来解析 (192.168.61.1   win2003-serv.chengmdemo.com)

domain test.com

search test.com

nameserver 192.168.61.1

注:这有如果网络没有配好的话,每次重启网络服务后systemctl restart network.service 都会被重写,

可以直接写网口配置文件:/etc/sysconfig/network-scripts/ifcfg-eth (x)

DNS1=192.168.61.1

DOMAIN=test.com

3,kerberos 配置。

  yum  list installed | grep krb5      

krb5-libs.x86_64                        1.10.3-5.fc18                  @anaconda

krb5-workstation.x86_64                 1.10.3-5.fc18                  @anaconda

pam_krb5.x86_64                         2.4.1-1.fc18                   @anaconda

要确保以上三个RPM 包安装,没有安装则:yum install krb5-libs krb5-workstation  pam_krb5

配置kerberos ,修改 /etc/krb5.conf 配置文件。 (以下加粗斜体为所需要的修改)

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log



[libdefaults]
 default_realm =TEST.COM
 dns_lookup_realm =true
 dns_lookup_kdc =false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
# default_realm = EXAMPLE.COM


[realms]
# EXAMPLE.COM = {
#  kdc = kerberos.example.com
#  admin_server = kerberos.example.com
# }
 VANSTOR.COM={
  kdc=WIN2003-SERV.TEST.COM:88                              //当DNS有误时,也可用IP地址。
   admin_server=WIN2003-SERV.TEST.COM:749
   default_domain=test.com
 }
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
 .vanstor.com=TEST.COM
 vanstor.com=TEST.COM

4,samba 配置。

修改配置文件 /etc/samba/smb.conf。在 global添加如下:

[global]   

workgroup = TEST

security = ads 

realm = TEST.COM

  password server = 192.168.61.1

idmap config * : range = 100000-500000

winbind enum users = yes              (这两行表示winbind 映射到本地用户,既getent passwd 可以看到域用户)

winbind enum groups = yes

winbind separator = +

template homedir = /home/%D/%U         (这两行指定winbind本地认证,与samba共享无关)功能2

template shell = /bin/bash

winbind use  defalut domain = false

winbind offline  logon  = false

5,配置认证:当前服务器增加Winbind作为的获得域内资源和进行认证的方式之一。pam_winbind.so模块一般用于混和集中式认证环境的用户认证中。(见前一偏文档:常用的Linux可插拔认证模块(PAM)应用举例(二)(如果只是想域用户进行samba共享,不想域用户登录系统,可以不用配置)--功能2.

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

#%PAM-1.0

# This file is auto-generated.

# User changes will be destroyed the next time authconfig is run.

auth        required      pam_env.so

auth        sufficient    pam_unix.so nullok try_first_pass

auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success

auth        sufficient    pam_winbind.so use_first_pass

auth        required      pam_deny.so



account     required      pam_unix.so broken_shadow

account     sufficient    pam_succeed_if.so uid < 1000 quiet

account     [default=bad success=ok user_unknown=ignore] pam_winbind.so

account     required      pam_permit.so



password    requisite     pam_pwquality.so try_first_pass retry=3 type=

password    sufficient    pam_unix.so sha512 nullok try_first_pass use_authtok

password    sufficient    pam_winbind.so use_authtok

password    required      pam_deny.so



session     optional      pam_keyinit.so revoke

session     required      pam_limits.so

-session     optional      pam_systemd.so

session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid

session     required      pam_unix.so

session     optional      pam_winbind.so


6,修改NSS,测试AD

修改/etc/nsswitch.conf,

passwd:     files winbind

shadow:     files winbind

group:      files winbind

修改完后重启smb,winbind 服务:

systemctl  restart smb.service

systemctl restart winbind.service


然后以Windows管理员administrator的身份执行kinit命令以从win2003-serv上获得Kerberos的TGT票据。方法是执行命令:

kinit administrator@TEST.COM 

该命令执行成功没有任何提示,即说明了已经正常获得了TGT票据。

加入成功之后要确保在当前系统上执行wbinfo –t无错误信息提示:

wbinfo -t

命令wbinfo的功能是从winbind daemon中查询所获得的信息。而-t选项用于验证当前的Linux服务器加入到Windows域内之后是否在域内建立了可信任的服务器账号。如果有报错信息的话,可能需要重启一下winbind服务。

   手动把linux加入到windows域:
 net ads join -U administrator@TEST.COM 

在正常完成上述操作之后,就可以通过wbinfo和getent命令获得从Windows活动目录上获得的用户与组的信息。所有获得的域内用户信息都是以Kerberos realm name + username/groupname的格式出现。这就意味这以后在使用这些Windows帐户登录系统或者服务的时候也要使用该格式。而且在windows 2003的组件“active directory users and computers”的computers中可以看到刚加入域的该服务器的信息。(功能2)

自动创建用户目录。当windows系统上的用户administrator成功地在RHEL上登录之后,唯一的问题是没有自己的主目录。这个时候终于轮到pam_mkhomedir.so模块出场了!

在这个方案中我们只需要简单修改PAM和系统用户登录的相关配置文件/etc/pam.d/system-auth并增加一行session的控制信息如下:

session     required      pam_mkhomedir.so skel=/etc/skel umask=0022 silent

silent不打印创建目录信息

skel 告诉pam_mkhomedir.so拷贝/etc/skel里的文件到新创建的目录里.

umask 是创建的目录的权限的反码(000 表示权限为777)
创建哪个目录是在smb.conf里的template homedir定义的。

7,完成上述步骤 后,wbinfo -g ,wbinfo -u 即可看到域内用户组与用户信息

[root@localhost /]# wbinfo -g
VANSTOR+dhcp users
VANSTOR+dhcp administrators
VANSTOR+domain computers
VANSTOR+domain controllers
VANSTOR+schema admins
VANSTOR+enterprise admins
VANSTOR+cert publishers
VANSTOR+domain admins
VANSTOR+domain users
VANSTOR+domain guests
VANSTOR+group policy creator owners
VANSTOR+ras and ias servers
VANSTOR+dnsadmins
VANSTOR+dnsupdateproxy

[root@localhost /]# wbinfo -u
RETHAT+root
VANSTOR+administrator
VANSTOR+guest
VANSTOR+krbtgt
VANSTOR+test


接下来就可以创建共享,使用域名用户访问。

在 /etc/samba/smb.conf 中添加:

[demo]

comment = RHEL6-Windows Active Directory Demo Share

path=/demo

create mask = 0660

directory mask = 770

writeable = yes

browseable = yes

valid users = +"TEST+domain users"   //   TEST+domain user

guest ok = no

# mkdir /demo

# chmod 2770 -R /demo

# chgrp -R "DEMO+domain users" /demo

# ls -la /demo

drwxrwxrwx    2 root TEST+domain users  4096 Sep  3 09:50 demo


重启smbd,winbind 

 systemctl restart smb.service

systemctl restart  winbind.service

从windows 客户端访问共享资源:(windows 下域名与用户名用\分开)

net use z: \\192.168.61.3\demo /user:TEST\test

输入 'TEST\test' 的密码来连接到 '192.168.61.3':

命令成功完成。

此时映射成功。


注意:

1.要确保防火墙关闭。systemctl  stop  firewalld.service

2.要确保SElinux 关闭。setenforce  0

3.有时kinit administrator@TEST.COM 获取ticket成功,加入域net rpc join -U administrator@TEST.COM 不成功,

可重启winbind ,systemctl  restart  winbind.service !

加入域的几种命今格式: 

net ads join -U administrator               //对DNS有要求

net rpc join -U administrator@TEST.COM                //常用,与kinit  administrator@TEST.COM 一起!

net rpc join -U administrator%passwd

net rpc join -S WIN2003-SERV.TEST.COM -U administrator%passwd


错误分析:(redhat 文档翻译 )

Kerberos Init Fails

现象:

# kinit administrator@TEST.COM

Password for administrator@TEST.COM:

kinit: Preauthentication failed while getting initial credentials

解释:指定的用户名或密码不正确。

Domain Join Secceeds--DNS Update Fails ,加入域成功,但DNS更新失败

现象:

# net join -w VANSTOR -S WIN2003-SERV.TEST.COM -U Administrator
Enter Administrator's password:<...>
Using short domain name --

Enter Administrator's password:<...>

Using short domain name --TEST
Joined '

Joined 'RETHAT--TEST' to realm 'vanstor.com'
DNS update failed!

DNS update failed!

解释:用FQDN来设置/etc/hosts

192.168.61.1win2003-serv.test.com

192.168.61.3       fc18-domain.test.com

Domain Join Failure – No Suitable Server

现象:

#net rpc join -w TEST -S WIN2003-SERV.TEST.COM -U administrator

Unable  to  find a suitable server for domain VANSTOR!

解释:在/etc/sysconfig/network 下指定本机FQDN,

NETWORKING=yes

HOSTNAME=rethat-test.test.com

并解定/etc/resolv.conf

domain  test.com

search  test.com

nameserver  192.168.61.1

重启网络服务。

Error Looking Up Domain Users/Groups – AD Join is OK

现象:

# wbinfo -u

Error looking up domain users

# wbinfo -g

Error looking up domain groups

# net ads testjoin

Join is OK

解释:winbind 守护进程没有运行或需要重启

   systemctl restart  winbind.service

shell 登录成功,又立既退出。

解释:配置samba时没有指定template shell。

shell登录成功,但不能chdir 

解释:父目录不存在,创建它。

mkdir  -p /home/TEST

chmod 2770 -R /home/TEST

chgrg -R "VANSTOR+domain users"  /home/VANSTOR


补充:Red Hat Enterprise Linux Reference Guide

setup 认证配置:Authentication configuration

认证包括:用户帐号信息认证(左侧),密码认证(右侧)。

用户认证:
1,Enable NIS Support  

此选项配置系统作为NIS客户端,与NIS服务器连接来认证用户与密码。需指定NIS domain与NIS服务器(如NIS服务器没有指定,守护进程常试通过广播来查找)

相关包:ypbind,

如果使能了NIS,portmap和ypbind服务会被启动,并设置为开机时启动

2,Enable LDAP Support

此选项配置系统检索用户信息通过LDAP.(也可作为密码认证选项配置)

需指定LDAP服务器的ip地址,和LDAP Search Base DN(用于检索用户信息的可识别名称)。

可选TLS来加密发送给LDAP服务器的密码。

相关包:openldap-clients

3,Winbind 

此选项配置系统连接到Windows Active Directory或Windows domain controller,去获取用户信息。

(也可作为服务器密码认证选项配置)

4,Cache User Information 

此选项使能name service cache daemon守护进程nscd,并且配置它为开机启动

相关包:nscd

5,Enable Hesiod Support 

此选项配置系统检索用户信息通过远和Hesiod数据库。

相关包:hesiod

密码认证:
1,Enable Kerberos Support 

此选项使能Kerberos密码认证。

需设置:realms{

kdc: 指定密钥分发中心KDC,它是签发kerberos票据的服务器

admin server:指定管理服务器(运行着kadmind)

}

包:krb5-libs ,krb5-workstation

2,Enable LDAP Support 

使用此选项为使用标准PAM用户程序开启LDAP密码认证。参见

3,Use Shadow Passwords 

使用隐藏密码格式的/etc/shadow文件来存放密码(用户还在/etc/passwd).linux会默认安装。

包:shadow-utils

4,Winbind 

配置系统去连接Windows Active Directory 和Windows domain controller。如上用户认证。

5,Use MD5 Passwords 

使能MD5加密密码,把密码加密成256位字符。默认安装选中。

6,Enable SMB Support 

配置PAM来使用SMB服务器来认证用户,

需配置:

workgroup: 工作组

Domain Controllers: 指定SMB域控制器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值