Samba是一个免费的开源软件套件,用于Windows操作系统和Linux/Unix系统之间的无缝连接和资源共享。Samba不仅可以通过SMB/CIFS协议组件在Windows和Linux系统之间提供独立的文件和打印机共享服务,它还可以实现活动目录(ActiveDirectory)域控制器(DomainController)的功能,或者让Linux主机加入域环境作为域成员服务器。当前Samba4版本实现的ADDC域和林级可以替代Windows2008R2系统的域相关功能。本系列文章的主要内容是使用Samba4软件配置ActiveDirectory域控制器,涉及以下主题与Ubuntu、CentOS和Windows系统相关:第1节:在Ubuntu系统上使用Samba4创建ActiveDirectory架构第2节:管理Linux命令行下的Samba4AD架构第3节:在Windows10操作系统上安装RSAT工具以管理Samba4AD第4节:从Windows上管理Samba4AD域控制器DNS和组策略第5节:使用SysvolReplication复制功能将Samba4DC添加到现有AD第6节:通过GOP从LinuxDC服务器添加共享盘并映射到AD第7节:将Ubuntu16.04系统主机添加到AD作为域成员服务器第8节:将CenterOS7系统主机添加到AD作为域成员服务器第9节:在ADIntranet区域中使用kerberos身份验证创建Apache网站本指南将阐明Samba的安装和配置4在Ubuntu16.04和Ubuntu14.04操作系统上作为域服务器在组装过程中,需要注意每一步。下面的安装配置文档将对Windows和Linux混合系统环境下用户、机器、共享卷、权限等资源信息的主要配置要点进行说明。环境要求:Ubuntu16.04服务器安装Ubuntu14.04服务器安装为您的ADDC服务器设置一个静态IP地址步骤1:初始化Samba4安装环境1.在开始安装Samba4ADDC之前,让我们做一些准备工作。首先运行如下命令确保系统已经更新了最新的安全特性、内核和其他补丁:$sudoapt-getupdate$sudoapt-getupgrade$sudoapt-getdist-upgrade2,其次打开服务器上的/etc/fstab文件确保启用了文件系统分区的ACL,如下图所示。总的来说,目前常见的Linux文件系统,如ext3、ext4、xfs或btrfs,都默认支持并开启了ACL。如果没有设置,打开编辑/etc/fstab文件,在第三栏添加acl,然后重启系统使用修改后的配置生效。启动Linux文件系统的ACL功能3.***使用一个描述性的名称来设置主机名,比如本文中使用的adc1。通过编辑/etc/hostname文件或使用下图中显示的命令来设置主机名。$sudohostnamectlset-hostnameadc1为了使修改后的主机名生效,必须重启服务器。第二步:为Samba4ADDC服务器安装必要的软件包4.为了将你的服务器变成域控制器,你需要在服务器上用root权限的账号执行以下命令安装Samba套件和所有必备软件包。$sudoapt-getinstallssambakrb5-userkrb5-configwinbindlibpam-winbindlibnss-winbind在Ubuntu系统上安装SambaSuite5。在安装包的执行过程中,系统会询问您一系列问题以完成域控制器的配置。在第一个屏幕中,您需要输入Kerberos默认REALM的大写名称。为您的域环境输入大写名称,然后单击Enter继续。配置Kerosene身份验证服务6.接下来,在您的域中输入Kerberos服务器的主机名。使用与上面相同的名称,这次是小写,然后按Enter键继续。设置Kerberos服务器的主机名7、***,指定Kerberos领域管理服务器的主机名。使用与上面相同的名称,然后单击回车以完成安装。设置管理服务器的主机名步骤3:为您的域环境启用SambaADDC服务8.在为域服务器配置Samba服务之前,运行以下命令停止并禁用所有Samba进程。$sudosystemctlstopsamba-ad-dc.servicesmbd.servicenmbd.servicewinbind.service$sudosystemctldisablesamba-ad-dc.servicesmbd.servicenmbd.servicewinbind.service9.接下来,重命名或删除原来的Samba配置文件。这一步必须在启动Samba服务之前进行,因为在启动服务的过程中,Samba会新建一个配置文件,如果检测到原来的smb.conf配置文件,就会报错。$sudomv/etc/samba/smb.conf/etc/samba/smb.conf.initial10。现在,使用具有root权限的帐户并接受Samba提示的默认选项以交互方式开始域配置。此外,输入正确的DNS服务器地址并为管理员帐户设置强密码。如果使用弱密码,域配置过程将失败。$sudosamba-tooldomainprovision--use-rfc2307-interactiveSambadomainprovisioning11.***,使用如下命令重命名或删除/etc目录下的Kerberos认证主配置文件,并新建一个软Kerberos配置文件,由Samba链接指向/etc目录。$sudomv/etc/krb6.conf/etc/krb5.conf.initial$sudoln–s/var/lib/samba/private/krb5.conf/etc/创建Kerberos配置文件12.启动并打开SambaActiveDirectoryDomainController后台进程$sudosystemctlstartsamba-ad-dc.service$sudosystemctlstatussamba-ad-dc.service$sudosystemctlenablesamba-ad-dc.service启动SambaActiveDirectory域控制器服务13、接下来使用netstat命令验证是否启动了该服务ActiveDirectory正常。$sudonetstat–tulpn|egrep‘smbd|samba’VerifySambaActiveDirectory第四步:配置Samba***14、至此,Samba应该如你想象的那样完全可以运行了。Samba现在实现了与WindowsADDC2008R2完全可比的域功能级别。可以使用samba-tool工具验证Samba服务是否正常:$sudosamba-tooldomainlevelshow验证Samba域服务级别15。为了满足DNS本地解析的要求,可以编辑网卡配置文件,修改dns-nameservers参数的值为域控制器地址(使用127.0.0.1作为本地DNS解析地址),并将dns-search参数设置为您的领域值。$sudocat/etc/network/interfaces$sudocat/etc/resolv.conf为Samba配置DNS服务器地址设置完成后重启服务器,查看解析文件是否指向正确的DNS服务器地址。16、***,通过查询ping命令的结果,检查一些重要的ADDC记录是否正常,并使用类似如下的命令替换对应的域名。$ping–c3tecmint.lan#DomainName$ping–c3adc1.tecmint.lan#FQDN$ping–c3adc1#HostCheckSambaADDNSRecord执行以下查询命令检查SambaActiveDirectory域控制器是否正常。$host–tAtecmint.lan$host–tAadc1.tecmint.lan$host–tSRV_kerberos._udp.tecmint.lan#UDPKerberosSRVrecord$host-tSRV_ldap._tcp.tecmint.lan#TCPLDAPSRVrecord17,并通过请求域管理员帐户的身份列出缓存的票证信息以验证Kerberos身份验证是否有效。请注意,域名部分是大写的。$kinitadministrator@TECMINT.LAN$klist检查域环境下的Kerberos认证是否正确。迄今为止!您已经在您当前的网络环境中完全运行了一个AD域控制器,您现在可以将Windows或Linux系统主机集成到SambaAD中了。下一篇文章将涵盖其他SambaAD域主题,例如如何从Samba命令行管理域控制器、如何将Windows10系统主机添加到同一域环境以及如何使用RSAT工具远程管理SambaAD域和其他重要主题。
