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基本信息
服务启动脚本 smb.service
主配置目录 /etc/samba
主配置文件 /etc/samba/samba.conf
安全上下文 samba_share_t
端口 139 445
安装包 samba samba-common
vim /etc/selinux/config
开启火墙!
重新配置网络
安装服务!
dnf install samba-common.noarch samba.x86_64 samba-client -y
先查看本地用户!
然后添加samba用户!必须是本地有的用户!
列出用户然后删掉lee用户!
开启smb服务
在火墙里面 添加smb服务
列出共享目录!
列出用户的共享目录!
然后把用户访问自己的家目录权限打开
因为selinux默认是拒绝的!
然后就可以访问用户的目录了!
samba服务共享目录
先创建目录然后建立文件!
然后备份服务配置文件
因为/mnt为系统文件,所以需要修改安全上下文!
然后更新!
配置文件里面编辑共享目录!
systemctl restart smb
##重启samba服务
利用本地用户列出共享目录!
查看/mnt的属性并访问共享目录!
然后把读写权限打开
samba的访问控制
hosts allow = 172.25.254.129
##当写到单独共享时只对此共享生效 host deny = 172.25.254.129
hosts deny = 172.25.254.129
##所有smb共享只有129主机不能访问
##黑名单
##重启服务
然后访问共享文件被拒绝!!
然后注释掉 在访问即可 访问成功! 记得重启服务
hosts allow = 172.25.254.129
##所有smb共享只能在129主机访问
##白名单
##重启服务
发现只有129可以访问!
对于局部的设置 添加在 每个文件配置下面!
若是在下面添加valid users = +lee 说明只允许用户lee查看共享目录!
samba的常用配置参数
writable = yes ##可写
chmod 777 /westos
systemctl restart smb.service
然后发现 可以在共享的时候 创建目录!
指定用户可写
write list = lee ##指定用户可写
vim /etc/samba/smb.conf
write list = lee
systemctl restart smb.service
会发现可以用户lee可以写,westos不可以!
然后挂载到 mnt下面 观察是否可写!
发现用户westos写的时候被拒绝了!
而lee用户在写的时候 是可以的!
是否隐藏共享
browseable = yes|no ##是否隐藏共享
vim /etc/samba/smb.conf
browseable = yes
systemctl restart smb.service
smbclient -L //172.25.254.129
首先不隐藏 可以发现是可以看到 全部目录的!
若是隐藏共享目录 如下!
发现 目录WESTOS不见了!
允许匿名用户访问
man to guest = bad user ##写到全局设定中
browseable = yes
guest ok = yes ##允许匿名用户访问
发现匿名用户可以直接挂载!
samba多用户挂载
首先将samba服务的配置该回去!
然后 查看目录westoss的权限!
挂载 权限变为 全部人可写
客户端出现问题:
未认证的用户(westos)可看远程samba服务器上的共享资源
行为不合理,出现用户访问漏洞
所以需要
安装samba认证的安全插件!
然后编写 之可写用户的文件!
然后以这个配置文件为挂载名
切换用户发现查看权力被拒绝
查看系统版本!
然后在服务器上认证用户westos可以查看!
然后发现可以 在用户westos下面 查看到共享挂载的文件了
然后创建一个目录
查看用户所有权发现是用户westos创建的文件
NFS
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
特点:
(1)提供透明文件访问以及文件传输;
(2)容易扩充新的资源或软件,不需要改变现有的工作环境;
(3) 高性能,可灵活配置。
nfs基本信息
Net File System
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件
nfs启用
服务端:
1.安装软件
dnf install nfs-utils -y
2.开启服务
systemctl enable --now nfs-server
3.连接服务
showmount -e 172.25.254.211
4.火墙rpc-bind设置
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent -add-service=nfs
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
5.删除mountd服务火墙设置
firewall-cmd --remove-service=mountd
nfs配置
vim /etc/exports
cat /etc/exports
exportfs -rv
showmount -e 172.25.254.211
firewall-cmd --list-all
客户端:测试!
systemctl stop firewalld
systemctl status firewalld
showmount -e 172.25.254.129
mount 172.25.254.211:/westos /media/
cd /media/
ls
然后把mountd服务 添加回来
nfs配置参数
anonuid=1000,anongid=1000 ##指定用户身份
sync ##更改生存后同步数据到服务器
async ##实时同步数据到服务器
rw ##读写
ro ##只读
no_root_squash ##root用户挂载不转换身份
服务端:
ll /westos
ls -ld /westos
vim /etc/exports
/westos *(ro,no_root_squash)
exportfs -rv
用root用户挂载不转换身份
然后再主机挂载之后建立文件 查看属性 ,文件所有人 所有组都是root!
更改用户所有人 所有组 为id1000! 然后建立文件
nfs+autofs
autofs:
在客户端实现自动挂载卸载的软件
客户端:
dnf install autofs -y
##安装软件autofs
cd /net/
systemctl enable --now autofs.service
cd /net/
ls -ld /net/
vim /etc/autofs.conf
##主配置文件
编写 进入mnt目录下 自动挂载的 文件夹名称为nfs
自动挂载 的内容为 /westoss下的东西!!!
切入目录下 会发现自动挂载!!
然后设置自动取消挂载 五妙!!
然后五秒后 自动取消 但是 需要注意 要从 mnt/nfs目录下 切出来 不然不能取消挂载
autofs+samba
autofs:
在客户端实现自动挂载卸载的软件
客户端:
vim /etc/auto.master
##主挂载策略文件
/net -hosts
/media /etc/auto.samba
##最终挂载点的上层目录 自动挂载子策略文件
##编写最终挂载点的上层目录
开启服务
测试:
cd /media/
cd samba
df
可以看到挂载成功!!
iscsi
iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准。与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:
把原来只用于本机的SCSI协议透过TCP/IP网络发送,使连接距离可作无限的地域延伸;
连接的服务器数量无限(原来的SCSI-3的上限是15);
由于是服务器架构,因此也可以实现在线扩容以至动态部署.
实验准备:
服务端
添加5GB大小的硬盘
服务端
划分设备分区
fdisk -l
fdisk /dev/vdb
同步分区表
udevadm settle
安装共享软件,开启服务(服务端)
dnf install targetcli -y
##共享设备使用权
systemctl status targetd
systemctl enable --now target.service
进入target设定
targetcli
ls
target共享
targetcli进入target设定!
/backstores/block create westos_storage /dev/vdb1
建立共享
/iscsi create iqn.2021-05.org.westos:storage
##年 月 域名反写 共享名
关联共享与设备
设定密码
/iscsi/iqn.2021-05.org.westos:storage/tpg1/acls create iqn.2021-05.org.westos:westoskey
ls
##查看效果
设定火墙
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload、
客户端
安装客户端软件
fdisk -y
dnf install iscsi-initiator-utils.x86_64 -y
编辑key,重启服务
vim /etc/iscsi/initiator
InitiatorName=iqn.2021-02.org.westos:westoskey
systemctl restart iscsid
查看共享设备
iscsiadm -m discovery -t st -p 172.25.254.129
认证共享设备
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.211 -l
##-T 目标设备名称
##-t 设备类型
##-p 设备所在ip
##-l 登陆
查看设备
fdisk -l
fdisk /dev/sdb
n 回车 回车 回车 回车 y p wq
udevadm settle
mkfs.xfs /dev/sdb1
成功挂载
mount /dev/sdb1 /mnt/
df
cd
df
服务开机时自动启动
systemctl status iscsid
systemctl enable --now iscsid.service
试验结束时候
客户端:
永久删除设备
umount /mnt
##卸载设备
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.211 -u
##-u 登出
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 172.25.254.211 -o delete
##删除设备
服务端:
不共享设备
ls
cd
help
/iscsi delete iqn.2021-02.org.westos:storage
##delete,设备删除
clearconfig confirm=True
##clearconfig,清空服务器上的所有设定
查看发现已经清空!!!