• 部署NFS服务,以及安全的NFS服务


     

    一、部署NFS共享服务
    1.1 基础知识:
    本地文件系统: EXT3/4 、SWAP 、NTFS ——本地磁盘
    伪文件系统 : /proc 、/sys —— 内存空间
    网络文件系统:NFS ——网络存储空间

    NFS ——Network FileSystem 网络文件系统
    功能:搭建一个可以为客户端提供共享资源的文件夹
    协议:NFS(TCP/IP 2049 )
    远程过程调用 (RPC) :功能是指定每个 NFS 功能所对应的 port number ,RPC 是固定 port 111 来监听客户端的需求并回报客户端正确NFS 连接端口。
    RPC (TCP/UDP 111) Remote Procedure Call;
    注意:启动 NFS 之前,RPC 就要先启动了,否则 NFS 会无法向 RPC 注册。
    客户端NFS和服务端NFS通信过程:
    1)首先服务器启动RPC服务并开启111端口;
    2)启动NFS端口,并向RPC注册端口信息;
    3)客户端启动RPC(portmap服务),向服务器的RPC服务请求服务器的NFS端口;
    4)服务器RPC服务反馈NFS端口信息给客户端
    5)客户端通过RPC传来的端口来建立和服务端NFS的连接


    1.2 软件及配置文件:
    RPC 主程序:rpcbind
    NFS 主程序:nfs-utils
    主要配置文件:/etc/exports (系统默认没有共享文件,要使用 vim 主动新建)
    该配置文件内容:共享目录路径 客户端(参数)
    客户端:IP地址;
    网段地址 172.25.1.* 或 172.0.0.0/24
    所有主机 :*
    单个域 :*. taobao .com
    主机名: pc207.taobao.com

    参数:rw 、ro 该目录分享权限(可读写或只读)
    sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘
    no_root_squash 让客户端使用 root 身份来操作服务器的文件系统
    all_squash 客户端权限都将为nfsnobody,即匿名用户
    anonuid  anongid anon 意指 anonymous (匿名者),即匿名用户的 UID 、GID设定值


    NFS 文件系统维护指令:/usr/sbin/exportfs
    exportfs 是用在 NFS Server 端
    NFS服务的登录文件:/var/lib/nfs/*tab —— :
    /var/lib/nfs/etab :主要记录了 NFS 所分享出来的目录的完整权限设定值;
    /var/lib/nfs/xtab :记录曾经链接到此 NFS 服务器的相关客户端数据。
    客户端查询NFS服务器共享资源的指令:/usr/sbin/showmount

    showmount 选项
    -a/–all :以 host:dir 这样的格式来显示客户主机名和挂载点目录。
    -d或–directories :仅显示被挂载的目录名。
    -e或–exports :显示NFS服务器的输出清单
    –no-headers :禁止输出描述头部信息
    -v或–version :显示版本信息
    显示输出目录列表 # showmount -e NFS的ip
    exportfs 参数
    -a:全部挂载(或卸载)/etc/exports文件内的设定。
    -r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容
    -u:卸载某一目录。
    -v:在export时将共享的目录显示在屏幕上。

    rpcinfo -p localhost /IP 查看 RPC 服务的注册状况


    1.3 部署NFS服务器172.25.0.11(selinux 关闭,防火墙关闭)
    systemctl stop firewalld
    setenforce 0

    1.3.1 装包
    rpm -q nfs-utils
    rpm -q rpcbind
    yum -y install rpcbind nfs-utils
    1.3.2 编写NFS主配置文件,及共享文件
    mkdir /wj01
    echo “hello welcome to here” > /wj01/test.txt
    ]# chmod o+w /wj01/ //让其他访问者有写的权限
    vim /etc/exports
    /wj01 *(rw)
    exportfs -r //配置生效
    1.3.3 重启服务,设置开机自启
    systemctl restart rpcbind
    systemctl restart nfs-server
    systemctl enable rpcbind
    systemctl enable nfs-server
    1.3.4 NFS服务器本机查看
    showmount -e localhost
    Export list for localhost:
    /wj01 *
    ]# rpcinfo -p localhost 查看 RPC 服务的注册状况


    1.4 客户端访问NFS服务172.25.0.10(selinux 关闭,防火墙关闭)
    systemctl stop firewalld
    setenforce 0
    1.4.1 安装软件、启动RPC、NFS
    yum -y install rpcbind nfs-utils
    systemctl restart rpcbind
    systemctl restart nfs-server
    systemctl enable rpcbind
    systemctl enable nfs-server
    1.4.2 创建挂载目录(通过挂载的目录访问共享资源)
    mkdir /wj02
    手动挂载:——mount -t nfs 服务器地址:共享目录路径 挂载目录
    为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
    ]# mount -t nfs 172.25.0.11:/wj01 /wj02 -o proto=tcp -o nolock
    设置开机挂载 ]# vim /etc/fstab
    172.25.0.11:/wj01 /wj02 nfs defaults,_netdev 0 0

    1.4.3 查看共享资源目录
    showmount -e 172.25.0.11
    【如出现以下错误:可能式防火墙没有关闭,可以关闭防火墙或者写规则放行服务
    clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)】
    ]# df -h
    172.25.0.11:/wj01 10G 3.0G 7.0G 31% /wj02
    ]# cat /wj02/test.txt
    hello welcome to here
    ]# echo “AAAAAA” >/wj02/b.txt
    NFS服务器上查看:]# ls /wj01/
    b.txt test.txt
    客户端]# ls /wj02
    b.txt test.txt


    补充:方便配置防火墙,需要固定nfs服务端口
    ]# rpcinfo -p localhost //查看RPC注册的端口
    ]# vim /etc/sysconfig/nfs //分配端口,编写配置文件
    RQUOTAD_PORT=30001
    LOCKD_TCPPORT=30002
    LOCKD_UDPPORT=30002
    MOUNTD_PORT=30003
    STATD_PORT=30004
    ]# systemctl restart nfs-server 重启服务
    ]# rpcinfo -p localhost //端口被固定。


    二、部署安全NFS服务
    ——结合LDAP+Kerberos 技术,实现认证和加密技术
    ——同一个kerberos领域内,认证用户实现“一次密码认证,多次免密登录”的通行证机制。

    2.1 调整共享目录配置,启用安全NFS支持
    2.2 部署kerberos 密钥文件
    2.3 还需要启动nfs-secure-server服务

    访问安全NFS共享文件的必备条件
    1) 部署kerberos密钥文件
    2)启动客户端的nfs-secure服务
    3)调整挂载设置 添加sec=krb5p参数

    https://blog.csdn.net/weixin_41072205/article/details/90405238
  • 相关阅读:
    ArcObject获取ArcMap默认地理数据库的路径
    标准IO
    进程关系
    进程环境
    C语言基础知识位运算
    Bash 快捷键
    信号
    UNIX系统文件
    进程
    unix 文件属性
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13847148.html
Copyright © 2020-2023  润新知