Openssh远程控制nfs网络文件系统

本文详细介绍了OpenSSH及其作用,包括SSH协议的版本、认证方式、配置文件解析以及客户端使用。同时,讲解了SSH的主机密钥管理,强调了基于密钥的身份验证的重要性。此外,还探讨了NFS服务,阐述了NFS的作用、工作原理、配置方法以及客户端挂载步骤,强调了NFS在数据安全和网络文件共享中的应用。
摘要由CSDN通过智能技术生成

Openssh远程控制

一、Openssh简介

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

知识延伸:
ssh协议有两个版本:

v1:基于CRC-32 做MAC,不安全; (一般用于实现主机认证)
v2:基于协议协商选择双方都支持的最安全的MAC机制
基于DH做密钥交换,基于RSA或DSA实现身份认证,从而实现无需输入账号面膜
客户端通过检查服务器端的主机秘钥来判断是否能够继续通信;
认证方式:

  • 基于口令的认证
  • 基于密钥的认证

二、Openssh的作用

由于传统的telnet、rcp ftp等工具是明文传输数据的,对数据安全性存在很大的安全隐患,而OpenSSH可以对传输的数据进行加密从而大大提高了数据的安全性。

三、OpenSSH程序简介

OpenSSH的分为客户端和服务端两部分
Clients端的配置文件:/etc/ssh/ssh_config

Server端的配置文件:/etc/ssh/sshd_config

Server端服务脚本:/etc/rc.d/init.d/sshd

OpenSSH在Linux系统中默认是安装并启动的

openssh 主要的关键包有四个

openssh.x86_64 5.3p1-104.el6 //服务端和客户端的公共组件
openssh-askpass.x86_64 5.3p1-104.el6 //
openssh-clients.x86_64 5.3p1-104.el6 //客户端安装包
openssh-server.x86_64 5.3p1-104.el6 //服务端安装包

openssl-clients 几个常用文件

[root@localhost ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config //客户端配置文件
/usr/bin/scp //远程复制文件
/usr/bin/sftp //远程文件共享
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan

openssl-server 几个常用文件

/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

服务器端配置文件/etc/ssh/sshd_config 主要参数详解
服务端配置文件是让别人登陆时使用的
注:配置文件中使用“#”注释掉的一般就是使用默认

参数 注释
#Port 22 //默认端口号,为了其安全一般要更改为其他端口
#AddressFamily any //说明要监听任意地址
#ListenAddress 0.0.0.0 //监听本机所有IPV4的ip
#ListenAddress :: //监听本机所有的IPV6的地址
Protocol 2 监听的协议版本
HostKey for protocol version 1 //说明key的协议版本
SyslogFacility AUTHPRIV //使用AUTHPRIV 记录日志
#LogLevel INFO //log日志级别
#Authentication: //认证相关
#PermitRootLogin yes //是否支持管理员直接登陆
#StrictModes yes //是否使用严格模式 (严格检查用户的某些相关信息)
#RSAAuthentication yes //是否支持RSA密钥认证
#PubkeyAuthentication yes //是否支持公钥认证

客户端配置文件/etc/ssh/ssh_config 主要参数详解
客户端配置文件时登陆别人的ssh使用的

参数 注释
#Host * //表示连接所有主机
#Port 22 //默认连接端口
#Cipher 3des //加密时使用的加密机制
#StrictHostKeyChecking ask //严格的主机秘钥检查 即第一次连接时是否询问

四、客户端ssh的使用

1、ssh的基本语法
ssh [OPTIONS] [user]@server [COMMAND]

-l user: 以指定用户身份连接至服务器;默认使用本地用户为远程登录时的用户;
ssh user@server
ssh -l user server
实例
环境
主机 ip
node1 192.168.58.10
node2 192.168.58.20

[root@node1 ~]# ip a //查看当前主机ip
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:b7:b0:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.58.10/24 brd 192.168.58.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::ca43:3f86:3176:184c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@node1 ~]# ssh root@192.168.58.20  
The authenticity of host '192.168.58.20 (192.168.58.20)' can't be established.
ECDSA key fingerprint is SHA256:WWNUfnxMY6JpaYtzbdkxTIZSANvOUmXQl0hTULKwikw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.58.20' (ECDSA) to the list of known hosts.
root@192.168.58.20's password:      //输入所连主机的ip
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Fri Sep 24 23:05:07 2021 from 192.168.58.10
[root@node2 ~]# 

测试 (ssh 连上node2后创建一个目录) 然后查看

```bash
Last login: Fri Sep 24 23:01:36 2021 from 192.168.58.1
[root@node2 ~]# mkdir test
[root@node2 ~]# 
Last login: Fri Sep 24 23:05:07 2021 from 192.168.58.10
[root@node2 ~]# ls
anaconda-ks.cfg  test
[root@node2 ~]# exit
注销
Connection to 192.168.58.20 closed.
[root@node1 ~]# 


SSH 主机密钥
ssh通过公钥加密的方式保持通信安全。当某一ssh客户端连接到ssh服务器时,在该客户端登录之前,服务器会向其发送公钥副本。这可用于为通信渠道设置安全加密,并可验证客户端的服务器。

当用户第一次使用ssh连接到特定服务器时,ssh命令可在用户的/.ssh/known_hosts文件中存储该服务器的公钥。在此之后每当用户进行连接时,客户端都会通过对比/.ssh/known_hosts文件中的服务器条目和服务器发送的公钥,确保从服务器获得相同的公钥。如果公钥不匹配,客户端会假定网络通信已遭劫持或服务器已被入侵,并且中断连接。

这意味着,如果服务器的公钥发生更改(由于硬盘出现故障导致公钥丢失,或者出于某些正当理由替换公钥),用户则需要更新其~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。

主机ID存储在本地客户端系统上的

[root@node1 ~]# cat ~/.ssh/known_hosts 
192.168.58.10 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEPb6+ibxzWLa1GPNeAMu91/GMzYJRa7jmOh48WtzFoUc4OqQvsc5DY38fqsK2U+APD4NEf+anv7bcieX7eLNBs=
192.168.58.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKaCw+2ojcY4NMpki7fEmMuVC6j6zjeASNLilekY8u4FaVPgJQG+lbA2+nzBusqa0oHiC4WlIY3kJJ5p2ejCvGw=

主机密钥存储在SSH服务器上的 /etc/ssh/ssh_host_key* 中

[root@node1 ~]# ls /etc/ssh/*key*
/etc/ssh/ssh_host_ecdsa_key      /etc/ssh/ssh_host_ed25519_key      /etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_ecdsa_key.pub  /etc/ssh/ssh_host_ed25519_key.pub  /etc/ssh/ssh_host_rsa_key.pub

配置基于 SSH 密钥的身份验证
用户可通过使用公钥身份验证进行ssh登录身份验证。ssh允许用户使用私钥-公钥方案进行身份验证。这意味着将生成私钥和公钥这两个密钥。私钥文件用作身份验证凭据,像密码一样,必须妥善保管。公钥复制到用户希望登录的系统,用于验证私钥。公钥并不需要保密。拥有公钥的ssh服务器可以发布仅持有您私钥的系统才可解答的问题。因此,可以根据所持有的密钥进行验证。如此一来,就不必在每次访问系统时键入密码,但安全性仍能得到保证。

使用ssh-keygen命令生成密码。将会生成私钥/.ssh/id_rsa和公钥/.ssh/id_rsa.pub。

注意:

生成密钥时,系统将提供指定密码的选项,在访问私钥时必须提供该密码。如果私钥被偷,除颁发者之外的其他任何人很难使用该私钥,因为已使用密码对其进行保护。这样,在攻击者破解并使用私钥前,会有足够的时间生成新的密钥对并删除所有涉及旧密钥的内容。

生成ssh密钥后,密钥将默认存储在家目录下的.ssh/目录中。私钥和公钥的权限就分别为600和644。.ssh目录权限必须是700。

在可以使用基于密钥的身份验证前,需要将公钥复制到目标系统上。可以使用ssh-copy-id完成这一操作

[root@localhost ~]# ssh-copy-id remoteuser@remotehost

通过ssh-copy-id将密钥复制到另一系统时,它默认复制~/.ssh/id_rsa.pub文件

[root@node1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:C/WzHuRyyUroR3q8PIrRj2EO50vFEz4hujfv13CpoAU root@node1
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|                 |
|      . +        |
|     .E= +       |
|    . ..S +  .   |
|     o ++B.+o    |
|    + X*+.B=     |
|     %oO==o..    |
|    . B*B+.      |
+----[SHA256]-----+
[root@node1 ~]# ssh-copy-id -i  ~/.ssh/id_rsa.pub root@192.168.58.20
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.58.20's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.58.20'"
and check to make sure that only the key(s) you wanted were added.


五、scp远程复制工具的使用简介

语法:
scp [OPTIONS] SRC…DEST
常用选项:

-r: 递归复制,复制目录及内部文件时使用;

-p: 保存源文件元数据信息中的属主、属组及权限;

-q: 静默模式

-P PORT: 指明远程服务器使用的端口;

两种模式:

PUSH: scp [OPTIONS] /PATH/FROM/SOMEFILE … user@server:/PATH/TO/DEST
//复制本地文件至远程主机 (但远程目录一定要有写权限)

PULL: SCP [OPTIONS] user@server:/PATH/FROM/SOMEFILE /PATH/TO/DEST
实例

//远程目标主机文件至本地

eg1:复制当前主机上的/root/test2至192.168.58.20主机的/opt/目录下

 [root@node1 ~]# ls
anaconda-ks.cfg  test2
[root@node1 ~]# scp -p /root/test2 root@192.168.58.20:/opt/
test2                                                                         100%    0     0.0KB/s   00:00    
[root@node1 ~]# ls
//到node2 查看
[root@node2 ~]# ls /opt/
data  test2

g2:复制远程主机/etc/fstab至当前主机当前目录下

//在node2创建一个testing.txt的文件
[root@node2 ~]# touch testing.txt
[root@node2 ~]# ls
anaconda-ks.cfg  testing.txt
//在node1,将node2的testing cp到当前目录中来
 [root@node1 ~]# scp root@192.168.58.20:/root/testing.txt  ./
testing.txt                                                                   100%    0     0.0KB/s   00:00    
[root@node1 ~]# ls
anaconda-ks.cfg  test2  testing.txt
[root@node1 ~]# 


增强服务端sshd配置指南

1、不要使用默认端口;(修改默认端口为其他端口)
配置文件:/etc/ssh/sshd_config
Port 22
service sshd restart //修改后需要重启服务
2、不要使用v1版本协议:
Protocol 2
3、限制可登陆的用户 {需要添加}
AllowUsers:允许登陆的用户白名单 (多个用户使用空格隔开)
AllowGroups:允许登陆的组的白名单
DenyUsers
DenyGroups
/etc/ssh/sshd_config

#service sshd reload
==》 获取配置文件详细信息;【 man sshd_conifg 】
4、设定空闲会话超时时长:
5、利用防火墙设置ssh访问策略:
限定ssh服务仅允许***服务器分配有限的地址段内的主机访问
6、仅监听特定的IP地址:
7、使用强密码策略:

[root@node1 ssh]# tr -dc A-Za-z0-9 < /dev/urandom | head -c 30 | xargs

Qe6zOmB2sBNpEONVcKhWS8T4bVrcb0
8、使用基于密钥的认证;
9、禁止使用空密码
10、禁止root直接登陆
PermitRootLogin no
11、限制ssh的访问频度
12、做好日志、经常做日志分析
/var/log/secure

nfs网络文件系统

一、Nfs简介

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

​ NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据。

NFS挂载原理如图

在这里插入图片描述
当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h。

既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现。

二、RPC与NFS通讯原理:

​ 因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能就是指定每个NFS功能所对应的port number,并且通知客户端,记客户端可以连接到正常端口上去。

那么RPC又是如何知道每个NFS功能的端口呢?

首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那么服务器端的RPC就会将之前记录的NFS端口信息告知客户端。如此客户端就会获取NFS服务器端的端口信息,就会以实际端口进行数据的传输。

注意:在启动NFS SERVER之前,首先要启动RPC服务(即portmap服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效

三、NFS客户端和NFS服务器通讯过程:

在这里插入图片描述
首先服务器端启动RPC服务,并开启111端口

服务器端启动NFS服务,并向RPC注册端口信息

客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

四、NFS服务器部署

安装NFS服务,需要安装两个软件,分别是:

RPC主程序:rpcbind

NFS 其实可以被视为一个 RPC 服务,因为启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行! (在 CentOS 5.x 以前这个软件称为 portmap,在 CentOS 6.x 之后才称为 rpcbind 的!)。

NFS主程序:nfs-utils

就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件。

NFS的相关文件:

主要配置文件:/etc/exports
这是 NFS 的主要配置文件了。该文件是空白的,有的系统可能不存在这个文件,主要手动建立。NFS的配置一般只在这个文件中配置即可。
NFS 文件系统维护指令:/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。
分享资源的登录档:/var/lib/nfs/*tab
在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
客户端查询服务器分享资源的指令:/usr/sbin/showmount
这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。showmount 可以用来察看 NFS 分享出来的目录资源。

五、NFS服务安装

//安装NFS和rpc(node1和node2都下载)

[root@node1 ~]# yum install -y  nfs-utils rpcbind

//关防火墙(node1、2都关,)

[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node1 ~]# setenforce 0

/启动服务并设置开机自启
注意:先启动rpc服务,再启动nfs服务。

[root@node1 ~]# systemctl start rpcbind
[root@node1 ~]# systemctl enable rpcbind
[root@node1 ~]# systemctl start nfs-server

//创建共享文件目录,编辑配置文件

[root@node1 ~]# mkdir /public
#创建public共享目录
[root@node1 ~]# vim/etc/exports
	/public 192.168.58.0/24(ro)
	/protected 192.168.58.0/24(rw)
[root@node1 ~]# systemctl restart nfs-server rpcbind
#重新加载NFS服务,使配置文件生效

配置文件说明:

格式: 共享目录的路径 允许访问的NFS客户端(共享权限参数)

如上,共享目录为/public , 允许访问的客户端为192.168.58.0/24网络用户,权限为只读。

请注意,NFS客户端地址与权限之间没有空格。

NFS输出保护需要用到kerberos加密(none,sys,krb5,krb5i,krb5p),格式sec=XXX

none:以匿名身份访问,如果要允许写操作,要映射到nfsnobody用户,同时布尔值开关要打开,setsebool nfsd_anon_write 1

sys:文件的访问是基于标准的文件访问,如果没有指定,默认就是sys, 信任任何发送过来用户名

krb5:客户端必须提供标识,客户端的表示也必须是krb5,基于域环境的认证

krb5i:在krb5的基础上做了加密的操作,对用户的密码做了加密,但是传输的数据没有加密

krb5p:所有的数据都加密
用于配置NFS服务程序配置文件的参数:
参数 作用

ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
NFS客户端挂载配置:
使用showmount命令查看nfs服务器共享信息。输出格式为“共享的目录名称 允许使用客户端地址”

[root@node2 ~]# showmount -e 192.168.58.10
Export list for 192.168.58.10:
/protected 192.168.58.0/24
/public    192.168.58.0/24

showmount命令的用法;

-e 显示NFS服务器的共享列表
-a 显示本机挂载的文件资源的情况NFS资源的情况
-v 显示版本号
//在客户端创建目录,并挂载共享目录。

[root@node2 ~]# mkdir /mnt/public
[root@node2 ~]# mkdir /mnt/data
[root@node2 ~]# vim /etc/fstab 
#在该文件中挂载,使系统每次启动时都能自动挂载
	192.168.58.10:/public  /mnt/public       nfs    defaults 0 0
	192.168.58.10:/protected /mnt/data     nfs    defaults  0 1
[root@node1 ~]# mount -a   #是文件/etc/fstab生效

/查看

[root@node2~]# df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root      xfs        17G  3.1G   14G  18% /
devtmpfs                   devtmpfs  1.4G     0  1.4G   0% /dev
tmpfs                      tmpfs     1.4G  140K  1.4G   1% /dev/shm
tmpfs                      tmpfs     1.4G  9.1M  1.4G   1% /run
tmpfs                      tmpfs     1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/sda1                  xfs      1014M  173M  842M  18% /boot
tmpfs                      tmpfs     280M   32K  280M   1% /run/user/0
/dev/sr0                   iso9660   3.6G  3.6G     0 100% /mnt/cdrom
192.168.58.10:/public    nfs4       17G  3.7G   14G  22% /mnt/public
192.168.58.10:/protected nfs4       17G  3.7G   14G  22% /mnt/data

课后练习

1.手动搭建一个nfs服务器

开放/nfs/shared目录,供所有用户查阅资料
开放/nfs/upload目录为172.16.12.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300

手动搭建一个nfs服务器

开放/nfs/shared目录,供所有用户查阅资料
关闭防火墙

[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node1 ~]# setenforce 0

安装NFS服务

[root@node1 ~]# yum install -y nfs-utils 
systemctl start nfs-server rpcbind

编辑配置文件和共享目录

[root@node1 ~]# vim /etc/exports
[root@node1 nfs]# cat /etc/exports
/nfs/shared *(ro,sync)

在客户端关闭防火墙

[root@node2 ~]# systemctl stop firewaldd
Failed to stop firewaldd.service: Unit firewaldd.service not loaded.
[root@node2 ~]# systemctl stop firewalld
[root@node2 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node2 ~]# setenforce 0

安装NFS服务

[root@node2 ~]# yum install -y nfs-utils rpcbind
[root@node2 ~]# systemctl start nfs-server rpcbind

在客户端查看共享目录

[root@node2 ~]# showmount -e 192.168.58.120
Export list for 192.168.58.120:
/nfs/shared *

创建挂载点目录,挂载

[root@node2 ~]# mkdir /hy
[root@node2 ~]# mount -t nfs 192.168.58.120:/nfs/shared /hy
[root@node2 ~]# df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    883M     0  883M    0% /dev
tmpfs                       901M     0  901M    0% /dev/shm
tmpfs                       901M  8.7M  892M    1% /run
tmpfs                       901M     0  901M    0% /sys/fs/cgroup
/dev/mapper/rhel-root        47G  1.7G   46G    4% /
/dev/nvme0n1p1             1014M  179M  836M   18% /boot
tmpfs                       181M     0  181M    0% /run/user/0
192.168.58.120:/nfs/shared   47G  1.7G   46G    4% /hy

2开放/nfs/upload目录为172.16.12.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300
创建共享目录

[root@node1 ~]# mkdir /nfs/upload

创建nfs-upload用户 ,UID和GID为300

[root@node1 ~]# useradd -r -u 300 nfs-upload

修改配置文件

[root@node1 nfs]# cat /etc/exports
/nfs/shared *(ro,sync)
/nfs/upload 192.168.58.0/24(rw,anonuid=300,anongid=300,sync)
 systemctl restart nfs-server rpcbind

在客户端查看共享目录

[root@node2 ~]# showmount -e 192.168.58.120
Export list for 192.168.58.120:
/nfs/shared *
/nfs/upload 192.168.58.0/24

创建挂载点目录,挂载

[root@node2 ~]# mkdir /hy
[root@node2 ~]# mount -t nfs 192.168.58.120:/nfs/upload /hy

在服务器端设置属主和属组

[root@node1 ~]# chown nfs-upload.nfs-upload /nfs/upload
[root@node1 ~]# cd /nfs
[root@node1 nfs]# ll
总用量 0
drwxr-xr-x. 2 root       root       6 924 18:38 shared
drwxr-xr-x. 2 nfs-upload nfs-upload 6 924 18:41 upload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值