linux学习之nfs

网络文件系统(NFS)

 

1.简介

网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一工作组中从不同客户端访问其文件。NFS协议有多个版本:Linux支持版本4、版本3和版本2, 而大多数系统管理员熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如NFSv4)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密。

2.共享配置

服务端

[root@server34 ~]# yum install nfs-utils -y ##安装服务

[root@desktop34 ~]# systemctl enable nfs-server.service ##开启服务

ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'


[root@server34 ~]# systemctl start nfs-server.service

[root@server34 ~]# systemctl start firewalld ##设置防火墙

[root@server34 ~]# firewall-cmd --permanent --add-service=rpc-bind

success

[root@server34 ~]# firewall-cmd --permanent --add-service=nfs

success

[root@server34 ~]# firewall-cmd --permanent --add-service=mountd

success

[root@server34 ~]# firewall-cmd --reload

success


客户端测试

showmount- e 172.25.254.134 ##连接成功

  

[root@server34 ~]# mkdir /public ##建立共享目录

[root@server34 ~]# touch /public/westostest

[root@server34 ~]# chmod 777 /public/

[root@server34 ~]# vim /etc/exports ##更改配置文件

[root@server34 ~]# cat /etc/exports

/public *(sync) ##表示将/public目录共享给所有人并数据同步

[root@server34 ~]# exportfs -rv ##刷新服务,让更改生效

exporting *:/public

 

 

客户端测试

showmount -e 172.25.254.134

mount 172.25.254.134:/public  /mnt ##共享成功

cd /mnt/

ls

 

/public         172.25.254.0*(sync) ##表示将/public目录共享给254网段所有主机

/public         *.example.com(sync) ##表示将/public目录共享给example.com域的所有主机

/public         172.25.254.234(rw,sync)  172.25.254.6(ro,sync) ##目录共享给234主机是可读写,6主机是只读


234主机测试

[root@desktop34 ~]# mount 172.25.254.134:/public /mnt ##挂载成功

[root@desktop34 ~]# df

Filesystem             1K-blocks    Used Available Use% Mounted on

/dev/vda1               10473900 3157004   7316896  31% /

devtmpfs                  927072       0    927072   0% /dev

tmpfs                     942660     140    942520   1% /dev/shm

tmpfs                     942660   17064    925596   2% /run

tmpfs                     942660       0    942660   0% /sys/fs/cgroup

172.25.254.134:/public  10473984 6827776   3646208  66% /mnt

[root@desktop34 ~]# cd /mnt/

[root@desktop34 mnt]# touch file1

 

6主机测试

[root@foundation6 ~]# mount 172.25.254.134:/public /mnt

[root@foundation6 ~]# cd /mnt/

[root@foundation6 mnt]# ls

westostest

[root@foundation6 mnt]# touch file1 ##没有挂载权限

touch: cannot touch ‘file1’: Read-only file system

 

 

 

/public         *(rw,sync,no_root_squash) ##共享给所有人,当客户端使用root挂载时不转换用户身份


客户端测试

[root@desktop34 ~]# mount 172.25.254.134:/public /mnt/

[root@desktop34 ~]# cd /mnt

[root@desktop34 mnt]# ls

file1  westostest

[root@desktop34 mnt]# ll

total 0

-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun  8 09:08 file1

-rw-r--r--. 1 root      root      0 Jun  8 08:32 westostest

[root@desktop34 mnt]# touch file2

[root@desktop34 mnt]# ll

total 0

-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun  8 09:08 file1

-rw-r--r--. 1 root      root      0 Jun  8 09:28 file2 ##建立file2时不转换身份,直接以root身份执行

-rw-r--r--. 1 root      root      0 Jun  8 08:32 westostest

 

 

/public         *(rw,sync,anonuid=1001,anongid=1000) ##public共享给所有人以1001uid和1000gid


客户端测试

[root@desktop34 ~]# mount 172.25.254.134:/public /mnt/

[root@desktop34 ~]# cd /mnt

[root@desktop34 mnt]# touch test

[root@desktop34 mnt]# ll

total 0

-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun  8 09:08 file1

-rw-r--r--. 1 root      root      0 Jun  8 09:28 file2

-rw-r--r--. 1      1001 student   0 Jun  8 09:38 test ##建立的文件uid为1001,gid为1000

-rw-r--r--. 1 root      root      0 Jun  8 08:32 westutostest

 

 

 

3.利用kerberos保护nfs输出

服务端

开启kerberos认证,得到ldap用户

[root@server34 ~]# yum install sssh krb5-workstation.x86_64  authconfig-gtk.x86_64  -y ##安装服务


[root@server34 ~]# authconfig-gtk ##认证用户



[root@server34 ~]# wget http://172.25.254.254/pub/keytabs/server34.keytab -O /etc/krb5.keytab ##下载证书

[root@server34 ~]# ktutil ##查看证书是否下载成功

ktutil: rkt  /etc/krb5.keytab

ktutil: list

[root@server34 ~]# systemctl start nfs-secure-server

[root@server34 ~]# systemctl enable nfs-secure-server

[root@server34 ~]#vim /etc/resolv.conf ##在服务端作解析

nameserver 172.25.254.254

[root@server34 ~]# vim /etc/exports ##/public共享所有人,使用kerberos票据认证

/public         *(rw,sec=krb5p)

[root@server34 ~]# exportfs -rv

exporting *:/public

 

客户端

开启kerberos认证,得到ldap用户

[root@desktop34 ~]# wget http://172.25.254.254/pub/keytabs/desktop34.keytab -O /etc/krb5.keytab ##下载证书

[root@desktop34 ~]# authconfig-gtk ##认证用户

[root@desktop34 ~]# ktutil

ktutil: rkt  /etc/krb5.keytab

ktutil: list

[root@desktop34 ~]# systemctl start nfs-secure-server

[root@desktop34 ~]# systemctl enable nfs-secure-server

[root@desktop34 ~]# vim /etc/hosts ##客户端作解析

172.25.254.134 server34.example.com

[root@desktop34 ~]# mount 172.25.254.11:/public  /mnt  -o  sec=krb5p

su - student ##先切换到普通用户,因为普通用户切换是需要输入密码就可以完成认证,而root切换不需要输入密码无法完成认证

cd /mnt

su - ldapuser1

klist

ls /mnt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值