1.将所有辅助服务器的名称放置在主服务器上的 /var/yp/ypservers 文件中
2.在辅助服务器上安装ypserv
3.使用以下命令:
/usr/lib/yp/ypinit -s masterserver
如果你有任何一个辅助服务器,那么在主服务器上的/var/yp/Makefile文件需要设置有NOPUSH=false。那么当主服务器的数据库更新时,将调用yppush。yppush负责从主服务器到辅助服务器传送更新的内容。使用yppush传送只能在同一域内。
ypxfr类似于yppush。无论如何,ypxfr传送从一个NIS服务器到本地NIS数据库。Ypxfr通常由ypinit或ypserv调用,并且很少手动执行。
4.14 用rpcinfo排除NIS错误
1.检查NIS:
rpcinfo -p localhost
2.问题可能涉及protmap(端口映射)
—负责转换RPC服务号到主机名:本地端口。
NIS可以使用远程进程调用(RPC)去执行远程的功能。为了 RPC请求工作,目标系统必须有一个转换RPC请求到一个本地程序去运行的办法。这个功能通过portmap完成。Red Hat Linux使它很容易去检查,如果portmap正被运行:
service portmap status
如果portmap没有正在运行,首先停止所正运行的RPC服务,用service portmap start命令启动portmap,然后重启RPC服务。
4.15 身份验证服务试验
估计时间: 45分钟
目标: 培养有关身份验证的技巧
试验的起点: 标准的Red Hat Linux安装
关掉包过滤:在着手试验之前需要确认包过滤没有被激活,默认情况下iptables会调用 /etc/sysconfig/iptables这个配置文件,删除或重命名这个文件,iptables就会在下次启动时失效。或者使用命令 chkconfig iptables off也行。如果想让iptables立刻失效可以用命令 service iptables stop.
1.使用PAM限制登陆的位置
场景/故事
您的系统中有高安全的内容。为了保证数据不被泄漏,你需要限制用户的访问,除了本地控制台,禁止任何其他方式访问系统。
任务:
⑴ 创建用户bill,他是user组的成员,再创建一个用户biff,他是finance组的成员
⑵ 编辑 /etc/security/access.conf 限定finance组的用户只能在第二个虚拟控制台登陆。为了达到这个目的,在这个文件的最后一行添加:
- : finance : ALL EXCEPT tty2
⑶ 通过编辑 /etc/pam.d/system-auth来限制所有服务,把以下这行添加到以auth开头的所有行后:
account required /lib/security/$ISA/pam_access.so
⑷ 如果你的限定起了作用,bill和root可以登陆到任何控制台,而biff只能在第二个虚拟控制台登陆
⑸ 清理:你如果运行authconfig工具,以上的操作将会被删除,你怎样确认你的设置有没有变化呢?
2.使用NIS做身份验证
任务:
你应该与你旁边的人合作,然后决定谁做NIS的服务器端,谁做NIS的客户端,通过这个实验,你和你的同伴一起配置NIS的服务器端和客户端。你们要确定NIS的域名,还要注意每一个工作站的名字和IP地址,在开始以下的步骤之前,请确认以上内容。
⑴ 配置NIS服务器
① 从ftp://server1/pub/RedHat/RPMS、光盘...
② 编辑 /etc/sysconfig/network ,添加这样一行:
NISDOMAIN = <你们的NIS域名>
下次启动时才会起作用,设置了NIS域名之后不要重新启动,运行命令:
domainname <你们的NIS域名>
③ 先将 /var/yp/Makefile 文件copy一份作为备份,编辑all部分只包含passwd和group:
all: passwd group
④ 打开portmap服务和ypserv服务
service portmap start
service ypserv start
⑤ 确保make包在你的系统中安装,(以下的命令是在 server1:/var/ftp/pub 已经被mount到/mnt/server1后才能使用)
rpm –Uvh /mnt/server1/RedHat/RPMS/make*
⑥ 使用ypinit产生NIS数据库(maps),注意可能出现的错误信息
/usr/lib/yp/ypinit –m
(注意:你不用在列表中添加任何主机,只要按 < CTRL - D > )
⑦ 启动NIS password升级进程
service yppasswdd start
⑧ 如果ypinit在第六步时没有错误,重新启动ypserv服务:
service ypserv restart
⑨ 使用ps auxf | grep yp确定ypserv服务运行,如果有错误的话查看日志 /var/log/messages
完成:正在正常工作的NIS服务器
⑵ 配置NIS客户端
到现在,任务只完成一半,你和你的同事一起配置IS服务器的客户端。
① 在客户端,确认已经安装以下几个包:
portmap,ypbind,yp-tools和authconfig
② 确认客户端可以看到服务器上的portmap服务
rpcinfo –p 你们的NIS服务器
③ 使用authconfig工具配置你的客户端使用NIS进行身份验证,选定“Use NIS”,在“Domain:”后指定你的NIS域,在“Server:”后指定你的NIS服务器。
④ 确认authconfig正确工作,当authconfig完成后,它会自动开启ypbind服务,是否有出错信息出现在控制台上或者 /var/log/messages中?
⑤ 测试你的NIS客户端,使用root用户登陆你的客户端,root用户是客户端上的root还是NIS服务器上的?测试 客户端----服务器的连接,使用:
ypcat passwd
这样会显示出NIS服务器上的password数据,(请记住,只有在服务器上/etc/passwd文件中UID大于等于500的用户才会被放进数据库中)
⑥ 使用useradd在客户端创建一个新的用户,然后在服务器端创建一个不同的用户,然后使用passwd设置他们的密码。
(在客户端): useradd -u 1024 localguy
passwd localguy
(在服务器): useradd -u 1025 nisuser
passwd nisuser
⑦ 确认使用localguy能在本地登陆,nisuser能在服务器上登陆。然后使用nisuser账号在客户端上登陆,应该是不可以的。
⑧ 在服务器上的 /var/yp 目录,执行make命令,当命令完成,再使用nisuser从客户端上登陆,这回应该成功了,为什么?
⑨ 使用passwd改变nisuser的密码,是否改变了服务器上的 /etc/passwd 和 /etc/shadow 文件?NIS服务器中的文件是否改变了呢?你可以使用如下命令测试:
ypcat passwd | grep nisuser
⑩ 使用localguy登陆到客户端,是不是即时ypbind在运行仍然可以登陆?
11 当你使用nisuser登陆到客户端时,你的主目录是什么?NIS仅仅提供验证信息,不提供客户端和服务器端的文件共享机制
完成:一个从NIS服务器上获得验证信息的客户机
3.限制NIS用户
任务:
我们的客户端现在是公司NIS体系的一部分,因为他储存了秘密数据,不是所有的用户都可以访问这台机器,只有特定的远程用户才能访问。
⑴ 这个测试需要添加一个NIS用户,使用useradd命令添加一个名叫baduser的用户。
useradd –u 1026 baduser
passwd baduser
⑵ 一个解决方案是使用pam_listfile,只允许nisuser访问我们的系统。打开 /etc/pam.d/system-auth ,紧接着auth开头的之后添加以下一行:
account required /lib/security/pam_listfile.so item=user sense=allow
file=/etc/nisusers onerr=fail
⑶ 假如测试目前的设置,你将会发现连root也不能登陆,所以千万不要关掉root的shell!你要创建 /etc/nisusers 然后把所有允许访问的用户添加到文件中,一行一个用户名,我们只想允许nisuser用户,所以我们的文件会非常短。
⑷ 现在如果你想登录到文本控制台,只有nisuser可以进入,因为其他人不在文件中,把root添加到 /etc/nisusers 中。
⑸ 我们的任务还是允许所有本地用户登陆的,我们可以把 passwd文件中的用户都添加到我们的列表中,但这不是最好的方法,我们可以使用PAM库中的pam_localuser来达到目的。添加以下这行到pam_localuser.so之后。
account required /lib/security/pam_localuser.so
⑹ 测试这样的配置,你会发现仍然只有root可以登陆,为什么呢?
⑺ 是因为required字段的关系,把上面添加的两行的required都改成sufficient,现在好了吧?如果改成requisite会怎么样?
⑻ 清理:再次运行authconfig工具,删除所有设置,并且禁用NIS。
本文暂时没有评论,来添加一个吧(●'◡'●)