目录
———————实验环境
两台全新虚拟机,一台ID 123(服务器) 一台ID 223(客户端),并且配置好软件仓库
一.samba简介 :
1.samba服务简介 :
作用:
smb = Server Message Block Sum
cifs = Common Internet File System Miscrosoft
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
linux cifs
2.samb基本信息
服务启动脚本
smb.service
主配置目录 : /etc/samba
主配置文件 : /etc/smb.conf
安全上下文 : samba_share_t
端口 : 139 445
安装包 : samba samba-common samba-client.x86_64(实验所需)
二.samb的安装和启用 :
在服务器中:服务器ID是123
1.dnf search samba
2.dnf install samba samba-common.noarch samba-client.x86_64 -y
3.systemctl enable --now smb.service
4.firewall-cmd --permanent --add-service=samba
5.firewall-cmd --reload
6.smbclient -L //172.25.254.123 ##没有密码直接敲回车
[root@123 ~]# smbclient -L //172.25.254.123
Enter SAMBA\root's password:
Anonymous login successfulSharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.11.2)
SMB1 disabled -- no workgroup available
三.samba 用户添加
tips: samba 必须是本机存在的用户
1.samba 用户添加
smbpasswd -a westos ##用户westos存在,并且smb密码是独立的密码和westos登录系统密码无关
smbpasswd -a lee ##lee用户不存在
Failed to add entry for user lee. ##报错
useradd -s /sbin/nologin lee -M ##创建lee用户
smbpasswd -a lee ##samba添加lee用户
pdbedit -L ##表示查看smb用户
pdbedit -x lee ##删除smblee用户
smbclient -L //172.25.254.123 -U westos ##查看smb中westos用户共享资源
smbclient //172.25.254.123/westos -U westos ##查看smb中westos用户共享资源中的westos内容
Enter SAMBA\westos's password:
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* ##成功了但是受到了selinux影响,不能浏览自己的家目录tips:如果解析较慢,在/etc/resolv.conf中写入 ip及其 hostname
2.家目录共享访问
cd /etc/samba/
ls
lmhosts smb.conf smb.conf.example ##smb.conf/smb服务的主配置文件 smb.conf.example/smb服务配置文件模板
cp smb.conf.example smb.conf -p ##重新生成配置文件
smbclient -L //172.25.254.123 -U westos
smbclient //172.25.254.123/westos -U westos ##可以进入但是查看不到家目录
vim /etc/samba/smb.conf
setsebool -P samba_enable_home_dirs on ##调整selinux中的smb波尔指使用户可以访问家目录
smbclient //172.25.254.123/westos -U westos
ls就可以茶看到家目录
3.自创文件共享访问
mkdir /westos_share
ls -ld /westos_share/
vim /etc/samba/smb.conf
[westos_share] ##共享名称
comment= westos share ##共享说明
path = /westos_share ##指定共享的本地目录
systemctl restart smb.service
smbclient -L //172.25.254.123 -U westos
有westos_share代表共享成功
touch /westos_share/westosfile{1..3}
smbclient //172.25.254.123/westos_share -U westos
会报错,因为selinux限制 NT_STATUS_ACCESS_DENIED listing \*
vim /etc/samba/smb.conf
semanage fcontext -a -t samba_share_t '/westos_share(/.*)?' ##复制并且修改它的安全上下文
restorecon -RvvF /westos_share/ ##立即刷新
smbclient //172.25.254.123/westos_share -U westos 再次进入就可以查看westos_share中创建的文件
4. 系统级别目录共享访问 :
vim /etc/samba/smb.conf
[etc]
comment= etc dir
path = /etc
systemctl restart smb.servicesmbclient -L //172.25.254.123 -U westos
有etc代表分享成功
如果分享不成功,getsebool -a | grep samba
开启 samba_export_all_ro --> off
samba_export_all_rw --> off
四. samba 的配置 :
1.全局共享 :
vim /etc/samba/smb.conf ##91行左右,注释需要用;不是#
hosts Deny = 172.25.254.223
2.指定共享,最后补充
vim /etc/samba/smb.conf
[westos_share] ##共享名称
comment= westos share ##共享说明
path = /westos_share ##指定共享的本地目录
hosts allow = 172.25.254.223
3.隐藏共享资源
[westos_share]
comment= westos share
path = /westos_share
browseable = no ##隐藏共享资源
4. 指定登陆用户
[westos_share]
comment= westos share
path = /westos_share
valid users = westos ##只能通过westos登陆
如果设定为 valid users = @|+westos 表示指定westos组以及组成员都可以连接这个目录,用@或者+均可,且保证lee用户也是samba用户
5.全局读写 :
服务器: ls -ld /westos_share/
chmod 777 /westos_share/
客户端 : mount //172.25.254.123/westos_share /mnt/ -o username=lee,password=westos
df
客户端: vim /etc/samba/smb.conf
[westos_share]
comment= westos share
path = /westos_share
writable = yes ##westos_share以读写的方式共享
6.指定读写 :
vim /etc/samba/smb.conf
[westos_share]
comment= westos share
path = /westos_share
write list = lee ##此目录只对与lee用户可写
vim /etc/samba/smb.conf
comment= westos share
path = /westos_share
write list = @lee ##此目录只对与lee用户组以及组成员可写usermod -G lee westos ##设定westos被添加到lee组中
7.匿名访问 :
客户端 :smbclient //172.25.254.123/westos_share 访问被拒绝
服务器 :vim /etc/samba/smb.conf
119行加 :map to guest = bad user ##吧没有用户身份的用户映射为guest账号
最后加: guest ok = yes ##此目录允许guest用户访问
客户端: smbclient //172.25.254.123/westos_share ##直接回车不需要输入密码,
mount //172.25.254.123/westos_share /mnt/ -o username=guest ##匿名用户的资源挂载
五.客户端自动挂载和卸载 :
在客户端中 :更加的节省资源,在你cd到该目录的时候,系统自动挂载可以访问的目录,不用的时候又自动卸载,非常好用
umount /mnt
dnf install autofs -y
vim /etc/auto.master
/westos /etc/auto.share ##最终挂载目录的上层目录 子挂载文件,名称自定义,并且在系统中默认不存在
vim /etc/auto.share
samba -fstype=cifs,username=westos,password=westos ://172.25.254.123/westos_share
vim /etc/autofs.conf ##autofs的配置文件
15 timeout = 5 ##自动卸载时间
systemctl restart autofs.service
df没有挂载
cd /westos/samba
df挂载完成
然后cd出来,过五妙,df显示挂载消失
![]()

![]()
![]()
![]()

六.samba多用户挂载 :
客户端 :root用户手动挂载了,可以看到自己挂载目录中的东西,但是切换到westos中,依然可以查看目录中的文件,不安全
mount //172.25.254.123/westos_share /mnt -o username=lee,password=westos
ls /mnt/
su - westos
ls /mnt/当我们切换到westos用户后,依然可以看见root用户在mnt目录中挂载的资源
dnf install cifs-utils -y
man mount.cifs ##查看安全插件的用法
vim /root/smbpass ##当用户挂载smb资源时书写账号密码可以直接被history看到,所以我们写到文件中并设定权限
username=lee
password=westos
chmod 600 /root/smbpass
umount /mnt
mount -o credentials=/root/smbpass //172.25.254.123/westos_share /mnt/ ##用此参数指定密码文件后密码被隐藏起来
mount -o credentials=/root/smbpass,multiuser //172.25.254.123/westos_share /mnt/ ##多用户认证参数,没有认证的用户不可使用smb上的资源
su - westos
ls /mnt ##没有查看的权限
mount -o credentials=/root/smbpass,multiuser,sec=ntlmssp //172.25.254.123/westos_share /mnt/ ##用户使用到的认证方式
su - westos
ls /mnt
ls: cannot access '/mnt': Permission denied
cifscreds '--help'
cifscreds add -u westos 172.25.254.123
密码输入错误时: cifscreds clearall
cifscreds add -u westos 172.25.254.123
输入正确密码
ls /mnt

tips : sec=ntlmssp ##用户使用到的认证方式
multiuser ##多用户认证参数,当挂载时添加此参数,没有通过认证的用户不可以使用smb上的资源
credentials=/root/smbpass ##用此参数指定密码文件后密码被隐藏起来
七.nfs
一.nfs基本信息:
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件
二.nfs的启用 : ##端口 2049
服务器: dnf install nfs-utils.x86_64 -y ##客户端和服务端同一个安装包
systemctl enable --now nfs-server.service
netstat -antlupe | grep 2049
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload


客户端: dnf install nfs-utils.x86_64 -y
systemctl enable --now nfs-server.service
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
showmount -e 172.25.254.123 ##列出nfs服务器中的共享资源

八.nfs共享目录权限 :
服务器: mkdir /westosdir
ls -ld /westosdir/
chmod 777 /westosdir/ #给予共享目录满权限依旧不可以写
vim /etc/exports ##共享策略文件
/westosdir *(ro,sync) ##sync(没有wq保存不共享,)async(在客户端编写文件即使写了wq没保存也共享,实施同步)
exportfs -rv



客户端 showmount -e 172.25.254.123就可以看见共享的文件 /westosdir
mount 172.25.254.123:/westosdir /mnt/

![]()
服务器 touch /westosdir/lq{1..3}
man 5 exports ##可以查看共享策略文件的书写参数和书写方式
客户端 ls /mnt/ 可以看到服务器中创建的文件
![]()
![]()
————————
服务器 vim /etc/exports
/westosdir *(ro,sync)
/westosdir 172.25.254.223(rw,sync) ##对除223意外的主机只读共享,对223主机读写共享
exportfs -rv客户端 223客户端mount 172.25.254.123:/westosdir /mnt/然后在mnt中创文件可以
23客户端mount 172.25.254.123:/westosdir /mnt/在mnt中创文件被拒绝




————————
服务器 ls -l /westosdir/ 可以看到当客户端挂载共享本地目录后,使用到的用户身份是服务器上的nobody
vim /etc/exports
/westosdir *(ro,sync) 172.25.254.223(rw,sync,anonuid=1000,anongid=1000) ##指定客户端在挂载时使用的用户为1000,不是默认的nobody
exportfs -rv
然后在客户端创建个文件,这里显示就是westos用户和组


————————
vim /etc/exports
/westosdir *(ro,sync) 172.25.254.223(rw,sync,no_root_squash) ##当客户端使用超级用户进行nfs资源挂载后沿用自己root身份到服务器中
exportfs -rv
然后在客户端用root身份进行挂载,mount 172.25.254.123:/westosdir /mnt/,在创建文件服务器上看见的就是root身份


九.客户端自动挂载和卸载
客户端
dnf install autofs -y
vim /etc/auto.master
9 /westos /etc/auto.nfs #注释掉smb的,挂载点的上层目录和挂载点
vim /etc/auto.nfs ##编辑子策略文件,默认不存在,自己创建,
nfs -rw 172.25.254.123:/westosdir ##最终挂载路径 挂载参数 nfs服务器上共享出来的资源
systemctl restart autofs.service
cd /westos/nfs
df 就自动挂载了


![]()

十: iscsi 分区共享:
服务器中:
添加一块新的硬盘, 5G ,Disk device VirtlO
fdisk -l
fdisk /dev/vdc
创建一个2G大小的分区
dnf install targetcli -y ##共享策略管理软件
systemctl enable --now target
targetcli ##用此命令编写共享策略
ls可查看,蓝色为目录,紫色为目录中的命令
/> /backstores/block create westos:storage1 /dev/vdc1 ##westos:storage1在此设备中设备的别名 /dev/vdc1系统中真实存在的设备
/> /iscsi create iqn.2021-08.org.westos:storage1 ##建立对外共享名称,iqn的命名方式,iscsi限定名称,格式 iqn.YYYY-MMM.域名反写.别名
/> /iscsi/iqn.2021-08.org.westos:storage1/tpg1/luns create /backstores/block/westos:storage1 ##把共享名称和内部指定设备关联
/> iscsi/iqn.2021-08.org.westos:storage1/tpg1/acls create iqn.2021-08.org.westos:westoskey ##未共享设备设定访问key , key本是加密字符,实验方便用westoskey





客户端中:
dnf search iscsi
dnf install iscsi-initiator-utils.x86_64 -y ##客户端软件
systemctl status iscsid ##对客户端配置控制服务
iscsiadm -m discovery -t st -p 172.25.254.123 ##m:mode -t 指定要识别的设备理性 -p 指定资源主机ip
连接123服务失败,因为123的火墙



服务器中:
firewall-cmd --permanent --add-port=3260/tcp ##开服务的端口让客户端可以访问
firewall-cmd --reload

客户端中:
iscsiadm -m discovery -t st -p 172.25.254.123
172.25.254.123:3260,1 iqn.2021-08.org.westos:storage1
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.123 -l ## -T 指定要访问的共享设备名称 -l登陆共享设备
因为在客户端中未指定服务器段的共享key所以无法登陆
![]()

vim /etc/iscsi/initiatorname.iscsi ##再次文件中指定共享key
InitiatorName=iqn.2021-08.org.westos:westoskey
systemctl restart iscsid.service
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.123 -l
Logging in to [iface: default, target: iqn.2021-08.org.westos:storage1, portal: 172.25.254.123,3260]
Login to [iface: default, target: iqn.2021-08.org.westos:storage1, portal: 172.25.254.123,3260] successful.
成功登陆,然后fdisk -l 可以看到在客户端这个单硬盘的电脑也有两块硬盘,另一块硬盘就来自于服务器的/dev/vdc1
fdisk /dev/sda
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt/
![]()



十一.iscsi永久自动挂载 :
客户端中 :
blkid ##查看设备id,因为网络通信的原因,可能主机名称变化,因此挂载用设备id挂载
vim /etc/fstab
UUID=859a6c37-707e-4fa4-91b9-f22530460295 /mnt xfs defaults,_netdev 0 0



十二.iscsi共享设备的删除 :
在客户端卸载设备:
vim /etc/fstab ##删除网络设备的自动挂载信息
umount /mnt
tree /var/lib/iscsi/ ##在客户端读取道德服务器的所有数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.123 -u ##-u表示退出登陆
fdisk -l发现设备不见了,但是数据还在,systemctl restart iscsi之后fdisk -l设备又回来了
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.123 -u
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.123 -o delete ##删除客户端主机中此网络设备数据
tree /var/lib/iscsi/
fdisk -l



服务器中:
targetcli
ls
输入clearconfig confirm=True ##清空服务器中iscsi的共享数据
exit退出


















































mount -o credentials=/root/smbpass,multiuser //172.25.254.123/westos_share /mnt/ ##多用户认证参数,没有认证的用户不可使用smb上的资源
1756

被折叠的 条评论
为什么被折叠?



