Kerberos + LDAP + NFSv4实现单点登录(中)

  

Kerberos + LDAP + NFSv4实现单点登录(中)

  

五.nfs服务器的安装
1。安装nfs-kernel-server
<代码> root@debian: ~ # apt-get安装nfs-kernel-server nfs-common

  

修改/etc/违约/nfs-kernel-server文件

NEED_SVCGSSD=啊?br/>改为
NEED_SVCGSSD=皔es"

  

重启nfs-kernel-server   

 <代码> root@debian: ~ #/etc/init.d/nfs-kernel-server停止
  root@debian: ~ #/etc/init.d/nfs-kernel-server开始 之前
  
 <代码> root@debian: ps - e ~ # | grep gss
  10275年?就是rpc.svcgssd  
  

2。安装libnss-ldapd, nslcd
为了获取ldap用户信息,要安装libnss-ldapd, nslcd
在新立得选上libnss-ldapd, nslcd会自动将libpam-ldapd, nscd, nslcd-utils三个包打上安装标记,可手工将该三个包去掉安装标记,不需此三个包

  

<代码> root@debian: ~ # apt-get安装libnss-ldapd nslcd

  

注意安装nslcd配置过程中,提示输入LDAP服务器地址的输入框默认了uri ldapi:///,一定要将ldapi改为LDAP,因为ldapi:///表示用在unix域

  

1) nslcd
安装过程中
ldap服务器uri填ldap://192.168.1.101/
ldap服务器搜索起点填dc=ctp, dc=净

  

查看配置文件

  
 <代码> root@debian: ~ #猫/etc/nslcd.conf
  #用户和组nslcd应该运行。
  uid nslcd
  gid nslcd
  
  # LDAP服务器(s)的位置应该是可以达到的。
  #填LDAP服务器地址,即kdc服务器地址
  uri ldap://192.168.1.101/#搜索基地,将用于所有查询。
  基本dc=ctp, dc=净
  
  root@debian: ~ #  
  

2) libnss-ldapd
安装过程中
名称服务来配置选[*]passwd

  

新建测试目录
<代码> root@debian: ~ # mkdir/home/linlin/share

  

将该目录属性改为用户ID及用户组ID都为4001,即为ldap用户krblinlin的uidNumber/gid号,但并在nfs客/服两主机本地不存在该ID用户
<代码> root@debian: ~ #乔恩4001:4001/home/linlin/share

  

2.1)假定没选[*]passwd

  
 <代码> linlin@debian: ~ $ ls ld/home/linlin/share
  drwxr-xr-x 2 4001 4001 4096 9月18点13/home/linlin/share  
  

则取不到ldap用户信息

  

2.2)可重设libnss-ldapd,选上[*]passwd
<代码> root@debian: ~ # dpkg-reconfigure libnss-ldapd

  
 <代码>…
  ┌───────────┤正在设定libnss-ldapd├──────────────────────────┐
  │这个包工作,您需要修改/etc/nsswitch.配置文件使用ldap数据源。│
  │你可以选择的服务应该启用LDAP查找。新LDAP查找将│补充道
  │作为最后一个数据源。一定要检查这些更改。│
  │名称服务配置:│
  ││[]主机
  │[]netgroup│
  ││[]网络
  ││[*]密码
  │[]协议
  … 
  

/etc/nsswitch。配置:启用LDAP查找passwd
<代码> root@debian: ~ #

  

查看配置文件,可见passwd一行后添加了ldap

  
 <代码> root@debian: ~ #猫/etc/nsswitch.conf
  密码:兼容ldap
  组:兼容
  影子:兼容
  gshadow:文件
  
  主持人:文件mdns4_minimal NOTFOUND=返回dns
  网络:文件
  
  协议:db文件
  服务:db文件
  醚:db文件
  rpc: db文件
  
  netgroup: nis
  root@debian: ~ #  
  
 <代码> linlin@debian: ~ $ ls ld/home/linlin/share
  drwxr-xr-x krblinlin 4001 4096 9月18点13/home/linlin/share  
  

则已获取显示ldap用户信息,krblinlin为ldap用户,同时也是Kerberos用户
获取用户信息很重要,因为nfs客/服两端的认证用户信息要匹配,即两边的域+用户名要一致

  

注:本实验只获取ldap用户的用户名,无法获取ldap用户的所属用户组名(如上仍显示用户组ID 4001),但不影响实验效果

  

3。网络共享
本实验目的NFSv4认证采用安全性强的gss/krb5认证(Kerberos),而不是弱的系统认证(AUTH_SYS)

  

编辑/etc/出口文件

  
 <代码> root@debian: ~ #猫/etc/exports
  同步,no_subtree_check/home/linlin/share gss/krb5 (rw)
  root@debian: ~ #  
  

执行导出
<代码> root@debian: ~ # exportfs - r

  

查看导出

  
 <代码> root@debian: ~ # exportfs - v/home/linlin/share
  gss/krb5 (rw, wdelay、root_squash no_subtree_check,秒=sys, rw, root_squash, no_all_squash)
  root@debian: ~ #  
  

4。问题解决
nfs服务器没有启动rpc.idmapd,导致nfs客户机没写权限

Kerberos + LDAP + NFSv4实现单点登录(中)