本篇将注重介绍Ubuntu 16.04服务器作为客户端接入CentOS6的nis和nfs server的过程。主机名:ubuntu,IP:192.168.42.15,本次操作全部使用root操作,如果你不是root用户,大部分命令前需要加sudo。

安装NFS(作为客户端)

root@ubuntu:~# apt -y install nfs-common

安装AutoFS

root@ubuntu:~# apt -y install autofs

配置autofs:

root@ubuntu:~# echo -e "/home\t/etc/auto.home" >> /etc/auto.master
root@ubuntu:~# echo -e "*\t192.168.42.101:/home/&" >> /etc/auto.home

重启下autofs服务:

root@ubuntu:~# systemctl restart autofs.service

安装NIS

root@ubuntu:~# apt -y install nis

根据提示,输入我们的nis域名yyshell.com
nis输入完毕后,回车确定即可。

配置下:

root@ubuntu:~# echo "ypserver 192.168.42.101" >> /etc/yp.conf
root@ubuntu:~# vim /etc/nsswitch.conf

passwd:         compat  nis
group:          compat  nis
shadow:         compat  nis

hosts:          files dns       nis

在上述几行,红色的nis是需要添加的。

重启NIS:

root@ubuntu:~# systemctl restart nis.service

查看是否连接nis成功:
我们之前服务端添加了一个nis用户alice,可以通过查看是否存在这个uid为500的用户,看看是否连接nis成功:

root@ubuntu:~# getent passwd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
…省略若干行
alice:x:500:500::/home/alice:/bin/bash

可以看到成功了。

登录

下面我们测试下用alice用户登录

alice@ubuntu:~$ whoami
alice
alice@ubuntu:~$ pwd
/home/alice

用mount命令查看下,发现home目录是挂载的:
192.168.42.101:/home/alice on /home/alice type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.42.15,local_lock=none,addr=192.168.42.101)

安全设置

与CentOS不同,Ubuntu默认的防火墙是不启用的,默认也不安装selinux等软件,这也许就是它更为“易用”的原因之一。我们本次将使用防火墙和tcp_wrapper来做安全加固工作。

修改ypbind的端口:
ypbind也是通过rpcbind来动态分配端口的,我们手动指定下它的端口,好通过防火墙来限制访问

root@ubuntu:~# vim /etc/default/nis

把28行YPBINDARGS=-no-dbus修改成YPBINDARGS=”-no-dbus -p 666″
重启nis服务:

root@ubuntu:~# systemctl restart nis.service

下面添加防火墙规则:

root@ubuntu:~# ufw allow ssh
root@ubuntu:~# ufw allow from 192.168.42.101 to any port 111
root@ubuntu:~# ufw allow from 192.168.42.101 to any port 666

第一条尤为重要,没有这条规则,待会启用防火墙后你就没法连接了。
启用防火墙:

root@ubuntu:~# ufw enable

还可以使用tcp_wrapper来限制rpc端口的访问:

root@ubuntu:~# echo "rpcbind: 127. 192.168.42.101" >> /etc/hosts.allow
root@ubuntu:~# echo "rpcbind: ALL" >> /etc/hosts.deny

经过检查,各项功能正常,安全加固没有导致各项服务异常。

一点坑爹的地方

ubuntu 16.04开机启动的时候,通过systemd会先启动nis,后启动rpcbind,导致nis服务没有正确启动,无法获取nis账号信息(redhat系好像没这个毛病),这是一个bug,解决的办法如下:

root@ubuntu:~# systemctl add-wants multi-user.target rpcbind.service

一点总结:

本次教程中,服务端到客户端,所有的nfs和nis都没有使用使用域名FQDN来配置连接。一般都是直接用IP地址连接的。个人认为这样并不是很好,我推荐在/etc/hosts文件中添加FQDN信息,例如:

192.168.42.101 server.yyshell.com server
192.168.42.102 client.yyshell.com client
192.168.42.15 ubuntu.yyshell.com ubuntu
另外,/etc/sysconfig/network中的HOSTNAME以及/etc/idmapd.conf都是可以考虑配置FQDN的(一般这两个地方,如果上面hosts文件改动后没有问题,就不是必须配置的),像本次教程中那样什么都不配置,nfs默认使用的是localdomain,所以也没有出错(相当于负负得正)。如果hosts中已经有了解析,我们添加nis客户端的时候也使用域名,这样如果我们更换机器ip,直接改下hosts文件就可以了。
CentOS6,Ubuntu 16.04安装、使用NIS,NFS,AutoFS教程(3)
Tagged on:                     

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注