zoukankan      html  css  js  c++  java
  • 配置SMB、NFS共享

    【配置SMB、NFS共享】
    【Samba服务基础】
    用途:为客户机提供共享文件夹
    协议:SMB(TCP 139)、CIFS(TCP 445)
    管理共享账号
    Samba用户——专用来访问共享文件夹的用户
    --采用独立设置密码
    --需要预先建立同名的系统用户(可以不设密码)
    pdbedit管理工具
    添加用户 pdbedit -a 用户名
    删除用户 pdbedit -x 用户名
    查询用户 pdbedit -L [用户名]
    配置文件
    /etc/samba/smb.conf 全局设置
    --->
    [global]
    workgroup = 工作组名
    ...
    [自定义共享名]
    path = 路径
    public = no|yes 公共访问,默认no
    browseable = yes|no 浏览器访问,默认yes
    read only = yes|no 可读权限,默认yes
    write list = 用户名 可写用户,默认无
    vaild users = 用户名 默认任何用户
    hosts allow = 客户机IP或网段 设置允许主机
    hosts deny = 客户机IP或网段 设置禁止主机
    SELinux对SMB共享的保护
    查看SELinux开关
    getsebool -a | grep ^samba_exp
    --->
    samba_export_all_ro --> off
    samba_export_all_rw --> off 可读写共享默认关闭
    永久开启SELinux设置
    setsebool -P samba_export_all_rw=on
    【访问共享文件夹】
    软件:samba-client
    列出共享资源
    smbclient -L 服务器地址
    连接共享文件夹
    smbclient -U 用户名 //服务器地址/共享名
    smb:>ls 检查是否可列出目录内容
    smb: > quit 退出smb:>交互环境
    mount挂载---客户端
    软件:cifs-utils
    手动挂载
    mount //服务器地址/共享名 挂载点
    挂载全部 mount -a
    检查挂载点 df -hT /mnt/dev/
    开机挂载配置
    [root@desktop0 ~]# vim /etc/fstab
    //服务器地址/共享名 挂载点 cifs
    [username=Smb用户名,password=共享密码,]_netdev 0 0
    //172.25.0.11/devops /mnt/dev cifs
    username=kenji,password=123,_netdev 0 0

    【Samba共享配置步骤】
    1.在服务器上发布Samba共享文件夹
    1)安装软件包samba
    yum -y install samba
    2)创建共享账号并设置密码
    [root@server0 ~]# useradd harry
    [root@server0 ~]# pdbedit -a harry
    --->密码设置:harry
    [root@server0 ~]# useradd kenj
    [root@server0 ~]# pdbedit -a kenji
    --->密码设置:kenji
    [root@server0 ~]# useradd chihiro
    [root@server0 ~]# pdbedit -a chihiro
    --->密码设置:chihiro
    确认共享账号
    [root@server0 ~]# pdbedit -L
    harry:1001:
    chihiro:1003:
    kenji:1002:
    3)准备共享文件夹
    [root@server0 ~]# mkdir /common
    [root@server0 ~]# mkdir /devops
    [root@server0 ~]# setfacl -m u:chihiro:rwx
    /devops //单独配置写入权限
    4)调整SELinux开关策略,允许发布可写的Samba共享资源
    永久打开SELinux设置
    setsebool -P samba_export_all_rw=on
    查看SELinux配置
    getsebool -a | grep ^samba_exp
    --->
    samba_export_all_ro --> off
    samba_export_all_rw --> on
    5)配置共享目录
    [root@server0 ~]# vim /etc/samba/smb.conf
    --->
    [global]
    workgroup = STAFF
    ...
    [common]
    path = /common
    hosts allow = 172.25.0.0/24
    [devops]
    path = /devops
    hosts allow = 172.25.0.0/24
    write list = chihiro
    6)重启smb服务
    [root@server0 ~]# systemctl restart smb
    [root@server0 ~]# systemctl enable smb
    查看
    [root@server0 ~]# netstat -antpu | grep smb
    2.在客户机desktop0测试Samba共享资源
    1)安装软件包samba-client
    yum -y install samba-client
    2)浏览共享资源
    smbclient -L server0.example.com
    ---> Enter root's password:(Enter)
    3)连接共享目录
    [root@desktop0 ~]# smbclient -U harry
    //server0.example.com/common
    ---> Enter root's password:harry 共享密码
    smb:>ls 检查是否可列出目录内容
    smb: > quit 退出smb:>交互环境
    【multiuser机制】
    共享源多用户访问
    SMB客户端的multiuser挂载技术
    --只需一次挂载
    --客户端访问挂载点时,若需不同权限,
    可以临时切换为新共享用户,无需重新挂载
    实现方式
    1)挂载SMB共享时启用multiuser
    2)使用cifscreds临时切换身份
    挂载参数调整
    mount.cifs的挂载参数
    multiuser,提供对客户端多个用户身份的区分支持
    sec=ntlmssp,提供NT局域网管理安全支持
    [root@desktop0 ~]# vim /etc/fstab

    //服务器地址/共享名 挂载点 cifs username=Smb用户名,
    password=共享密码,multiuser,sec=ntlmssp,_netdev 0 0

    //172.25.0.11/devops /mnt/dev cifs username=kenji,
    password=123,multiuser,sec=ntlmssp,_netdev 0 0

    重新挂载共享
    umount /mnt/dev ;mount -a
    切换共享用户身份
    [root@desktop0 ~]# su - student
    [student@desktop0 ~]$
    提交新用户凭据并测试
    cifscreds add [| update] -u 共享用户名 服务器地址
    cifscreds add -u chihiro server0
    Password: 共享密码
    touch /mnt/dev/ch.txt 写测试
    ls /mnt/dev/ch.txt 确认结果
    【多用户Samba挂载配置】
    1.挂载Samba共享目录
    1)创建挂载点
    [root@desktop0 ~]# mkdir /mnt/dev
    2)安装cifs-utils软件包
    yum -y install cifs-utils
    3)配置开机挂载
    [root@desktop0 ~]# vim /etc/fstab
    4)测试挂载配置
    [root@desktop0 ~]# mount -a
    [root@desktop0 ~]# df -hT /mnt/dev 查看
    2.启用multiuser多用户支持
    1)修改挂载配置,添加多用户支持
    [root@desktop0 ~]# vim /etc/fstab
    重新挂载此共享
    umount /mnt/dev;mount -a
    2)验证多用户访问
    student验证,无权访问挂载点/mnt/dev
    以共享用户chihiro身份提交新的访问凭据
    [root@desktop0 ~]# su - student
    [student@desktop0 ~]$ cifscreds -u chihiro
    add server0.example.com
    Password: 共享密码
    [student@desktop0 ~]$ touch /mnt/dev/a.txt
    [student@desktop0 ~]$ ls /mnt/dev/a.txt
    ---> /mnt/dev/a.txt

    配置NFS共享
    【普通NFS服务】
    Network File System,网络文件系统
    --用途:提供共享文件夹
    --协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)
    软件包:nfs-utils
    系统服务:nfs-server
    [root@server0 ~]# rpm -q nfs-utils
    exports配置文件解析
    配置文件 /etc/exports
    文件夹路径 客户机地址(权限) 客户机地址(权限)
    更新配置
    exportfs -r
    重启nfs-server服务
    systemctl restart nfs-server
    访问共享文件夹
    列出NFS资源
    showmount -e 服务器地址
    手动挂载NFS共享
    mount 服务器地址:文件夹路径 挂载点
    开机配置/etc/fstab
    服务器地址:文件夹路径 挂载点 nfs _netdev 0 0

    【普通NFS共享的实现】
    1.在服务器上发布NFS共享目录
    1)准备需要共享的文件夹
    mkdir /public
    mkdir /protected
    2)建立NFS共享配置
    vim /etc/exports
    --->
    /public 172.25.0.0/24(ro)
    /protected 172.25.0.0/24(rw)
    3)启动系统服务nfs-server,并设置开机自启
    systemctl restart nfs-server
    systemctl enable nfs-server
    2.在客户端上挂载/public NFS共享目录
    1)创建挂载点
    mkdir /mnt/nfsmount
    2)列出server0上提供的NFS共享资源
    showmount -e server0.example.com
    3)配置开机挂载server0的NFS共享目录/public
    vim /etc/fstab
    4)测试挂载配置
    mount -a
    df -hT /mnt/nfsmount/
    Filesystem Type Size Used Avail Use% Mounted on
    server0.example.com:/public nfs4 10G 3.2G 6.8G 32%
    /mnt/nfsmount
    【安全NFS服务】
    安全NFS服务的特点
    结合LDAP+kerberos技术,实现认证和加密支持
    同一个kerberos领域内,认证用户可实现“一次密码认证,
    多次免密登陆”的通行证机制
    发布安全NFS
    1)调整共享目录配置,启用安全NFS支持
    2)部署kerberos密钥文件
    3)还需要启动nfs-secure-server服务
    vim /etc/exports
    --->
    /protected *(rw,sec=krb5p)
    wget -O /etc/krb5.keytab
    http://classroom/pub/keytabs/server0.keytab
    systemctl restart nfs-secure-server nfs-server
    exportfs -r
    访问安全NFS
    部署kerberos密钥文件
    启动客户端的nfs-secure服务
    调整挂载设置添加sec=krb5p参数
    wget -O /etc/krb5.keytab
    http://classroom/pub/keytabs/desktop0.keytab
    systemctl restart nfs-secure
    vim /etc/fstab
    --->
    172.25.0.11://protected /mnt/nfssecure nfs
    sec=krb5p,_netdev 0 0
    验证挂载配置
    mount -a
    df -hT /mnt/nfs*

    【安全NFS共享的实现】
    1.将server0、desktop0加入kerberos认证领域
    1)初始化服务器
    lab nfskrb5 setup
    2)初始化客户机
    lab nfskrb5 setup
    3)验证初始化结果
    可以使用网络账号ldapuser0登入到server0或desktop0,
    其密码是kerberos:
    [root@server0 ~]# ssh ldapuser0@desktop0.example.com
    password:
    [ldapuser0@desktop0 ~]$ 成功登陆
    [ldapuser0@desktop0 ~]$ exit 返回原环境
    [root@server0 ~]#
    2.为服务器、客户机部署kerberos密钥
    1)为服务器下载及部署密钥
    [root@server0 ~]# wget http://classroom/pub/
    keytabs/server0.keytab -O /etc/krb5.keytab
    检查部署结果
    [root@server0 ~]# file /etc/krb5.keytab
    ---> /etc/krb5.keytab:data
    2)为客户机下载及部署密钥
    [root@desktop0 ~]# wget http://classroom/pub/
    keytabs/desktop0.keytab -O /etc/krb5.keytab
    检查部署结果
    [root@desktop0 ~]# file /etc/krb5.keytab
    ---> /etc krb5.keytab:data
    3.在服务器上调整/protected共享配置
    1)创建指定的子目录
    [root@server0 ~]# mkdir /protected/project
    赋予可写权限
    [root@server0 ~]# chown ldapuser0
    /protected/project
    2)调整共享目录的安全控制类型
    [root@server0 ~]# vim /etc/exports
    --->
    /public 172.25.0.0/24(ro)
    /protected 172.25.0.0/24(rw,sec=krb5p)
    指定安全类型
    3)重启服务nfs-server、nfs-secure-server
    systemctl restart nfs-server nfs-secure-server
    systemctl enable nfs-server nfs-secure-server
    4.在客户机上挂载/protected安全NFS共享
    1)创建挂载点
    mkdir /mnt/nfssecure
    2)启动系统服务nfs-secure
    systemctl restart nfs-secure
    systemctl enable nfs-secure
    3)配置开机挂载安全NFS共享
    vim /etc/fstab
    --->
    server0.example.com:/public /mnt/nfsmount
    nfs _netdev 0 0
    server0.example.com:/protected /mnt/ nfssecure nfs sec=krb5p,_netdev 0 0
    4)验证挂载配置
    [root@desktop0 ~]# mount -a
    [root@desktop0 ~]# df -hT /mnt/nfs*
    5)测试对挂载点的写入权限
    --以用户ldapuser0通过SSH的方式登入客户端,
    ssh ldapuser0@desktop0.example.com
    password:
    [ldapuser0@desktop0 ~]$ 成功登陆
    验证密码(kerberos)以获取通行证
    --访问客户机挂载点/mnt/nfssecure/的子目录project,
    touch /mnt/nfssecure/project/a.txt
    ls -lh /mnt/nfssecure/project/a.txt
    -rw-rw-r-- 测试可写入

  • 相关阅读:
    几种常见的软件体系结构及特点分析
    mvc模式
    代理模式 补充
    软件架构体系风格
    大道至简之编程的精义读后感-Java伪代码
    MVC架构模式实例
    浅谈模型-视图-控制器模式
    《大型网站技术架构:核心原理与案例分析》读后感
    质量属性分析
    构架漫谈读后感之软件架构师的工作
  • 原文地址:https://www.cnblogs.com/fuzhongfaya/p/8952282.html
Copyright © 2011-2022 走看看