网络文件系统(samba,nfs,iscsi)

时间:2024-03-28 11:21:54

samba

作用:windows 系统共享文件时用到的协议

windows 如何将指定文件夹共享到 linux

  1. 打开windows指定文件的共享功能网络文件系统(samba,nfs,iscsi)
    网络文件系统(samba,nfs,iscsi)
    网络文件系统(samba,nfs,iscsi)
    网络文件系统(samba,nfs,iscsi)

  2. 在linux上测试能不能发现该文件夹
    对linux 主机做的配置:1. 能ping通 172.20.12.166
               2. dnf install samba-client -y

网络文件系统(samba,nfs,iscsi)
172.20.12.166: 是windows 主机的ip
SNJI-G: 是windows 主机的用户名

实验环境搭建:

  • server 主机:
    ip :172.25.254.1
  • client 主机:
    ip:172.25.254.2

samba基本信息

服务启动脚本 smb.service
主配置目录 /etc/samba
主配置文件 /etc/samba.conf
安全上下文 samba_share_t
端口 139和445
安装包 samba和 samba-common

samba的安装与启用

samba的安装 dnf install samba samba-common samba-client -y
samba服务启动 systemctl enable --now smb
samba服务启用 firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

samba用户的建立

  1. samba用户必须是被地存在的用户
  2. samba用户的建立
smbpasswd -a lee 添加用户
pdbedit -L 查看用户列表
pdbedit -x lee 删除用户

网络文件系统(samba,nfs,iscsi)当创建了smb 用户,默认该用户的家目录就会被共享出去网络文件系统(samba,nfs,iscsi)

samba用户访问家目录

当selinux开启时:
setsebool -P samba_enable_home_dirs on
测试:
网络文件系统(samba,nfs,iscsi)

samba服务共享目录

  1. 生成配置文件
    网络文件系统(samba,nfs,iscsi)

  2. 建立共享目录 mkdir /westosdir

  3. 如果开启了selinux,则需要修改共享目录的安全上下文
    semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
    restorecon -RvvF /westosdir/
    网络文件系统(samba,nfs,iscsi)

  4. 编辑主配置文件网络文件系统(samba,nfs,iscsi)

  5. 重启服务,在client主机测试
    网络文件系统(samba,nfs,iscsi)网络文件系统(samba,nfs,iscsi)

samba的访问控制

如果hosts_allow写在 [global] 里面表示对全局的共享文件进行控制
如果写在具体的共享文件里面,则是对这一个共享文件进行控制

  • hosts deny #黑名单(禁止名单的ip访问,如果禁止网段访问 "172.25.254. "代表的意思就是 172.25.254. 这个网段的所有IP 不能访问)
    网络文件系统(samba,nfs,iscsi)
    网络文件系统(samba,nfs,iscsi)

  • hosts deny #白名单(在名单上的人可以访问)
    网络文件系统(samba,nfs,iscsi)

samba的常用配置参数

writable = yes 可写
write list = westos 指定用户可写
write list = +westos 指定组可写
write list = @westos 指定组可写
valid users = lee 指定访问用户
valid users = +lee或@lee 指定访问组
browseable = yes或no 是否隐藏共享(yes 隐藏 no 不隐藏)
map to guest = bad user (写到全局设定中)不加-U代表匿名用户登陆
guest ok = yes 允许匿名用户访问
admin users = lee 指定此共享的超级用户身份(指用lee 用户访问时,lee就相当于变成了root 用户)

samba的多用户挂载

  • 用户挂载书写方式
    网络文件系统(samba,nfs,iscsi)

    在客户端如果用普通的挂载方式
    没有用过用户验证的人也可以访问samba服务网络文件系统(samba,nfs,iscsi)

  • 我们可以通过以下操作来解决上述问题

  1. dnf install cifs-utils.x86_64 #下载提供解决该问题的软件

  2. vim /root/westos_smbpass #编写认证文件

  3. 实现不显示密码挂载网络文件系统(samba,nfs,iscsi)

  4. mount -o credentials=/root/wesots_smbpass,sec=ntlmssp,multiuser //172.25.254.1/Sharedir /mnt

credentials=/root/westos_smbpass 指定认证文件
sec=ntlmssp 指定认证类型
multiuser 支持多用户

网络文件系统(samba,nfs,iscsi)

  1. 其他用户通过认证可以显示
    网络文件系统(samba,nfs,iscsi)

当其他用户认证时遇到“ Key search failed: Key has expired” 这类报错,cifscreds add -u westos -d 172.25.254.1 和 cifscreds clearall 来解决该问题

autofs+samba

作用:实现自动挂载,当需要时自动挂载,不需要时自动卸载,节省资源
步骤:

  1. dnf install autofs.x86_64 -y #下载插件

  2. vim /etc/auto.master #编辑主配置文件网络文件系统(samba,nfs,iscsi)

  3. 编辑策略文件 vim /etc/auto.cifs
    网络文件系统(samba,nfs,iscsi)

  4. 编辑主配置文件 vim /etc/autofs.conf网络文件系统(samba,nfs,iscsi)

  5. 重启服务,测试网络文件系统(samba,nfs,iscsi)

nfs

nfs基本信息

nfs-utils 安装包
nfs-server 服务脚本
/etc/exports 共享配置文件

nfs的启用

systemctl start nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
测试:网络文件系统(samba,nfs,iscsi)

nfs配置

vim /etc/exports 网络文件系统(samba,nfs,iscsi)exportfs -rv 使文件生效网络文件系统(samba,nfs,iscsi)

测试:网络文件系统(samba,nfs,iscsi)

nfs配置参数

anonuid=1000,anongid=1000 指定用户身份
sync 更改生成后同步数据到服务器
async 实时同步数据到服务器
rw 读写
ro 只读
no_root_squash root用户挂载不转换身份

autofs+nfs

基本配置和samba+nfs一样
策略文件:vim /etc/auto.cifs
网络文件系统(samba,nfs,iscsi)

iscsi

服务端配置:

  1. fdisk /dev/vdb #生成一个/dev/vdb1的分区
  2. dnf install targetcli -y #下载服务
  3. targetcli #进入一个运行环境
    网络文件系统(samba,nfs,iscsi)/backstores/block create westos_storage1 /dev/vdb1 #将磁盘分区/dev/vdb1变成网路磁盘网络文件系统(samba,nfs,iscsi)/iscsi create iqn.2020-09.com.westos:strage1 #创建一个iqn表达方式的链网络文件系统(samba,nfs,iscsi)/iscsi/iqn.2020-09.com.westos:strage1/tpg1/luns create /backstores/block/westos_storage1 #和网络磁盘联系起来网络文件系统(samba,nfs,iscsi)/iscsi/iqn.2020-09.com.westos:strage1/tpg1/acls create iqn.2020-09.com.westos:westoskey1 #创建key密码网络文件系统(samba,nfs,iscsi)

客户端配置

  1. dnf install iscsi-initiator-utils.x86_64 -y

  2. vim /etc/iscsi/initiatorname.iscsi #编辑认证文件
    网络文件系统(samba,nfs,iscsi)

  3. 重启服务

  4. iscsiadm -m discovery -t st -p 172.25.254.1

  5. iscsiadm -m node -T iqn.2020-09.com.westos:strage1 -p 172.25.254.1 -l
    网络文件系统(samba,nfs,iscsi)