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

一、samba服务简介

1、smb协议

smb(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

2、ftp 服务 与 samba 服务对比

(1)ftp 的优缺点:
优点:文件传输、应用层协议、可跨平台
缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件

(2)Samba 的特性:
使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件

作用:
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun

Linux 系统用到的是cifs

CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文本传输协议和超文本传输协议的一个实现   

二、samba基本信息

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


 

由于/etc/samba/ samba.conf 中内容较少,配置文件不是很完整

所以cp smb.conf.example smb.conf 使配置文件完整

 

三、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 

测试:
smbclient  -L //172.25.254.101    ##当要输入root密码时请直接回车

三、samba用户的建立

1.samba用户必须是本地存在的用户
2.samba用户的建立

smbpasswd -a westos    ##添加用户
pdbedit -L        ##查看用户列表
pdbedit -x westos        ##删除用户

四、samba用户访问加目录

当selinux开启时:
setsebool  -P samba_enable_home_dirs on
(1)windows下:
\\172.25.254.20        ##访问
net use            ##查看访问记录
net use * /del        ##删除访问记录

(2)在linux下:
smbclient  //172.25.254.101/westos -U westos

验证:

五、samba服务共享目录

mkdir /westosdir
touch /westosdir/westosfile{1..5}
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
restorecon -RvvF /westosdir/
vim /etc/samba/smb.conf
systemctl restart smb

[westos_share]            ##共享名称
    comment = westos dir    ##共享说明
    path = /westosdir    ##共享路径

没有设置安全上下文的情况:

设置安全上下文之后情况:

 如果共享目录为系统目录:例如/mnt

[westos_share]
comment = westos dir
path = /mnt


因为系统文件不能随便给权限或者设置其安全上下文,所以需要开启下面这个服务samba_export_all_ro

getsebool -a | grep samba
setsebool -P samba_export_all_ro on

 验证:

六、samba的访问控制

hosts allow    172.25.254.1 172.25.254.        ##当写到单独共享时之对此共享生效
hosts deny                    ##当写到【GLOBAL】时对samba整体生效

测试:

 

七、samba的常用配置参数

writable = yes 可写
write list = lee指定用户可写
write list = +westos指定组可写
write list = @westos指定组可写
valid users = lee指定访问用户
valid users = +lee|@lee指定访问组
browseable = yes|no是否隐藏共享

 测试:(此时的测试可以将这个共享目录挂载之后进行写入)

vim /etc/samba/smb.conf
writable = yes		##可写
systemctl restart smb.server
chmod 777 /westosdir   为了方便实验,所以给这个目录777权限
mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt

 

vim /etc/samba/smb.conf
write list = lee   指定lee 可写
systemctl restart smb.service

 

usermod -G westos lee
vim /etc/samba/smb.conf
writ list = +westos  westos组可写
systemctl restart smb.service
mount -o username=lee,password=westos //172.25.254.101/westos_share /mnt
touch file1

vim /etc/samba/smb.conf
valid users = lee ##指定访问用户
systemctl restart smb.service
mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt
mount -o username=lee,password=westos //172.25.254.101/westos_share /mn

 

 

 指定访问组和上面一个道理,这里不进行测试

vim /etc/samba/smb.conf
browseable = yes|no	##是否隐藏共享
 systemctl restart smb.service
smbclient  -L //172.25.254.101

map to guest = bad user写到全局设定中(118行)
guest ok = yes  允许匿名用户访问
admin users = lee指定此共享的超级用户身份呢
vim /etc/samba/smb.conf
map to guest = bad user	##写到全局设定中(118)
guest ok = yes		##允许匿名用户访问
systemctl restart smb.service 
mount -o username=guest //172.25.254.101/westos_share /mnt

 

八、samba的多用户挂载

在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务

dnf install cifs-utils -y
vim /root/smbpass
username=westos
password=westos
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.101/westos_share /mnt

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

 

root@client ~]# su - westos
[westos@client ~]$ cd /mnt
[westos@client mnt]$ ls              ##客户端主机的westos用户没有通过认证
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ ls
ls: cannot open directory '.': Permission denied
[westos@client mnt]$ cifscreds add  -u westos    172.25.254.101
Password:

[westos@client mnt]$ ls    ##通过认证可以显示
file1  file2  file3

[westos@test /]$ cifscreds add  -u lee   172.25.254.101
Key search failed: Key has expired    ##当遇到此报错信息

[westos@test /]$ cifscreds add  -u lee   -d 172.25.254.101
Password:
[westos@test ~]$ cifscreds clearall    ##执行以上两条命令解决报错

autofs+samba

autofs:在客户端实现自动挂载卸载的软件
下载:dnf install autofs.x86_64
配置方式:
vim /etc/auto.master
最终挂载点的上层目录    自动以子策略文件
/mnt            /etc/auto.samba

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

systemctl restart autofs

测试:
cd /mnt/samba
df
cd /root
等待资源闲置超时    ##默认300秒 vim /etc/autofs.conf ---->Timeout=3
df
挂载资源自动卸载

 

NFS

Net File System

NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

工作原理:

NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。

特点:

(1)提供透明文件访问以及文件传输;

(2)容易扩充新的资源或软件,不需要改变现有的工作环境;

(3) 高性能,可灵活配置。

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

测试:

[root@server ~]# showmount -e 172.25.254.101
Export list for 172.25.254.101:

nfs配置

vim /etc/exports        ##此文件更改后生效exportfs -rv

共享目录        共享给谁(共享参数)

/westosdir        *(ro)

 测试:

nfs配置参数

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

 测试:

mount 172.25.254.101:/westosdir  /mnt/

 

nfs+autofs

参看autofs.samba章节内容

vim /etc/auto.master
/mnt    auto.nfs
vim /etc/auto.nfs
nfs    172.25.254.101:/westosdir
systemctl restart autofs.service 
cd /mnt/nfs
df

测试:

iscsi

iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:

  1. 把原来只用于本机的SCSI协议透过TCP/IP网络发送,使连接距离可作无限的地域延伸;

  2. 连接的服务器数量无限(原来的SCSI-3的上限是15);

  3. 由于是服务器架构,因此也可以实现在线扩容以至动态部署.

功能:

iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。

iSCSI使用 TCP/IP 协议(一般使用TCP端口860和3260)。 本质上,iSCSI 让两个主机通过 IP 网络相互协商然后交换SCSI命令。这样一来,iSCSI 就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些 SAN 协议,iSCSI 不需要专用的电缆;它可以在已有的交换和 IP 基础架构上运行。然而,如果不使用专用的网络或者子网( LAN 或者 VLAN ),iSCSI SAN 的部署性能可能会严重下降。于是,iSCSI 常常被认为是光纤通道(Fiber Channel)的一个低成本替代方法,而光纤通道是需要专用的基础架构的。但是,基于以太网的光纤通道(FCoE)则不需要专用的基础架构。
 

1.fdisk /dev/vdb -------> /dev/vdb1

2.dnf install targetcli  -y
iscsi_server  #服务端配置
targetcli   #进入运行环境
/> /backstores/block create westos_storage1 /dev/vdb1   #将/dev/vdb变成网络磁盘
/> /iscsi create iqn.2020-08.com.westos:storage1   #创建一个人iqn 的表达方式的链
/> /iscsi/iqn.2020-08.com.westos:strage1/tpg1/luns create /backstores/block/westos_storage1    #将网络磁盘和链联系起来
/> /iscsi/iqn.2020-08.com.westos:strage1/tpg1/acls create iqn.2020-08.com.westos:westoskey1    #创建key 密码
/> exit  #退出保存

 

iscsi_client   #客户端

dnf install iscsi-initiator-utils.x86_64 -y  

vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-08.com.westos:westoskey1     <----  key check

systemctl restart iscsid

iscsiadm -m discovery -t st -p 172.25.254.101
iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -l   ---> /dev/sda

fdisk   /dev/sda   ---> /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1    /mnt

iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -u删除/dev/sda
iscsiadm  -m node -T iqn.2020-08.com.westos:strage1 -p 172.25.254.101 -o delete 删除树文件

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Samba 是一个开源软件套件,它允许 Linux 和 UNIX 系统与 Windows 操作系统之间共享文件和打印机。Samba 通过实现 SMB/CIFS 协议,使得 Windows 客户端能够访问 Linux/UNIX 系统上的共享资源。 使用 Samba 文件共享系统,你可以在局域网内轻松地共享文件和打印机。以下是一些关于 Samba 的重要知识点: 1. 安装和配置:你需要在 Linux/UNIX 系统上安装 Samba 软件包,并进行相应的配置。配置文件一般为 /etc/samba/smb.conf,你可以在其中定义共享的文件夹和权限设置。 2. 共享文件夹:通过 Samba,你可以将指定的文件夹设置为共享文件夹,并控制对该文件夹的访问权限。你可以设置只读或读写权限,并可以限制特定用户或用户组的访问。 3. 认证和权限控制:Samba 支持多种认证方式,包括本地用户、LDAP、Active Directory 等。你可以根据需要配置不同的认证方式,并设置相应的用户权限。 4. 客户端访问:在 Windows 客户端上,你可以使用资源管理器或运行命令来访问 Samba 共享的文件夹。你需要输入正确的网络路径或 IP 地址,并进行身份验证(如果需要)。 5. 打印机共享:除了文件共享,Samba 还支持打印机共享。你可以将打印机设置为共享,并允许 Windows 客户端连接并使用打印机。 通过 Samba 文件共享系统,你可以方便地实现 Linux/UNIX 系统与 Windows 客户端之间的文件共享和打印机共享。它是一个功能强大且广泛使用的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值