说实话我本身的工做都是关注存储结构,集群,负载均衡,基于操做系统级别的安全。不多研究目录服务以及相关的整合技术,去网上看了一下不少文章不是体系太庞大就是环境未知,凭借个人智商是没办法搞定了。这里我就班门弄斧给新人们一点小小的入门,我本身都是新人献丑了。
我理解的整合?
就是把现有的资源发挥最大的使用限度,各类服务器依据自身硬件软件优势各挥所长,各司其职。网络中的服务器众多
1.文件服务器
2.网站服务器
3.帐号管理服务器
我就先说这么多举个简单例子。文件服务器用得samba,网站服务器用得apache,帐号管理服务器用得AD活动目录。
1.客户端user1要访问samba的共享目录须要提供身份核查
2.samba这台linux服务器本地帐号库上没有user1,那怎么验证呢?
3.因此samba就把这个身份核查请求交给了帐号管理服务器AD
4.AD身上存了公司全部用户的用户名,密码,邮箱,电话,地址等信息,因此AD能够帮samba核查user1的身份是否合法。
5.一旦经过核查就把这个消息传给samba并容许访问共享目录
6.用户知道samba不能核查本身身份吗?绝对不会知道,用户一直觉得是samba作的核查身份。这个过程是samba把AD的帐户映射了一份在本身本地。什么叫映射?就若是你的影子同样,有你的人在就会有影子在,人不在了影子天然就没了。映射不是什么复制,只是依据主载体变了一个样子而已。
7.这样作的好处就是不论你登录什么linux服务器,只要有身份核查就交给AD去作,AD就是干这个活的很专业,而samba就是文件共享的很专业。你们就作本身最擅长的事就行了,但同时你们也有不擅长的或者不能实现的缺点,那么你们就整合在一块儿,优势融合了,那就掩盖了缺点,共同完成用户这样那样烦人的需求
那么linux服务器怎么和AD整个在一块儿呢?
1.由于linux服务器的目录服务使用的标准schema,而AD把schema扩展了并把objetclass和attribute都该了自定的名字
2.好比linxu服务器的用户名属性叫uid,而AD的用户名属性叫sAMAccountName
3.当linux映射AD用户时就说“如今帮我核查一个uid=user1的帐户”,AD收到这个消息后一查说不认识uid这个属性帮不上忙呀。
4.因此须要先作attribute和objectclass的映射nss_map_attribute uid sAMAccountName
5.如今linux改词了说“如今帮我核查一下uid=user1的帐户,你的说法叫sAMAccountName=user1”,这回AD知道samba想干啥了,ok小case。
6.固然linux服务器和AD之间不少有关用户的属性都要作映射,咱们慢慢来作实验吧。班门弄斧完毕!!
实验环境
station9.example.com是客户机,域为example.com,dns指向AD
server109.example.com是linux服务器,域为example.com,dns指向AD
w2k3.ad.example.com是AD活动目录,域为ad.example.com,本身是dns服务器,并把dns指向本身
AD上有个Linux-NSS帐户用来得到AD数据库里的帐号信息,AD你好歹也要给linux服务器一个绿色通道呀直接用Linux-NSS从AD里拿帐户信息,AD一看是Linux-NSS来请求帐户映射的固然是容许的了。要不怎么叫整合呢。
首先咱们先创建一台AD
由于server109.example.com和station9.example.com都属于example.com域了,为了能解析到这两台计算机,我决定在AD上的dns再创建一个正向域example.com,并添加主机记录server109和station9
在dns窗口作得导航栏中选择example.com点右键选择“新建主机”
咱们在AD上创建一个帐户Linux-NSS,这个帐户专门是AD容许Linux服务器映射帐户用的绿色通行证。
而后咱们在创建一个用户叫billgates,看到可否映射到这个帐户的信息
在映射过程当中须要把AD的schema扩展掉要否则他就不认识uid=sAMAccountName是一回事,因此必需要让AD也认识uid这是什么东东。咱们要安装一个SFU3.5的包。完成后须要从新启动,漫长等待。。。。
开启相关支撑Linux服务器的服务
其次咱们把用户相关的类和属性让linux服务器与AD达成一致,互相通告。
nss_map_objectclass posixAccount User 映射用户类
nss_map_objectclass shadowAccount User 映射密码类
nss_map_attribute uid sAMAccountName 映射用户名属性
nss_map_attribute uidNumber msSFU30uidNumber 映射用户号码属性
nss_map_attribute gidNumber msSFU30gidNumber 映射组号码属性
nss_map_attribute gencos cn 映射用户全名属性
nss_map_attribute loginShell msSFU30loginShell 映射用户命令解释器属性
nss_map_attribute homeDirectory msSFU30HomeDirectory
nss_map_objectclass posixGroup Group 映射组类
pam_login_attribute sAMAccountName 映射pam模块验证用户名
pam_filter objectclass=User
pam_password ad 采用AD来验证身份,我理解为使用kerberos
把Linux服务器加入到AD的LDAP数据库中
此时咱们用getent passwd看能不能得到AD上的帐户了
咱们在试试能不能用gates登录
在来利用ldapsearch查找一下
ldapsearch -x 'sAMAccountName=gates' -D 'cn=billgates,cn=Users,dc=ad,dc=example,dc=com' -W -LLL
最后一个实验就是如何把linux计算机加入到活动目录中,利用winbind
首先把AD中的dns服务器主机记录创建好如图
Linux服务器的dns解析顺序必定先用AD的dns服务器
必定要注意和AD同步时区 net time –S w2k3.ad.examle.com固然你能够把AD当成NTP服务器加入到Linux服务器中,我每次用net time同步都不成功,最后都是直接用date命令手工改的
如今开始利用winbind把Linux服务器加入到AD中做为一台普通的客户机而已
咱们回到AD中看有没有计算机加入进来,我把server109,server209都加进来,station9死活进不来不知道为什么。
夜已经深了,如今凌晨了,为了作实验今天的魔兽世界战场平常没作,炼金也没作,又损失了几百G。