CentOS7加入AD域(winbind)
作者:独笔孤行
官网: http://anyamaze.com
公众号:云实战
前言
AD域(Active Directory)是Windows服务器的活动目录,在目录中可以收录公司的电脑账号,用户账号,组等信息,以提供更好的安全性和更便捷的管理能力。域的最大好处之一就是其安全性 – 所有账号不会在本地计算机认证,而是连接到域控制器寻求认证。
CentOS7加入AD域的方法很多,常用的有winbind和realm两种。winbind是一种成熟的方案,兼容多种操作系统版本,但配置步骤繁琐复杂,且易出错。realm是一种非常简便的配置方案,在新版本系统中使用较多,在centos6和更低版本系统使用较少。
一、环境信息
AD域信息
域名:anyamaze.com
主机名:myad
IP : 192.168.111.137
系统版本:windows server 2016
linux客户端信息
主机名:mynode1.anyamaze.com
IP: 192.168.111.141
二、安装过程
(一)AD域服务器部署
1.部署windows Server2016操作系统
2.选择“服务器管理器—管理—添加角色和功能—基于角色或基于功能的安装—Active Directory域服务”根据提示依次安装
3.修改主机名,将服务器提示为域控服务器
(二)CentOS7加入域配置
1.安装相关包
yum install -y samba samba-common samba-client samba-winbind* krb5-workstation ntp bind-utils
2.设置服务开机自启动
systemctl enable smb
systemctl enable winbind
3.设置主机名
hostnamectl set-hostname mynode1.anyamaze.com
4.配置域名解析
192.168.111.137 myad myad.anyamaze.com
192.168.111.141 mynode1 mynode1.anyamaze.com
5.配置DNS解析
配置网卡DNS解析,解析地址为AD域服务器IP,如需其它DNS,可放在AD域服务器IP之后
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
...
DNS1=192.168.111.137
#重启网卡,使配置生效
systemctl restart network
检查/etc/resolv.conf文件内容
vim /etc/resolv.conf
search anyamaze.com
nameserver 192.168.111.137
需确保resolve.conf文件DNS解析内容为AD域服务器,如果需要其它DNS,可向后追加。
检测解析是否生效
ping anyamaze.com
nslookup anyamaze.com
注意:确保ping的返回ip为AD域服务器ip,确保nslookup解析域名的服务器IP是AD域服务器IP。如果ping不通域名或解析的地址不是AD域服务器IP,需要检查DNS是否正确,检查AD域服务器防火墙是否关闭。

6.修改配置文件
vi /etc/nsswitch.conf
...
passwd: files winbind sss
shadow: files winbind sss
group: files winbind sss
配置内容加入winbind,且winbind在sss之前
7.修改/etc/krb5.conf
[libdefaults]
......
default_realm = ANYAMAZE.COM
......
[realms]
ANYAMAZE.COM = {
kdc = 192.168.111.137
}
[domain_realm]
anyamaze.com = ANYAMAZE.COM
.anyamaze.com = ANYAMAZE.COM
8.修改/etc/samba/smb.conf
[global]
workgroup = ANYAMAZE
password server = myad.anyamaze.com
realm = ANYAMAZE.COM
security = ads
idmap config * : range = 16777216-33554431
template shell = /bin/bash
kerberos method = secrets only
winbind use default domain = false
winbind offline logon = false
encrypt passwords = yes
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
global中必须保证以上参数内容配置正确,其它参数可保持默认配置。如果linux系统有图形化界面,也可通过setup命令,完成步骤7和步骤8的配置内容,效果一样。
检查配置是否正确
testparm /etc/samba/smb.conf
9.编辑文件/etc/pam.d/system-auth和/etc/pam.d/password-auth,尾部追加session required pam_mkhomedir.so 内容
vi /etc/pam.d/system-auth
......
session required pam_mkhomedir.so
vi /etc/pam.d/password-auth
......
session required pam_mkhomedir.so
10.加入AD域
net ads join -U administrator
输入正确的administrator用户密码
11.重启服务
systemctl restart smb
systemctl restart winbind
12.查看是否加入域成功
wbinfo -t
返回结果为checking the trust secret for domain ANYAMAZE via RPC calls succeeded说明加入域成功

加入成功后,去AD域服务器可查到到刚刚加入域的机器
13.常规域指令
# 查看域信息
net ads info
# 查看域连接状态
wbinfo -t
# 查看域组
wbinfo -g
# 查看域用户
wbinfo -u
#查看域用户属性id
id user1@anyamaze.com
(三)常见报错:
报错内容1:
[root@mynode1 ~]# id user1
id: user1: no such user
[root@mynode1 ~]# id user1@anyamaze.com
id: user1@anyamaze.com: no such user
原因:1.通过wbinfo -t检查是否加入域成功;2.AD域用户没有配置uid和gid,主组没有配置gid,需要去AD域上进行配置
报错内容2:
[root@mynode1 ~]# net ads join -U administrator
Enter administrator's password:
Using short domain name -- ANYAMAZE
Joined 'MYNODE1' to dns domain 'anyamaze.com'
No DNS domain configured for mynode1. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER
原因:DNS更新失败,但不影响使用,可以加--no-dns-updates屏蔽,如:net ads join -U administrator --no-dns-updates。
关于原因官网 https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member 有详细解释,但是按照官网的信息调整hosts后,依然没有达到效果。

报错内容3:
[root@mynode1 ~]# wbinfo -t
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
checking the trust secret for domain (null) via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
Could not check secret
原因:加入域失败,按照操作步骤检查dns解析以及相关配置过程
报错内容4:
[root@mynode1 ~]# net ads leave -U administrator
Enter administrator's password:
kinit succeeded but ads_sasl_spnego_gensec_bind(KRB5) failed for ldap/myad.anyamaze.com with user[administrator] realm[ANYAMAZE.COM]: An invalid parameter was passed to a service or function.
Deleted account for 'MYNODE1' in realm 'ANYAMAZE.COM'
原因:linux和AD域服务器时间相差较大,必须保证linux客户端和AD域时间一致
参考连接:
https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member
https://www.freesion.com/article/44621398696/
https://www.server-world.info/en/
更多咨询,关注我们

CentOS7加入AD域(winbind)的更多相关文章
- CentOS7添加入windows2008的AD域
采用域控对用户权限进行限制的时候,经常会出现需要将linux加入windows域,毕竟windows的AD域超级强大.用户名可以由windows进行统一管理,方便办公使用.下面简单介绍如何进行配置. ...
- freeradius整合AD域作anyconncet认证服务器
一.服务器要求 Radius服务器:centos6.6.hostname.selinux disabled.stop iptables AD域服务器:Windows Server 2008 R2 E ...
- Windows 的 AD 域寄生于 Linux 机器
导读 对于帐户统一管理系统或软件来说,在 Linux 下你可能知道 NIS.OpenLDAP.samba 或者是 RedHat.IBM 的产品,在 Windows 下当然就是最出名的活动目录 (AD) ...
- Samba通过ad域进行认证并限制空间大小《转载》
本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;认证通过的用户可以自动分配500M的共享空间;在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬 ...
- windows AD域安装及必要设置
一.安装AD域 运行dcpromo命令,安装AD域. 步骤: 1.win+R 2.dcpromo 图例: 百度百科关于“dcpromo”解释: dcpromo命令是一个“开关”命令.如果Windows ...
- Samba通过ad域进行认证并限制空间大小
最近正在做单位电脑的AD域管理. 为漫游用户文件,研究配置Samba通过ad域进行认证并限制空间大小. 参考了很多资料,现总结如下: DC:windows server 2016(配置安装域控制器)略 ...
- 如何查看/统计当前AD域控制器的活动用户?
最近公司想知道某台AD域控制器上当前连接了多少活动用户? 此前个人只知道以下不是非常完善且统计起来比较麻烦的方法: 方法1:查看共享会话数.(不完全准确) 方法2:查看当前的DNS记录.(这种方法统计 ...
- AD域-让共享目录只显示用户有权限访问的文件夹
问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...
- AD域的安装(在Windows Server 2003中安装Active Directory)
在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...
- AD域内DNS服务器如何解析公网域名
原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...
随机推荐
- mybatis中xml的sql之test中文报错
在mybatis中sql,test中文报错( java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常).需加.tostring(). <if test ...
- 【算法总结】【队列均LinkedList】栈和队列、双端队列的使用及案例
1.栈 初始化:Stack<E> stack = new Stack<>(); 出栈:stack.pop() 或 stack.remove(stack.size() - 1) ...
- Node.js躬行记(25)——Web自动化测试
网页在提测流转给 QA 后,如何能帮他们更有效而准确的完成测试,是我一直在思考的一个问题. QA 他们会对网页编写测试用例,在提测之前会让我们将优先级最高的用例跑通,这在一定程度上能够避免频繁的返工, ...
- C#深拷贝方法
概述 为什么要用到深拷贝呢?比如我们建了某个类Person,并且实例化出一个对象,然后,突然需要把这个对象复制一遍,并且复制出来的对象要跟之前的一模一样,来看下我们一般会怎么做. 方法一(利用反射实现 ...
- Nmap安装
Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具.它被设计用来快速扫描大型网络,包括主机探测与发现.开放的端口情况.操作系统与应用服务指纹识别.WAF识别及 ...
- JavaScript:代码细节和良好编码习惯
这些细节,与语法无关,仅仅是编写代码时需要注意的最最基本的细节和一些良好编码习惯. 注释代码 注释代码分为单行注释和多行注释,如下所示: 严格区分大小写 JS的代码时严格区分大小写的,变量a和A是不同 ...
- CompletableFuture 使用总结
转载请注明出处: 1.Future使用对比 Future表示一个异步计算的结果.它提供了isDone()来检测计算是否已经完成,并且在计算结束后,可以通过get()方法来获取计算结果.在异步计算中,F ...
- 使用APICloud AVM多端组件快速实现app中的搜索功能
很多 APP 中都有搜索功能的需求,本文介绍怎么使用 avm 多端组件快速实现搜索功能. 在 APICloud 模块库搜索 animate-UISearchBar,添加到项目.多端组件需要下载源码,引 ...
- [OpenCV实战]34 使用OpenCV进行图像修复
目录 1 什么是图像修复 1.1 INPAINT_NS : Navier-Stokes based Inpainting 1.2 INPAINT_TELEA : Fast Marching Metho ...
- B. Quick Sort【Codeforces Round #842 (Div. 2)】
B. Quick Sort You are given a permutation[排列]† \(p\) of length \(n\) and a positive integer \(k≤n\). ...