设为首页 收藏本站
查看: 398|回复: 0

[经验分享] Windows AD 与Samba完美结合

[复制链接]

尚未签到

发表于 2016-5-21 07:29:48 | 显示全部楼层 |阅读模式
  Windows AD 与Samba完美结合
Machine 1:
OS:    Windows Server 2003
HostName:dc.test.com
IP:172.18.30.125/24
Machine 2:
OS:    RedHat Enterprise Linux 5.2
HostName:server1
IP:172.18.30.88

目的:
1.将server1的/mnt/share目录共享出来,并且使用dc.keynet.com.cn上的用户做为samba用户进行论证;
2.实现dc上的用户可以使用ssh远程连接到server1;



所需安装包:
    samba-3.0.28-0.el5.8
    krb5-libs-1.6.1-25.el5

操作:
1.安装所需源码包;
2.Kerberos配置
Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/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 = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
TEST.COM = {
   kdc = dc.test.com:88
   admin_server = dc.test.com:749
   default_domain = TEST.COM
}

[domain_realm]
.test.com = TEST.COM
test.com = TEST.COM

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

3.samba配置
[global]
   workgroup = TEST
   netbios name = server1
   server string = Samba & AD Test
   security = domain
   password server = dc.test.com
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   winbind separator = /
   template homedir = /home/test/%U
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false
   preferred master = no
   log file = /var/log/samba.log
   winbind enum groups = yes
   winbind enum users = yes
注:此二行表示为是否在linux下添加AD帐号,只有加了此二行,在使用getent passwd和gentent group才能显示AD上面的帐号和组

[homes]
        comment = User's Home Directories
        path = /home/test/%U
        browseable = no
        valid users = %U  //特别注意:此二处为一定要是%U,而不能使用%S ,%U 需要的客户端用户名即登录用户名,而%S是 当前共享名
        writable = yes

[Share]
        comment = Share
        path = /mnt/share
        public = yes
        guest ok = no
这些设置的一个简单的说明如下:

- idmap uid - 指定一个uid范围,该范围内的uid被用来映射UNIX用户到windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,winbind启动以后,也不能在该ID范围内添加用户。

- idmap gid - 指定一个gid范围,该范围内的gid被用来映射UNIX用户到windows的组SID,而且要确保这个id范围内没有被本地或者NIS组占用,winbind启动以后,也不能在该ID范围内添加新组。

- winbind separator - 指定一个字符作为分隔符,winbind将使用该分隔符来用户或组名。使用该配置将使得域用户表示为 "MYDOMAIN+username",域组被表示为"MYDOMAIN+Domain Users"

- winbind enum groups和winbind enum users - 指定winbind是否在系统上创建域的组/用户,一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。

- template homedir - 用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/home/MYDOMAIN/username。

需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然template homedir控制samba在哪里寻找域用户的主目录,但是不会自动创建,所以要自己手动创建,并设定权限。


4.配制NSS
Nss为Name Service Switch,控制帐号的验证修改/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户,内容如下:

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

    hosts:          files dns wins

    bootparams:nisplus [NOTFOUND=retum] files

    protocols:      db files
    services:       files
    ethers:         db files
    rpc:            files
    networks:       files dns
    netmasks:       files

    netgroup:       files

    publickey:      nisplus

    automount:      files
    aliases:        files nisplus

5.重启samba与winbind服务
    sudo /etc/init.d/samba restart
    sudo /etc/init.d/winbind restart

6.将server1加入2003域
    net rpc join -S dc.test.com -U administrator
如果遇到错误提示类似为: Failed to open /var/lib/samba/secrets.tdb
请执行:sudo chmod 777 /var/lib/samba/secrets.tdb

7. 确认Samba主机帐号在AD中正确注册
    wbinfo –t
    checking the trust secret via RPC calls succeeded
    说明主机信任已成功建立

    使用wbinfo -u列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
如果提示成功回入域,但是使用wbinfo -u得到错误信息,那可以使用authconfig-tui来加入域,先选中winbind,smb选中,在下一步的winbind settings中将server1加入域;

此时可以使用windows客户端来访问samba服务器了。

如果samba服务器上安装有iptables服务,而且filter链里的INPU 为DROP,请打开以下端口,方能正常使用samba服务:
TCP: 139,445
UDP:137,138
TCP:88(此为krb5验证端口)

8.配置PAM,将/etc/pam.d/login编译成如下内容:
#%PAM-1.0
auth       required     pam_securetty.so
auth            sufficient      pam_winbind.so
auth            sufficient      pam_unix.so use_first_pass
auth            required        pam_stack.so service=system-auth
auth         required     pam_nologin.so

account         sufficient      pam_winbind.so
account     required     pam_stack.so service=system-auth
password       required     pam_stack.so service=system-auth

session    required     pam_stack.so service=system-auth
session    optional     pam_console.so

保存退出!
此时,应该可以使用AD用户来登陆linux主机了,但是现在登陆后会发现没有用户家目录,所以还需要进行如下设置:

编辑/etc/pam.d/system-auth添加下面一行:

session required /lib/security/pam_mkhomedir.so

9.如果开启了SElinux,那请执行:
setsebool -P samba_enable_home_dirs on

10.执行:cp /etc/pam.d/login /etc/pam.d/sshd

至此,已经可以使用AD的用户进行ssh连接到server1了.并且在ssh连接成功后会自动创建其目录。

但是如何才能让windows用户访问samba的时候自动创建家目录呢?
  
  
  附:当l实现AD用户可以登陆linux主机后,也就可以对AD用户进行quota设置了。


参考资料:http://wiki.samba.org/index.php/Samba_&_Active_Directory
    http://emcome.iyunv.com/admin/blogs/306838

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-219684-1-1.html 上篇帖子: Windows Live Messenger 2009 登录错误 80040154 的解决办法 下篇帖子: Windows Server活动目录之迁移
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表