将CentOS 6上的Samba 3加入Active Directory
时间:2020-01-09 10:41:07 来源:igfitidea点击:
说明
在小型环境中,仅使用本地帐户管理Linux服务器是可管理的。但是,在托管成百上千个服务器的大型环境中,管理每个服务器,手动维护用户帐户和密码的任务将是一项艰巨的任务。需要有效的中央身份和访问解决方案来管理此类环境。在大型Microsoft Windows数据中心中,通常会看到Active Directory被用作身份和访问解决方案。
Samba能够连接到Active Directory域,以从Windows环境中验证用户凭据。但是,由于Samba不维护中央身份存储,因此每个Samba服务器之间每个用户的UID和GID将有所不同。
安装所需的Linux软件包
将以下软件包安装到Linux机器上。没有域凭据,我们将无法加入Active Directory域或者使用域凭据进行身份验证。
- Samba
- Samba-winbind
- oddjob-mkhomedir
要同时安装所有三个软件包,请以Root或者具有Root特权运行以下命令。
yum install samba samba-winbind oddjob-mkhomedir
配置Samba
Samba是允许Linux与Windows交互的关键组件。必须使用NetBIOS广播和域前缀将其配置为使Linux服务器在网络上显示为Windows计算机。
- 制作/etc/samba/smb.conf的备份副本
cp /etc/samba/smb.conf /etc/samba/smb.conf.old
- 在文本编辑器中打开/etc/samba/smb.conf。在此示例中,我将使用VI。
vi /etc/samba/smb.conf
- 编辑smb.conf以使其类似于下面的示例,修改突出显示的行以匹配环境。
[global] log file = /var/log/samba/log.%m max log size = 50 security = ads ::HL::netbios name = LINUX-SRV1 ::HL::realm = CONTOSO.COM ::HL::password server = MYDC01.CONTOSO.COM MYDC02.CONTOSO.COM ::HL::workgroup = CONTOSO idmap uid = 10000-500000 idmap gid = 10000-500000 winbind separator = winbind enum users = no winbind enum groups = no winbind use default domain = yes template homedir = /home/%U template shell = /bin/bash client use spnego = yes domain master = no
了解选项的定义:
netbios名称 |
---|
Samba服务器将用于Windows客户机的netbios(单标签)名称 |
Samba服务器正在加入的Active Directory域的完全限定名 |
将处理Samba登录请求的域控制器列表,用空格分隔 |
与Samba服务器的netbios名称类似,但域除外。Active Directory域(如Windows计算机)具有netbios名称 |
有关Samba选项的详细信息,请查看官网手册 |
修改名称服务交换机配置文件
Linux使用名称服务开关来查找帐户数据库。默认情况下,仅本地文件将被访问。我们需要通过添加winbind作为数据库位置来将Linux指向域控制器。
- 在文本编辑器中打开/etc/nsswitch.conf。
vi /etc/nsswitch.conf
- 找到以下几行:
passwd: files
group: files
然后将winbind添加到它们上,如下所示:
passwd: files winbind
group: files winbind
编辑Kerberos。配置文件
Active Directory使用Kerberos(一种开源网络身份验证协议)来对用户进行身份验证。在Linux服务器之前
- 在文本编辑器中打开/etc/krb5.conf
vi /etc/krb5.conf
- 对其进行修改,使其看起来像下面的示例,替换[value]以匹配环境。
[libdefaults] ::HL::default_realm = CONTOSO.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] ::HL::REALM.INTERNAL = { ::HL::kdc = mydc01.contoso.com ::HL::admin_server = mydc01.contoso.com ::HL::default_domain = contoso.com ::HL::} [domain_realm] ::HL::.contoso.com = CONTOSO.COM ::HL::contoso.com = CONTOSO.COM
启动守护程序
已经设置了用户认证设置。现在,我们需要启动守护程序并将其配置为在每次重新启动后自动启动。
- Samba服务器
service smb start; chkconfig smb on
- Winbind
service winbind start; chkconfig winbind on
- 消息总线守护程序
service messagebus start; chkconfig messagebus on
将Samba服务器加入域
我们终于到了可以将Samba服务器加入Active Directory域的部分。运行以下命令以加入域,将Administrator替换为我们域中有权加入计算机的用户的用户名:
net ads join -U Administrator