异构 ? 系统差异应该成为过去式, 专注在应用和数据 -- 异构平台整合策略之2--Samba/Winbind

2 篇文章 0 订阅
1 篇文章 0 订阅

本文是异构平台整合策略第二篇。其他内容将陆续推出以方便IT运维在特定场合选择最适合的策略; 由于Windows/Linux系统的差异,两者无法直接交互. 因而就需要两者都支持的协议/应用比如Kerberos,LDAP来互相沟通,或者基于一方对另一方功能的模拟而使得对方可以理解支持,比如Samba/Winbind, Server for NIS等;

本文着重讲Samba/Winbind.  Samba是一款给SMB/CIFS 客户端提供file and print service 的开源软件项目,目前稳定的版本是4.6; 里面的winbind 模块可以和Linux NSS/PAM模块协同工作,使得AD域用户可以作为linux 用户在Linux平台登录使用;  同时,Samba也可以把linux 系统加入到 Active Directory, 并把AD作为账户源.  如下图:


看起来不错,应该会是很多熟悉Windows 平台运维人士的选择; 我们来看看Samba/Winbind 加域会有哪些功能:

-> 支持Kerberos/LDAP认证; 支持多域环境;

-> 支持离线认证;

-> 支持SMB/CIFS协议;

-> 支持活动目录RFC2307 属性扩展映射 ** (在测试中未能实现, Idmap 不能识别rfc2307, Redhat5.5/CentOS6)

 

关于如何配置Samba/Winbind:

1. 安装Samba/Winbind:

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

 

2. 确认主机名/时间同步设置和防火墙:

a. 修改主机名:

# vim /etc/sysconfig/network
##主机名后缀为test.com,且主机名不能重复。

b、修改DNS

# vim /etc/resolv.conf
##修改为如下内容
search test.com
nameserver 192.168.18.210

c、编辑vim /etc/hosts,取消本机计算机名部分解析

d、vim /etc/sysconfig/iptables文件,添加两条策略,允许本机与DC之间的全部通讯:

-A OUTPUT -m state --state NEW -m tcp -p tcp -d 192.168.18.210 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.18.210 -j ACCEPT

重启服务器使所有更改生效

 

3. 把Linux机器加入域:

 

a、使用setup配置工具,并选择“验证配置”,选择下面三项:

“use winbind” ##对应中文“使用winbind”
“use kerberos” ##对应中文“使用kerberos”
“use winbind authertication” ##对应中文“使用winbind验证”

然后点击【下一步】,按如下填写:

域:test.com
KDC:dc-01.test.com
管理服务器:dc-01.test.com
##并勾选下面两个选项。

再次点击【下一步】,按如下选择或填写:

安全模型:ADS
域:TEST ##注意大写
域控制器:dc-01.test.com
ADS域:test.com
模板Shell: /bin/bash

点击【加入域】,弹出保存提示,选择【是】后,会弹出输入域管理员账号密码的,按提示输入即可。
完成后退出【setup】,看屏幕提示是否有如下这样的错误:

【net_update_dns_internal: Failed to connect to our DC!】

如果返回如下,则加入正常:

[/usr/bin/net join -w TEST -S dc-01.test.com -U Administrator]
Enter Administrator's password:<...>
Using short domain name -- TEST
Joined 'PAYSERVER02' to dns domain 'test.com'
启动 Winbind 服务: [确定]
正在启动 oddjobd: [确定]

b、测试winbind读取域控信息是否正常

# wbinfo –t ##测试RPC通讯,提示succeeded表示成功
cheTEST the trust secret for domain TEST via RPC calls succeeded

# wbinfo -u ##查看域用户
TEST\guest
TEST\administrator
TEST\krbtgt
TEST\barlowliu
……以下省略……

##如果如上,则读取正常

# wbinfo -g ##查看域组
TEST\domain computers
TEST\cert publishers
TEST\domain users
TEST\domain guests
TEST\ras and ias servers
TEST\domain admins
TEST\schema admins
TEST\enterprise admins
……以下省略……

上述两个命令执行后如果可以看到域中的用户和组则正常。如果提示如下,则表示与域控制器同步还未完成:

Error looking up domain users ##稍等后再测试即可

c、使用域账户登录
此时就可以使用 xxx@test.com这样的域用户登录Linux服务器了,但登录后显示如下:

Could not chdir to home directory /home/TEST/barlowliu: No such file or directory
-bash-4.1$

##没有自动创建用户的家目录,下面就来解决该问题

5、解决域用户登录后没有家目录的问题:

a、编辑/etc/samba/smb.conf配置文件,添加如下一行:

template homedir = /home/%D/%U
##修改如下一行如下,就可以实现在登录时不需要输入域名
winbind use default domain = true

b、编辑/etc/pam.d/system-auth,增加如下一行:

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

c、vim /etc/pam.d/sshd 统一增加上面那一行:

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

 d. 测试是否生效:

su - administrator

-SH-3.2$ 就是正常;

 e. 可以查看AD发现计算机账户已经生成;

 

该方案遗留的问题:

==============

作为新的一个企业场景, Samba/Winbind 已经可以满足 账户生命周期管理,以及验证授权的绝大部分场景. 但如果是一个现有Linux平台并保有大量的原Linux数据,如果想要整合到Windows平台并且保留旧有的权限体系的话,Samba/Winbind 就会有一个问题:

RFC2307扩展里面的UID/GID在samba/winbind 方案里面无法识别. winbind 会自动根据RID来生成一个唯一的UID/GID标识每一个用户,这么一来就会导致权限继承的打断. 而samba 官方所标称的如下配置,在我的测试中是不工作的. 有机会用最新的Linux/Samba再测试一次;

# idmap config for the SAMDOM domain
idmap config SAMDOM:backend = ad
idmap config SAMDOM:schema_mode = rfc2307
idmap config SAMDOM:range = 10000-999999

如果大家有做成功的,欢迎留言沟通交流;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值