如何使用Samba和Winbind将Ubuntu 16.04添加到AD域

简介:

如何使用Samba和Winbind将Ubuntu 16.04添加到AD域

这篇文章讲述了如何将 Ubuntu 主机加入到 Samba4 AD 域,并实现使用域帐号登录 Ubuntu 系统。

要求:

在 Ubuntu 系统上使用 Samba4 软件来创建活动目录架构

第一步: Ubuntu 系统加入到 Samba4 AD 之前的基本配置

1、在将 Ubuntu 主机加入到 AD DC 之前,你得先确保 Ubuntu 系统中的一些服务配置正常。

主机名是你的机器的一个重要标识。因此,在加入域前,使用 hostnamectl 命令或者通过手动编辑 /etc/hostname 文件来为 Ubuntu 主机设置一个合适的主机名。

 
 
  1. # hostnamectl set-hostname your_machine_short_name 
  2. # cat /etc/hostname 
  3. # hostnamectl 

设置系统主机名

设置系统主机名

2、在这一步中,打开并编辑网卡配置文件,为你的主机设置一个合适的 IP 地址。注意把 DNS 地址设置为你的域控制器的地址。

编辑 /etc/network/interfaces 文件,添加 dns-nameservers 参数,并设置为 AD 服务器的 IP 地址;添加 dns-search 参数,其值为域控制器的主机名,如下图所示。

并且,把上面设置的 DNS IP 地址和域名添加到 /etc/resolv.conf 配置文件中,如下图所示:

为 AD 配置网络设置

为 AD 配置网络设置

在上面的截图中, 192.168.1.254 和 192.168.1.253 是 Samba4 AD DC 服务器的 IP 地址, Tecmint.lan 是 AD 域名,已加入到这个域中的所有机器都可以查询到该域名。

3、重启网卡服务或者重启计算机以使网卡配置生效。使用 ping 命令加上域名来检测 DNS 解析是否正常。

AD DC 应该返回的是 FQDN 。如果你的网络中配置了 DHCP 服务器来为局域网中的计算机自动分配 IP 地址,请确保你已经把 AD DC 服务器的 IP 地址添加到 DHCP 服务器的 DNS 配置中。

 
 
  1. # systemctl restart networking.service 
  2. # ping -c2 your_domain_name 

4、最后一步是配置服务器时间同步。安装 ntpdate 包,使用下面的命令来查询并同步 AD DC 服务器的时间。

 
 
  1. $ sudo apt-get install ntpdate 
  2. $ sudo ntpdate -q your_domain_name 
  3. $ sudo ntpdate your_domain_name  

AD 服务器时间同步

AD 服务器时间同步

5、下一步,在 Ubuntu 机器上执行下面的命令来安装加入域环境所必需软件。

 
 
  1. $ sudo apt-get install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind 

在 Ubuntu 机器上安装 Samba4 软件

在 Ubuntu 机器上安装 Samba4 软件

在 Kerberos 软件包安装的过程中,你会被询问输入默认的域名。输入大写的域名,并按 Enter 键继续安装。

添加 AD 域名

添加 AD 域名

6、当所有的软件包安装完成之后,使用域管理员帐号来测试 Kerberos 认证,然后执行下面的命令来列出票据信息。

 
 
  1. # kinit ad_admin_user 
  2. # klist 

使用 AD 来检查 Kerberos 认证是否正常

使用 AD 来检查 Kerberos 认证是否正常

第二步:将 Ubuntu 主机添加到 Samba4 AD DC

7、将 Ubuntu 主机添加到 Samba4 活动目录域环境中的第一步是编辑 Samba 配置文件。

备份 Samba 的默认配置文件,这个配置文件是安装 Samba 软件的过程中自动生成的,使用下面的命令来重新初始化配置文件。

 
 
  1. # mv /etc/samba/smb.conf /etc/samba/smb.conf.initial 
  2. # nano /etc/samba/smb.conf  

在新的 Samba 配置文件中添加以下内容:

 
 
  1. [global
  2. workgroup = TECMINT 
  3. realm = TECMINT.LAN 
  4. netbios name = ubuntu 
  5. security = ADS 
  6. dns forwarder = 192.168.1.1 
  7. idmap config * : backend = tdb 
  8. idmap config *:range = 50000-1000000 
  9. template homedir = /home/%D/%U 
  10. template shell = /bin/bash 
  11. winbind use default domain = true 
  12. winbind offline logon = false 
  13. winbind nss info = rfc2307 
  14. winbind enum users = yes 
  15. winbind enum groups = yes 
  16. vfs objects = acl_xattr 
  17. map acl inherit = Yes 
  18. store dos attributes = Yes 

Samba 服务的 AD 环境配置

Samba 服务的 AD 环境配置

根据你本地的实际情况来替换 workgroup , realm , netbios name 和 dns forwarder 的参数值。

由于 winbind use default domain 这个参数会让 winbind 服务把任何登录系统的帐号都当作 AD 帐号。因此,如果存在本地帐号名跟域帐号同名的情况下,请不要设置该参数。

8、现在,你应该重启 Samba 后台服务,停止并卸载一些不必要的服务,然后启用 samba 服务的 system-wide 功能,使用下面的命令来完成。

 
 
  1. $ sudo systemctl restart smbd nmbd winbind 
  2. $ sudo systemctl stop samba-ad-dc 
  3. $ sudo systemctl enable smbd nmbd winbind 

9、通过下面的命令,使用域管理员帐号来把 Ubuntu 主机加入到 Samba4 AD DC 中。

 
 
  1. $ sudo net ads join -U ad_admin_user 

把 Ubuntu 主机加入到 Samba4 AD DC

把 Ubuntu 主机加入到 Samba4 AD DC

10、在 安装了 RSAT 工具的 Windows 机器上 打开 AD UC ,展开到包含的计算机。你可以看到已加入域的 Ubuntu 计算机。

确认 Ubuntu 计算机已加入到 Windows AD DC

确认 Ubuntu 计算机已加入到 Windows AD DC

第三步:配置 AD 帐号认证

11、为了在本地完成 AD 帐号认证,你需要修改本地机器上的一些服务和配置文件。

首先,打开并编辑名字服务切换 (NSS) 配置文件。

 
 
  1. $ sudo nano /etc/nsswitch.conf 

然后在 passwd 和 group 行添加 winbind 值,如下图所示:

 
 
  1. passwd:         compat winbind 
  2. group:          compat winbind 

配置 AD 帐号认证

配置 AD 帐号认证

12、为了测试 Ubuntu 机器是否已加入到域中,你可以使用 wbinfo 命令来列出域帐号和组。

 
 
  1. $ wbinfo -u 
  2. $ wbinfo -g 

列出域帐号和组

列出域帐号和组

13、同时,使用 getent 命令加上管道符及 grep 参数来过滤指定域用户或组,以测试 Winbind nsswitch 模块是否运行正常。

 
 
  1. $ sudo getent passwd| grep your_domain_user 
  2. $ sudo getent group|grep 'domain admins' 

检查 AD 域用户和组

检查 AD 域用户和组

14、为了让域帐号在 Ubuntu 机器上完成认证登录,你需要使用 root 帐号运行 pam-auth-update 命令,然后勾选 winbind 服务所需的选项,以让每个域帐号首次登录时自动创建 home 目录。

查看所有的选项,按 ‘[空格]’键选中,单击 OK 以应用更改。

 
 
  1. $ sudo pam-auth-update 

使用域帐号登录 Ubuntu 主机

使用域帐号登录 Ubuntu 主机

15、在 Debian 系统中,如果想让系统自动为登录的域帐号创建家目录,你需要手动编辑 /etc/pam.d/common-account 配置文件,并添加下面的内容。

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

使用域帐号登录 Debian 系统

使用域帐号登录 Debian 系统

16、为了让 AD 用户能够在 Linux 的命令行下修改密码,你需要打开 /etc/pam.d/common-password 配置文件,在 password 那一行删除 use_authtok 参数,如下图所示:

password [success=1 default=ignore] pam_winbind.so try_first_pass

允许域帐号在 Linux 命令行下修改密码

允许域帐号在 Linux 命令行下修改密码

17、要使用 Samba4 AD 帐号来登录 Ubuntu 主机,在 su - 后面加上域用户名即可。你还可以通过运行 id 命令来查看 AD 帐号的其它信息。

 
 
  1. $ su - your_ad_user 

查看 AD 用户信息

查看 AD 用户信息

使用 pwd 命令来查看域帐号的当前目录,如果你想修改域帐号的密码,你可以使用 passwd 命令来完成。

18、如果想让域帐号在 ubuntu 机器上拥有 root 权限,你可以使用下面的命令来把 AD 帐号添加到 sudo 系统组中:

 
 
  1. $ sudo usermod -aG sudo your_domain_user 

登录域帐号登录到 Ubuntu 主机,然后运行 apt-get-update 命令来更新系统,以验证域账号是否拥有 root 权限。

给域帐号添加 root 权限

给域帐号添加 root 权限

19、要为整个域用户组添加 root 权限,使用 vi 命令打开并编辑 /etc/sudoers 配置文件,如下图所示,添加如下内容:

 
 
  1. %YOUR_DOMAIN\\your_domain\  group                ALL=(ALL:ALLALL 

为域帐号组添加 root 权限

为域帐号组添加 root 权限

使用反斜杠来转义域用户组的名称中包含的空格,或者用来转义第一个反斜杠。在上面的例子中, TECMINT 域的域用户组的名字是 “domain admins" 。

前边的 % 表明我们指定是的用户组而不是用户名。

20、如果你使用的是图形界面的 Ubuntu 系统,并且你想使用域帐号来登录系统,你需要修改 LightDM 显示管理器,编辑 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 配置文件,添加下面的内容,然后重启系统才能生效。

 
 
  1. greeter-show-manual-login=true 
  2. greeter-hide-users=true 

现在你就可以域帐号来登录 Ubuntu 桌面系统了。使用域用户名或者域用户名@域名.tld 或者域名\域用户名的方式来登录系统。





作者:Matei Cezar
来源:51CTO
目录
相关文章
|
3月前
|
安全 Ubuntu
Ubuntu Samba高危安全漏洞修复
Ubuntu系统中使用的Samba版本存在一个或多个高风险安全漏洞。受影响的Samba版本包括但不限于4.13.x低于4.13.17、4.14.x低于4.14.12以及4.15.x低于4.15.5。这些漏洞可能会允许未经身份验证的攻击者远程执行恶意代码,获取未经授权的访问权限,或者进行其他形式的安全攻击。
35 0
|
22天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
3月前
|
Ubuntu 安全 数据安全/隐私保护
百度搜索:蓝易云【Ubuntu配置Samba服务教程】
现在,你已经成功在Ubuntu上配置了Samba服务。其他计算机可以通过网络访问你共享的文件夹。在访问时,需要输入Samba用户的用户名和密码。注意,为了安全起见,建议配置Samba的访问权限和加密选项。
55 1
|
3月前
|
Ubuntu Linux Windows
window10 虚拟机 linux ubuntu 环境下samba服务器配置
本文的目的是在windows 10 系统,使用samba服务实现 windows 10共享虚拟机ubuntu系统的文件。
44 0
|
4月前
|
Ubuntu Linux 数据安全/隐私保护
Ubuntu系统配置Samba实现与Windows系统的文件共享
Ubuntu系统配置Samba实现与Windows系统的文件共享
83 0
|
7月前
|
Ubuntu Linux 开发工具
Ubuntu2021.4 samba服务器配置方案[开源]
Ubuntu2021.4 samba服务器配置方案[开源]
84 3
|
10月前
|
Ubuntu Linux 开发工具
Ubuntu与window实现文件共享——Samba使用
Ubuntu与window实现文件共享——Samba使用
171 0
|
Ubuntu Linux 数据安全/隐私保护
UBUNTU配置samba
UBUNTU配置samba
99 0
|
运维 Ubuntu Linux
在Ubuntu中安装Samba文件服务
Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。
164 0
|
Ubuntu Linux 数据安全/隐私保护
UBUNTU配置samba
一般来说,开发机都是WINDOWS,而服务器多是LINUX。如果向LINUX复制文件的操作较多,最好办法是LINUX开个共享目录,WINDOWS映射一个网盘,这样仍为方便。具体方法如下:
159 0