目录
Samba服务
1.sambia服务简介
2.samba基本信息
3.samba的安装与启用
4.samba中添加用户
5.samba用户访问
6.samba服务共享目录
#目录的访问
#目录建立
#系统级目录
7.samba的访问控制
全局访问控制:
单个目录访问控制及配置参数:
8.匿名用户登录
9.autofs+samba
实验:
配置方式:
10.多用户认证
问题提出
解决
nfs服务
1.nfs服务的启用及测试
2.nfs配置
3.nfs配置参数
不指定用户参数:显示为nobody
指定用户为1000,组为1000:显示为westos
指定root用户挂载不转换身份:显示为root
4.nfs+autofs自动挂载
5.iscsi
服务器端:
客户端:
6.永久挂载和删除设备?
?永久挂载:
?删除设备:
Samba服务
1.sambia服务简介
作用: smb = Server Message Block?? ?Sum cifs = Common Internet File System Miscrosoft windows系统文件共享是甬道的协议smb smb是由miscrosoft+sun Linux cifs
2.samba基本信息
服务启动脚本:?? ?smb.service 主配置目录:?? ?/etc/samba/ 主配置文件:?? ?/etc/samba/smb.conf 安全上下文:?? ?samb_share_t 端口:?? ??? ?139?? ?445 安装包:?? ?samba?? ?samba-common.noarch?? ?samba-client.x86_64 ?? ??? ?????????服务主体?? ?????????配置文件?????????????????? ??? ?客户端
3.samba的安装与启用
samba的安装: dnf install samba samba-common.noarch samba-client.x86_64 -y 启用:enable 火墙添加: firewall-cmd --permanent --add-service=samba
smbclient -L //172.25.254.120
hostnamectl:查看系统版本
4.samba中添加用户
smbpassqd -a westos?? ?westos用户必须在smba服务器中真实存在,smb密码是独立的密码,与westos登陆密码无关 smbpasswd -a lee?? ?当lee用户不存在时显示添加失败
(vim /etc/hosts?? ?172.25.254.120 westosa_storage.westos.org?? ?添加本地解析,使访问更快)
5.samba用户访问
pdbedit?? ?-L?? ?查看smb用户 ?? ?-x?? ?删除smb用户
smbclient -L //172.25.254.120 -U westos?? ??? ?登录westos smbclient //172.25.254.120/westos -U westos?? ?//ip/共享文件夹?? ?-U登录用户 Enter SAMBA\westos's password: Try "help" to get a list of possible commands. smb: \> ls NT_STATUS_ACCESS_DENIED listing \*?? ?selinux影响,smb用户不能访问自己的家目录,需要打开该权限?? ?(在配置文件中有说明 27行)
6.samba服务共享目录
cd /etc/samba/ cp smb.conf.example smb.conf -p?? ??? ?用配置文件模板覆盖主配置文件
#目录的访问
setsebool -P samba_enable_home_dirs on?? ?调整selinux中的smb波尔直,使用户可以访问家目录
#目录建立
mkdir westos_share touch /westos_share/file{1..3}
vim /etc/samba/smb.conf [westos_share]?? ??? ?共享名称 comment = westos share?? ?说明 path = /westos_share?? ?制定共享的路径
systemctl restart smb.service?? ??? ?重启服务 smbclient -L /172.25.254.120 -U westos?? ?查看显示共享成功 smbclient //172.25.254.120/westos_share -U westos?? ?当查看文件时又出现selinux报错
查看配置文件30行提示:用户自己建立的目录如需通过smb共享,则需要指定安全上下文samba_share_t semanage fcontext -a -t samba_share_t '/westos_share(/.*)?' restorecon -RvvF /westos_share/
#系统级目录
直接在配置文件中添加 [etc] comment = 系统说明 path = /etc smbclient -L /172.25.254.120 -U westos?? ?查看显示共享成功 ?? ??? ??? ??? ??? ?但当查看文件会出现不同的错误情况 ?? ??? ??? ??? ??? ?查看配置文件根据44行提示设置 getsebool -a |grep samba samba_export_all_ro --> off?? ?设为on 时 selinux将不再对samba服务访问文件时的安全上下文进行限制 samba_export_all_rw --> off?? ?写限制
setsebool -P samba_export_all_ro on?? ?设置开启
7.samba的访问控制
全局访问控制:
91行 hosts allow = 172.25.254.120?? ?#只允许120号主机访问当前samba服务器hosts deny 表示拒绝(此处设定的是全局访问控制,影响本台smb服务的所有共享)
单个目录访问控制及配置参数:
[westos_share] comment = westos share path = /westos_share hosts allow = 172.25.254.120?? ?#在最后添加表示westos_share 这个共享目录被限制只能被120号主机访问(针对单个目录生效) browseable = no?? ??? ??? ?#在列出共享资源列表时隐藏共享目录(yes表示显示此目录) valid users = westos?? ??? ?#此共享只能通过samba用户westos登录 valid users = @westos?? ??? ?# @ 或 + 表示westos组成员可以访问此共享资源目录 writable = yes?? ??? ??? ?#可写 write list = westos?? ??? ?#对westos用户可写 write list = +westos?? ??? ?# + 或 @ 表示对westos组成员可写
mount //172.25.254.120/westos_share /mnt/ -o username=westos,password=westos???????? 将westos_share 挂载到/mnt/下,之后建立的文件将自动归属到该共享目录中
chmod 777 /mnt/??????? ?? #给其读写等权限
touch /mnt/file??????? ?????? #用该方法可以测试该共享目录的写权力是否开放。
8.匿名用户登录
默认情况下匿名用户不能使用samba资源 smbclient //172.25.254.120/westos_share?? ?报错"tree connect failed: NT_STATUS_ACCESS_DENIED"
119行 map to guest = bad user #将没有身份的用户映射为guest账号
[westos_share]
guest ok = yes #此共享目录允许guest用户登录
smbclient //172.25.254.120/westos_share?? ?#没有指定用户登陆成功,为guest匿名登录方式,此处不需要密码,直接回车,可以正常显示。 mount //172.25.254.120/westos_share /mnt/ -o username=guest?? ?#指定为匿名用户挂载
9.autofs+samba
实验:
mount //172.25.254.120/westos_share /westos/samba/ (目的)
在客户端下载dnf install autofs -y 设定使用时自动挂载,不用时自动卸载
配置方式:
vim /etc/auto.master?? ??? ?#编写配置文件 /westos /etc/auto.share /westos?? ?最终挂载点的上层目录 /etc/auto.share?? ?子挂载策略文件,名称自定义,且在系统中默认不存在 vim /etc/auto.share samba?? ??? ?-fstype=cifs,username=westos,password=westos?? ?://172.25.254.120/westos_share 最终挂载点的相对路径?? ?挂载参数?? ??? ??? ??? ?挂载服务器ip及资源 ?? ??? ??? ?-fstype 挂载资源的文件系统类型
vim /etc/autofs.conf?? ?配置文件 timeout = 5?? ?挂载资源在5秒以上无任何程序使用则自动卸载(默认时间为300秒) systemctl restart autofs.service
10.多用户认证
问题提出
>root挂载在/mnt/中的共享资源也能被普通用户查看,出现越级漏洞 >用户挂载时要书写账号/密码,可以被查看
解决
dnf install cifs-utils -y?? ?安装多用户插件
vim /root/smbpasswd?? ?将账户密码写入文件并设定安全权限 username=westos?? ??? ? password=westos chmod 600 /root/smbpasswd
mount -o credentials=/root/smbpasswd,multiuser,sec=ntlmssp //172.25.254.120/westos_share /mnt/ ?? ?credentials?? ?参数指定密码文件后密码被隐藏 ?? ?multiuser?? ?多用户认证参数,没有通过认证的用户不可以使用smb上的资源 ?? ?sec=ntlmssp?? ?用户使用到的认证方式
su - westos ls /mnt/?? ?报错 cifscreds --help cifscreds add -u westos 172.25.254.120?? ?此处如果输错密码也能登进,但仍被禁用 cifscreds clearall?? ?删除所有后重新添加 ls /mnt/?? ?可以正常显示
nfs服务
1.nfs服务的启用及测试
dnf install nfs-utils.x86_64 -y?? ??? ?电脑中已安装好 systemctl enable --now nfs-server.service 2049?? ?nfs 的端口 less /etc/services?? ??? ??? ?查看所有在etc下服务的端口 netstat -antlupe? | grep 2049?? ??? ?查看端口
nfs的启用:
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
客户端测试:
[root@westosb ~]# showmount -e 172.25.254.120 列出nfs服务器中的共享资源
Export list for 172.25.254.120:
2.nfs配置
vim /etc/exports 共享策略文件
/westosdir *(ro,sync) 172.25.254.220(rw,sync,no_root_squash)
共享目录 共享参数
exportfs -rv 使共享策略文件生效
3.nfs配置参数
sync 更改成功后同步数据
async 时时同步(更准确,但更占资源)
rw 读写
ro 只读
no_root_squash root用户挂载不转换身份
anonuid=1000,anongid=1000 指定挂载时使用用户为1000,不是默认的nobody
测试: 在服务器上 创建要共享的目录/westosdir 并给她777权限
编写共享策略文件 参数自定
使共享策略文件生效
在客户端 挂载/westosdir 到 /mnt
mount 172.25.254.120:/westosdir /mnt/
新建/mnt/file文件<F2>
ls -lR /mnt查看新建文件的信息
不指定用户参数:显示为nobody
指定用户为1000,组为1000:显示为westos
?
指定root用户挂载不转换身份:显示为root
?
4.nfs+autofs自动挂载
参看上一节autofs内容
dnf install autofs -y 安装服务
vim /etc/auto.master 主配置文件
/westos /etc/auto.nfs
/westos 最终挂载点的上层目录
/etc/auto.nfs 子挂载策略文件,名称自定义,且在系统中默认不存在
vim /etc/auto.nfs
nfs 172.25.254.120:/westosdir
最终挂载点的相对路径 挂载服务器ip及资源
vim /etc/autofs.conf
timeout = 5 5秒自动刷新
注意:当配置文件中写有两个相同的上级挂载目录时,须将另一个注释掉,否则会有冲突
5.iscsi
服务器加一块硬盘5GB fdisk -l?? ?查看硬盘信息 fdisk /dev/vdb?? ?---> /dev/vdb1 +2GB
?
服务器端:
dnf install targetcli -y 安装服务
targetcli
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]
/> /backstores/block create westos:storage1 /dev/vdb1
软件中设备的别名 /dev/vdb1系统中真实的设备
/> /iscsi create iqn.2021-08.org.westos:storage1
建立对外的共享名称,iqn的命名方式
iscsi限定名称 格式iqn.YYYY-MM.域名反写:别名
/> /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(此处用westoskey代替实验效果,真实情况下需要用命令生成key)加密字符
/> exit
firewall-cmd --permanent --add-port=3260/tcp 开放服务的端口让客户端可以访问
firewall-cmd --reload
ls显示:蓝色的为目录,紫色的为目录中的命令
设置完成后效果如下:
客户端:
dnf search iscsi
dnf install iscsi-initiator-utils.x86_64 -y 客户端软件
systemctl status iscsid 对客户端配置控制服务
systemctl status iscsi 客户端对于资源利用的服务
实验:
iscsiadm -m discovery -t st -p 172.25.254.120 在服务器未设置火墙的情况下连接失败
-m:mode
-t:指定要识别的设备类型
-p:指定资源ip
设置火墙后显示连接成功,共享信息可以查询:
172.25.254.120:3260,1 iqn.2021-08.org.westos:storage1
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -l
-T:指定要访问的共享设备名
-l:登录共享设备
因为在客户端没指定服务端的共享key,所以无法登录
设置: vim /etc/iscsi/initiatorname.iscsi 在此文件中指定共享key
InitiatorName=iqn.2021-08.org.westos:westoskey
fdisk -l 正常登录后可以查看到服务器的共享硬盘
fdisk /dev/sda
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt/
?
?
6.永久挂载和删除设备?
?永久挂载:
[root@westosb ~]# blkid #查看设备信息,因为网络设备名称因为通信缘故可能会发生变化,所以推荐使用设备id进行设备挂载指定
/dev/vda1: UUID="5640a252-d218-4377-917b-f7857918682a" TYPE="xfs" PARTUUID="34fd8722-01"
/dev/vda2: UUID="e79a5f1b-345e-4f76-be18-3f0a069fc81c" TYPE="swap" PARTUUID="34fd8722-02"
/dev/vda3: UUID="62f69d75-abe0-4c6b-a59c-dd69b6f80965" TYPE="xfs" PARTUUID="34fd8722-03"
/dev/sda1: UUID="a567741a-c336-4cdf-b462-a94b8349706e" TYPE="xfs" PARTUUID="f623607b-01"
vim /etc/fstab 编写开机自动挂载命令
UUID=a567741a-c336-4cdf-b462-a94b8349706e /mnt xfs defaults,_netdev 0 0
--此处若不加 _netdev 参数,系统启动会报错
(网络设备必须在网络和iscsi服务启动后才能识别,/etc/fstab文件的挂载是优选的,会导致系统启动失败)
解决:在启动报错界面输入超级用户密码,编写策略文件,添加_netdev 参数
_netdev 参数:指定此设备在挂载时先启动网络和iscsi服务后在生效
?删除设备:
客户端
vim /etc/fstab 删除网络设备自动挂载信息
umount /mnt 卸载设备
tree /var/lib/iscsi/ 在客户端读取到的服务器所有的数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -u 退出登录(仅退出登录,设备消失但数据还在,重启服务后设备会再次出现)
iscsiadm -m node -T iqn.2021-08.org.westos:storage1 -p 172.25.254.120 -o delete 删除客户端中此网络设备识别的数据
systemctl restart iscsi 重启服务
fdisk -l 查看设备
服务器
targetcli
/> clearconfig confirm=True 清空服务器中iscsi的共享数据
/>ls 查看数据显示恢复到原始状态
|