signed

QiShunwang

“诚信为本、客户至上”

samba,nfs,iscsi网络文件系统

2021/3/21 1:26:55   来源:

目录

    • 一、实现windows系统的文件共享
    • 二、Linux中用samba服务实现共享
        • 1. samba服务基本信息和作用
        • 2.samba 的安装与启用
        • 自动挂载
        • 共享硬盘

一、实现windows系统的文件共享

  1. smb和cifs协议介绍
    smb (Server Message Block Sum)又称cifs(Common Internet File System)是一种应用层网络传输协议。可以使LINUX和Windows操作系统的SMB/CIFS网络协议做链接。smb是cifs是由 Miscrosoft在smb的基础上发展,扩展到Internet上的协议 。Windows系统共享文件时用到的协议是smb,在Linux主机上安装samba服务后可使用cifs协议

  2. 在windows系统中设置共享文件
    右击所要共享的文化夹选择属性,选择共享,高级共享可设置用户权限

  3. 在linux系统里访问windows的共享文件夹
    安装samba客户端软件: dnf install samba-client -y
    smbclient -L //172.25.254.254 -U 用户名(-L列出,-U制定用户)
    smbclient //172.25.254.254 -U 用户名 可直接访问共享文件夹里的内容
    可挂载:mount //172.25.254.254.isos /挂载目录

二、Linux中用samba服务实现共享

  • Linux中文件共享的意义: 实现存储分离

1. samba服务基本信息和作用

  • 作用:
    可提供CIFS协议。可将linux文件系统作为CIFS/SMB网络共享文件进行共享,并将linux打印机作为CIFS/SMB打印机共享进行共享信息互通。
  • 基本信息
    smb.service                    服务启动脚本
    /etc/samba                     主配置目录
    /etc/smb.conf                 主配置文件
    samba_share_t              安全上下文
    139 , 445                     端口号
    samba-client                   samba客户端安装包名称
    samba-common.noarch ,samba.x86_64                   samba服务端的两个安装包

2.samba 的安装与启用

  • getenforce ------ Enforcing 查看selinux的状态为开启
    dnf install samba.x86_64 samba-common.noarch samba-client -y 安装samba服务端和客户端服务。

  • 添加samba用户(samba用户必须是本地用户)
    在这里插入图片描述

  • 设置火墙策略和开启samba服务
    在这里插入图片描述
    登陆指定用户
    smbclient -L //172.25.254.125 -U lyx

访问家目录
getsebool -a | grep samba
setsebool -p samba_enable_home_dirs on
smbclient //172.25.254.125/lee -U lee

systemctl restart smb.service
重启服务

mount -o username=lee,passwd=1234 //172.25.254.125/WESTOS /mnt

semanage fcontext -a -t samba_share_t ‘westos(/.*)?’
restorecon -RvvF /westos ##刷新安全上下文

getsebool -a | grep samba

samba的访问控制

编辑文件
/etc/samba/smb.conf

全局白名单
hosts allow = 172.25.254.25
当该条命令出现在某个共享目录之下时,为局部白名单
全局黑名单
hosts deny = 172.25.254.25
当该条命令出现在某个共享目录之下时,为局部黑名单

限定用户登陆
valid users =lee ##只允许用户lee的身份进行登陆
命令的位置据决定了命令的范围

valid users =+lee

@ + 表示lee组的用户可以进行访问

挂载命令
mount -o username=lee,password=1234 //172.25.254.125/westos /media/

smaba 的常用配置参数
在配置文件中进行编写
/etc/samba/smb.conf
writable = yes ##可写
注:可以添加删除目录
write list = westos ##指定用户可写
write list = +westos ##指定用户组可写
write list = @westos
valid users = lee ##指定访问用户
valid users = +lee |@lee ##指定访问组
browseable= yes | no ##是否隐藏共享
browseable ##即改即生效

map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = lee ## 指定此共享的超级用户身份

###8.samba的多用户挂载 ###

在客户段如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务
然后重启服务
systemctl restart smb.service

服务端的操作:
打开共享目录的w权限

客户端:
目的:解决系统其他用户不通过samba认证,也可以访问已经挂载的目录
下载软件
dnf install cifs-utils -y

解决密码泄漏的问题

编辑文件
vim /etc/samba/smb.conf
文件内容 samba用户的账号和密码
username=lee
password=1234

修改文件权限 让只有root用户可以查看,保证密码的安全性
chmod 600 /root/smb_auth

这样的挂载其他是无法访问的,但是同样无法验证
mount //172.25.254.125/westos /media/ -o credentials=/root/smb_auth,multiuser

挂载之后:其他用户可以通过samba验证进行访问
mount //172.25.254.125/westos /media/ -o credentials=/root/smb_auth,multiuser,sec=ntlmssp

其他系统用户的身份进行访问
输入错误的密码之后,无法访问挂载目录的
cifscreds add -u lee 172.25.254.125
再次输入正确的密码,仍然是无法访问的
执行命令
目的:删除之前错误的访问记录
cifscreds clear -u lee 172.25.254.125
再次访问时,输入正确的密码,就能正常访问
cifscreds add -u lee 172.25.254.125

###NFS#####
Net File Eystem
dnf install nfs-utils -y
服务名称
nfs-service

安装相应的软件
dnf install nfs-utils -y
大多数的主机已经安装过该软件了
systemctl enable --now nfs-server
showmount -e 172.25.254.125 #此时本机是可以看见的

showmount -e 172.25.254.125
rpc mount export: RPC: Unable to receive; errno = No route to host

添加防火墙的服务列表
firewall-cmd --permanent --add-service=rpc-bind
success
firewall-cmd --permanent --add-service=mountd
success
firewall-cmd --permanent --add-service=nfs
nfs nfs3
firewall-cmd --permanent --add-service=nfs
nfs nfs3
firewall-cmd --permanent --add-service=nfs
success
重新加载防火墙
firewall-cmd --reload

显示防火墙的服务列表
firewall-cmd --list-all

编写文件
cat /etc/exports
/westos *(ro)
exportfs -rv ##刷新
exporting *:/westos

火墙取消某个服务nfs
firewall-cmd --permanent --remove-service=nfs

###nfs的配置参数 #####
当要查看内容时,需要进行挂载
mount 172.25.254.125:/westos /mnt

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

编写文件
/etc/exports
/westos *(rw)

刷新
exportfs -rv

自动挂载

客户端
下载软件
dnf install autofs -y

服务启动之后,会自动安装/net
root@westos_student25 ~]# ls -ld /net
ls: cannot access ‘/net’: No such file or directory
[root@westos_student25 ~]# systemctl enable --now autofs.service
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[root@westos_student25 ~]# ls -ld /net
drwxr-xr-x 2 root root 0 Feb 26 11:49 /net

vim /etc/autofs.conf
在客户端实现自动挂载卸载的软件
timeout = 5
systemctl restart autofs.service
cd /net/172.25.254.125/westos
##自动挂载

###autofs+samba ######
autofs:
在客户端自动挂载卸载的软件

配置方式
vim /etc/auto.master
最终挂载点的上层目录 自动以子策略文件
/mnt /etc/auto.samba

vim 自动以子策略文件 (/etc/auto.samba)
最终挂载点 挂载参数 挂载资源
samba -fstype=cifs,username=westos,password=lee ://172.25.254.20/westosdir

共享硬盘

服务端:
dnf install targetcli -y

systemctl enable --now target.service
进入编辑模式
targetcli
编辑
创建一个存储/设备
/backstores/block create westos_storage /dev/vdb1

/iscsi create iqn.2021-02.org.westos:storage

关联
/iscsi/iqn.2021-02.org.westos:storage/tpg1/luns
create /backstores/block create westos_storage

创建一个钥匙
/iscsi/iqn.2021-02.org.westos:storage/tpg1/acls create iqn.2021-02.org.westos:westoskey

火墙允许3260端口
firewall-cmd --permanent --add-port=3260/tcp
success
重启防火墙
firewall-cmd --reload

客户端
下载服务
dnf install iscsi-initiator-utils.x86_64 -y

/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-02.org.westos:westoskey
systemctl restart iscsid

iscsiadm -m discovery -t st -p 172.25.254.125

iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.125 -l

fdisk /dev/vdb
udevadm settle
mkfs.xfs /dev/vdb1
mount /dev/vdb1 /mnt

设备的删除

tree /var/lib/iscsi/

客户端的删除

查看认证文件,还存在
tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2021-02.org.westos:storage
│ └── 172.25.254.125,3260,1
│ └── default
├── send_targets
│ └── 172.25.254.125,3260
│ ├── iqn.2021-02.org.westos:storage,172.25.254.125,3260,1,default -> /var/lib/iscsi/nodes/iqn.2021-02.org.westos:storage/172.25.254.125,3260,1
│ └── st_config
├── slp
└── static

首先,先卸载
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.125 -u
但是认证仍然存在

删除认证文件
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.125 -o delete
tree /var/lib/iscsi
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
├── send_targets
│ └── 172.25.254.125,3260
│ └── st_config
├── slp
└── static

服务端:

targetcli
删除单个目录下的
iscsi/ 进入该目录
delete iqn.2021-02.org.westos:storage ##删除里面的文件
cd … 返回上级目录
clearconfig confirm=True
删除所有的配置

help ##直接查询帮助

四、samba服务的访问控制
五、samba中常用参数
六、samba客户端的多用户认证
七、nsf服务的安装及启用
八、nfs服务的基本共享方式
九、nfs配置中的常用参数
十、autofs自动挂载文件系统服务的部署
十一、iscsi磁盘共享服务的部署
十二、iscsi设备的删除