基本信息 | 含义 |
---|---|
smb.service | 服务启动脚本 |
/etc/samba | 主配置目录 |
/etc/smb.conf | 主配置文件 |
samba_share_t | 安全上下文 |
139、445 | 端口 |
samba、samba-common | 安装包 |
做本节实验时,selinux 是开启的强制状态。
[root@kkk ~]# getenforce
Enforcing
[root@kkk ~]# dnf install samba.x86_64 samba-common.noarch samba-client.x86_64 -y
##安装
[root@kkk ~]# systemctl enable --now smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
[root@kkk ~]# firewall-cmd --permanent --add-service=samba
success
[root@kkk ~]# firewall-cmd --reload
success
[root@kkk ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: cockpit dhcpv6-client samba ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
samba 用户必须是本机用户;
命令 | 含义 |
---|---|
smbpasswd -a zxk | 添加用户 |
pdbedit -L | 查看用户列表 |
pdbedit -x westos | 删除用户 |
[root@kkk ~]# id zxk
uid=1000(zxk) gid=1000(zxk) groups=1000(zxk)
[root@kkk ~]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)
[root@kkk ~]# id kkk
id: ‘kkk’: no such user
[root@kkk ~]# smbpasswd -a kkk ##不是本地用户创建不了
New SMB password:
Retype new SMB password:
Failed to add entry for user kkk.
[root@kkk ~]# smbpasswd -a zxk
New SMB password:
Retype new SMB password:
Added user zxk.
[root@kkk ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
[root@kkk ~]# pdbedit -L
zxk:1000:zxk
westos:1001:
[root@kkk ~]# pdbedit -L
zxk:1000:zxk
westos:1001:
[root@kkk ~]# pdbedit -x westos
[root@kkk ~]# pdbedit -L
zxk:1000:zxk
先用命令来列出:
从上图中可以看出,当不添加用户时,此时没有可用的信息,当用 zxk 用户访问时,有可用的信息;
此时来访问用户的家目录,ip 后面的目录,就是该smb用户的家目录,可以直接登陆查看;
[root@kkk ~]# smbclient //172.25.254.150/zxk -U zxk
Enter SAMBA\zxk's password:
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
smb: \>
进入后可以看到在列出文件时,受到了权限限制,无法访问加目录,这是因为 selinux 默认不允许samba访问自己的家目录,需要设定为开启;
默认情况下用户的家目录是共享出去的,此时如果需要共享自己新建的目录,就需要做如下设定;
[root@kkk ~]# mkdir /westos
[root@kkk ~]# cd /westos/
[root@kkk westos]# touch westosfile{1..5}
[root@kkk westos]# ls
westosfile1 westosfile2 westosfile3 westosfile4 westosfile5
(2)此时 selinux 处于开启状态时,若想共享自己建立的目录,必须修改安全上下文支持 smb 服务,修改完成后刷新/westos目录:
[root@kkk westos]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'
[root@kkk westos]# restorecon -RvvF /westos
Relabeled /westos from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
Relabeled /westos/westosfile1 from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
Relabeled /westos/westosfile2 from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
Relabeled /westos/westosfile3 from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
Relabeled /westos/westosfile4 from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
Relabeled /westos/westosfile5 from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
(3)修改完安全上下文后,进入主配置目录,将smb.conf主配置文件复制成smb.conf.bak,再将将模板复制成 smb.conf 主配置文件,防止想恢复时不好恢复:
[root@kkk westos]# cd /etc/samba/
[root@kkk samba]# ls
lmhosts smb.conf smb.conf.example
[root@kkk samba]# mv smb.conf smb.conf.back
[root@kkk samba]# ls
lmhosts smb.conf.back smb.conf.example
[root@kkk samba]# mv smb.conf.example samba.conf
[root@kkk samba]# ls
lmhosts smb.conf smb.conf.back
(4)编辑配置文件
其中 ’[ ]’ 里的内容是共享时可以被客户端看到的名称;comment 是对该目录的说明;path是共享目录的路径:
[root@kkk samba]# vim samba.conf
315 [WESTOS]
316 comment = local dir westos
317 path = /westos
(5)重启服务
使用之前添加的 smb 用户查看服务器共享的目录;然后再进入该共享目录查看内容:
[root@kkk samba]# systemctl restart smb.service
[root@kkk samba]# smbclient -L //172.25.254.150 -U zxk
编辑配置文件,添加一个系统级的共享目录:
[root@kkk samba]# vim smb.conf
319 [MNT]
320 comment = /mnt dir
321 path = /mnt
[root@kkk samba]# ls /mnt/
[root@kkk samba]# touch /mnt/zxkll{1..4}
[root@kkk samba]# ls /mnt/
zxkll1 zxkll2 zxkll3 zxkll4
[root@kkk samba]# ls -Z /mnt/
unconfined_u:object_r:mnt_t:s0 zxkll1 unconfined_u:object_r:mnt_t:s0 zxkll3
unconfined_u:object_r:mnt_t:s0 zxkll2 unconfined_u:object_r:mnt_t:s0 zxkll4
[root@kkk samba]# systemctl restart smb.service
[root@kkk samba]# smbclient -L //172.25.254.150 -U zxk
[root@kkk samba]# smbclient //172.25.254.150/MNT -U zxk
可以看到如图所示,可以看到 MNT 共享目录名,但是进入后无显示内容;
这也是因为 selinux 造成的原因,但是由于是系统目录,不能修改目录安全上下文,会造成一些系统问题;
解决方法是打开 selinux 的 samba_export_all_ro 功能,表示smb开启对所有文件读的功能,不管是否符合安全上下文,开启后 samba 服务将不再受安全上下文的影响;
[root@kkk samba]# getsebool -a | grep samba
[root@kkk samba]# setsebool -P samba_export_all_ro on
在生产环境中,默认情况下 samba 服务允许任何用户访问,这是不合理的;通过对对不同 ip 进行访问控制,用设置用户的黑白名单的方式来进行限制;
此处用用另一台 samba 客户端进行测试,客户端需要安装 samba-client 软件。
[root@localhost ~]# dnf install samba-client -y
[root@localhost ~]# smbclient -L //172.25.254.150
Enter SAMBA\root's password:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
WESTOS Disk local dir westos
MNT Disk /mnt dir
IPC$ IPC IPC Service (Samba Server Version 4.11.2)
SMB1 disabled -- no workgroup available
[root@localhost ~]# smbclient //172.25.254.150/MNT -U zxk
Enter SAMBA\zxk's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue May 4 15:57:51 2021
.. D 0 Tue May 4 15:04:19 2021
zxkll1 N 0 Tue May 4 15:57:51 2021
zxkll2 N 0 Tue May 4 15:57:51 2021
zxkll3 N 0 Tue May 4 15:57:51 2021
zxkll4 N 0 Tue May 4 15:57:51 2021
19936256 blocks of size 1024. 15425480 blocks available
smb: \>
(2)编辑主配置文件
在全局配置部分,写入如图所示的内容,表示所有 smb 共享只允许在该主机上访问,然后重启服务;若有多个想要设置的用户,就输入空格,将 ip 写在后面;
白名单
[root@kkk samba]# pwd
/etc/samba
[root@kkk samba]# vim smb.conf ##全局配置,白名单
91 hosts allow = 172.25.254.150
此时再次访问时,只有该主机可以访问,其他的不能访问;
[root@kkk samba]# smbclient //172.25.254.150/MNT -U zxk
Enter MYGROUP\zxk's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue May 4 15:57:51 2021
.. D 0 Tue May 4 15:04:19 2021
zxkll1 N 0 Tue May 4 15:57:51 2021
zxkll2 N 0 Tue May 4 15:57:51 2021
zxkll3 N 0 Tue May 4 15:57:51 2021
zxkll4 N 0 Tue May 4 15:57:51 2021
19936256 blocks of size 1024. 15425464 blocks available
[root@localhost ~]# smbclient //172.25.254.150/MNT -U zxk
Enter SAMBA\zxk's password:
tree connect failed: NT_STATUS_ACCESS_DENIED
黑名单
[root@kkk samba]# pwd
/etc/samba
[root@kkk samba]# vim smb.conf ##全局配置,白名单
91 hosts deny = 172.25.254.150
[root@kkk samba]# smbclient //172.25.254.150/MNT -U zxk
Enter MYGROUP\zxk's password:
tree connect failed: NT_STATUS_ACCESS_DENIED
[root@localhost ~]# smbclient //172.25.254.150/MNT -U zxk
Enter SAMBA\zxk's password:
tree connect failed: NT_STATUS_ACCESS_DENIED
[root@localhost ~]# smbclient //172.25.254.150/MNT -U zxk
Enter SAMBA\zxk's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue May 4 15:57:51 2021
.. D 0 Tue May 4 15:04:19 2021
zxkll1 N 0 Tue May 4 15:57:51 2021
zxkll2 N 0 Tue May 4 15:57:51 2021
zxkll3 N 0 Tue May 4 15:57:51 2021
zxkll4 N 0 Tue May 4 15:57:51 2021
19936256 blocks of size 1024. 15425396 blocks available
smb: \>
此时再次访问时,其他主机都可以访问,只有写入的 ip 用户不能访问;
[root@kkk samba]# vim smb.conf
316 [WESTOS]
317 comment = local dir westos
318 path = /westos
319 hosts allow = 172.25.254.150
320 [MNT]
321 comment = /mnt dir
322 path = /mnt
表示只对 westos 目录做了限制,只允许 150 号主机访问 westos,其他主机都不可以;
除了以上的权限设定之外还有对于用户的限定 valid users = zxk
以及针对组的限定 valid users = +zxk
。
配置参数 | 含义 |
---|---|
writable = yes | 可写(建立、删除) |
write list = westos | 指定用户可写 |
write list = +westos/@westos | 指定组可写 |
valid users = lee | 指定访问用户 |
valid users = +lee/@lee | 前面加+/@符号,表示指定访问组 |
browseable = yes/no | 是否隐藏共享,不需要重启服务 |
map to guest = bad user | 允许匿名用户访问,写到全局设定中 |
guest ok = yes | 允许匿名用户访问,写在某个设定的目录中 |
admin users = westos | 指定此共享的超级用户身份 |
[root@kkk samba]# vim smb.conf
316 [WESTOS]
317 comment = local dir westos
318 path = /westos
319 ; hosts allow = 172.25.254.150
320 valid users = zxk
321 [MNT]
322 comment = /mnt dir
323 path = /mnt
重启服务,使用 zxk 用户访问 WESTOS 目录,可以访问,使用其他 smb 用户无法访问该目录的;
[root@localhost ~]# smbclient //172.25.254.150/WESTOS -U zxk
Enter SAMBA\zxk's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Tue May 4 15:04:38 2021
.. D 0 Tue May 4 15:04:19 2021
westosfile1 N 0 Tue May 4 15:04:38 2021
westosfile2 N 0 Tue May 4 15:04:38 2021
westosfile3 N 0 Tue May 4 15:04:38 2021
westosfile4 N 0 Tue May 4 15:04:38 2021
westosfile5 N 0 Tue May 4 15:04:38 2021
19936256 blocks of size 1024. 15425464 blocks available
smb: \> quit
[root@localhost ~]# smbclient //172.25.254.150/WESTOS -U westos
Enter SAMBA\westos's password:
tree connect failed: NT_STATUS_ACCESS_DENIED
[root@kkk samba]# vim smb.conf
316 [WESTOS]
317 comment = local dir westos
318 path = /westos
319 ; hosts allow = 172.25.254.150
320 valid users = +zxk
321 [MNT]
322 comment = /mnt dir
323 path = /mnt
如图,当 zxk 组不属于 westos用户时,此时没有访问权限;当为其增加附加组身份之后,此时便可以成功访问;
修改权限,为了说明 samba 服务的问题,排除本地文件系统的干扰。
[root@kkk ~]# ls -ld /mnt/
drwxr-xr-x. 2 root root 62 May 4 15:57 /mnt/
[root@kkk ~]# ls -ld /westos/
drwxr-xr-x. 2 root root 101 May 4 15:04 /westos/
[root@kkk ~]# chmod 777 /westos/
[root@kkk ~]# ls -ld /westos/
drwxrwxrwx. 2 root root 101 May 4 15:04 /westos/
虽然文件系统的权限已经设定为了 777,但此时还是不能写;
编辑主配置文件,设定“writable = yes ”所有用户对/westos目录可写;
注:可写指的是smb用户可写,目录本身是否可写要看本地文件系统的权限。
[root@kkk samba]# vim smb.conf
[WESTOS]
comment = local dir westos
path = /westos
; hosts allow = 172.25.254.150
; valid users = +zxk
writeable = yes
[MNT]
comment = /mnt dir
path = /mnt
修改之后,此时在重新挂载之后,便可写;如图所示:
[root@kkk samba]# vim smb.conf
[WESTOS]
comment = local dir westos
path = /westos
; hosts allow = 172.25.254.150
; valid users = +zxk
; writeable = yes
write list = westos
[MNT]
comment = /mnt dir
path = /mnt
如图所示,当用 zxk 用户写入时不可以,只有 westos 用户可写;
[WESTOS]
comment = local dir westos
path = /westos
; hosts allow = 172.25.254.150
; valid users = +zxk
; writeable = yes
write list = westos
[MNT]
comment = /mnt dir
path = /mnt
browseable = no
如图所示,再没有更改文件之前,是可以访问所有的;当加入内容之后,就隐藏了 /MNT 目录;
“map to guest = bad user”
,表示所有匿名身份指向为 guest,不能在非全局处写该参数,否则会出现问题无法挂载。在 WESTOS 共享资源处输入 “guest ok = yes”
,表示允许匿名用户访问,当这两个参数设置后,才表示匿名用户允许访问;此时便可用匿名用户进行挂载;
在客户端如果用以上的挂载方式,没有j经过 samba 服务认证的其他用户也可以访问已认证用户挂载的 samba 中的内容,而且smb用户的用户名和密码也直接显示在外面,这种方式不安全;
所以就需要通过设置特殊参数,使用户名密码等信息不会被直接看到,并且其他用户在没有 samba 认证时不能看已认证用户挂载的samba 内容。
恢复前面的配置,此处来观察效果;
[root@localhost ~]# dnf install cifs-utils -y
用命令 man mount-cifs
查看帮助
(2)编辑文件 /root/smb_auth,该文件名可自定义,将用户名和密码存入;
如图所示,将用户名和密码写入文件,给文件修改权限,只有文件的所有人有权限,在挂载的时候便可以用参数来指定文件来挂载,而不用将用户名和密码显示在 history 中;
(3)但是这种方法还是没有解决挂载用户只能浏览自己挂载的问题,那么接下来就要设定多用户挂载;
[root@localhost ~]# umount /media
[root@localhost ~]# mount //172.25.254.150/WESTOS /media -o credentials=/root/smb_auth,multiuser
[root@localhost ~]# df
[root@localhost ~]# su - zxk
[zxk@localhost ~]$ cd /media
[zxk@localhost media]$ ls
[zxk@localhost media]$ exit
logout
[root@localhost ~]# cd /media/
[root@localhost media]# ls
westosfile1 westosfile2 westosfile3 westosfile4 westosfile5 zxk111 zxk222
用参数 multiuser
进行多用户挂载之后,此时只有挂载的用户可以访问信息,其他用户访问不到信息;
以上设定虽然其他用户访问不到信息,其他用户有账号时也无法挂载,所以应该在加一个参数,让其他用户也可以认证;
[root@localhost ~]# mount //172.25.254.150/WESTOS /media -o credentials=/root/smb_auth,multiuser,sec=ntlmssp
[root@localhost ~]# su - zxk
[zxk@localhost media]$ cifscreds add -u westos 172.25.254.150
当认证错误时,需要删除时用 cifscreds clear -u westos 172.25.254.150
。
多用户认证结束之后,当有写的权限时,用那个用户新建的文件,在服务端查看时就属于那个用户。
Net File System
基本信息 | 含义 |
---|---|
nfs-utils | 安装包 |
nfs-server | 服务脚本 |
/etc/exports | 共享配置文件 |
[root@kkk ~]# systemctl enable --now nfs-server.service
[root@kkk ~]# showmount -e 172.25.254.150
[root@localhost ~]$ showmount -e 172.25.254.150
clnt_create: RPC: Unable to receive
[root@kkk ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@kkk ~]# firewall-cmd --reload
success
[root@localhost ~]$ showmount -e 172.25.254.150
rpc mount export: RPC: Unable to receive; errno = No route to host
[root@kkk ~]# firewall-cmd --permanent --add-service=mountd
success
[root@kkk ~]# firewall-cmd --reload
success
[root@localhost ~]$ showmount -e 172.25.254.150 ##此时 虽然可以看到,但是不能挂载
Export list for 172.25.254.150:
[root@kkk ~]# firewall-cmd --permanent --add-service=nfs
success
[root@kkk ~]# firewall-cmd --reload
success
/etc/exports
[root@kkk ~]# vim /etc/exports
[root@kkk ~]# cat /etc/exports
/westos *(ro)
[root@kkk ~]# exportfs -rv ##刷新
exporting *:/westos
[root@localhost ~]# showmount -e 172.25.254.150
Export list for 172.25.254.150:
/westos *
[root@localhost ~]# mount 172.25.254.150:/westos /media
[root@localhost ~]# cd /media/
[root@localhost media]# ls
westosfile1 westosfile2 westosfile3 westosfile4 westosfile5
参数 | 含义 |
---|---|
anonuid=1000,anongid=1000 | 指定用户身份 |
sync | 更改生成后同步数据到服务器 |
async | 时时同步数据到服务器 |
rw | 读写 |
ro | 只读 |
no_root_squash | root用户挂载不转换身份 |
在挂载时,文件 /etc/exports
中写入的时ro
只读,并不能新建;此时修改文件内容为 rw
,再次新建来观察效果:
[root@kkk ~]# vim /etc/exports
[root@kkk ~]# cat /etc/exports
/westos *(rw)
[root@kkk ~]# exportfs -rv
exporting *:/westos
在客户端效果如图:
/etc/exports
文件,[root@kkk ~]# vim /etc/exports
[root@kkk ~]# cat /etc/exports
/westos *(rw,no_root_squash)
##表示用root用户挂载不转换身份
[root@kkk ~]# exportfs -rv
exporting *:/westos
[root@kkk ~]# vim /etc/exports
[root@kkk ~]# cat /etc/exports
/westos *(rw,anonuid=1000) ##只更改用户身份
[root@kkk ~]# exportfs -rv
exporting *:/westos
[root@kkk ~]# vim /etc/exports
[root@kkk ~]# cat /etc/exports
/westos *(rw,anonuid=1000,anongid=1000) ##更改用户和组
[root@kkk ~]# exportfs -rv
exporting *:/westos
在前面我们已经将其挂载,但是不使用的时候还是处于挂载的状态,这就相当于对于资源的一部分浪费;当使用的时候自动挂载,不使用的时候就卸载掉,这才是最优的设置;下面我们就需要在客户端做一些操作来实现自动挂载。
[root@localhost ~]# dnf install autofs -y
[root@localhost ~]# ls -ld /net
ls: cannot access '/net': No such file or directory
[root@localhost ~]# systemctl enable --now autofs.service
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[root@localhost ~]# ls -ld /net
drwxr-xr-x. 2 root root 0 May 5 09:27 /net
[root@localhost ~]# cd /net/
[root@localhost net]# ls
[root@localhost net]# cd 172.25.254.150
[root@localhost 172.25.254.150]# ls
westos
[root@localhost 172.25.254.150]# cd westos/
[root@localhost westos]# ls
1111 westosfile1 westosfile3 westosfile5 zxk333
2222 westosfile2 westosfile4 zxk11
[root@localhost westos]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 391196 0 391196 0% /dev
tmpfs 419040 0 419040 0% /dev/shm
tmpfs 419040 6448 412592 2% /run
tmpfs 419040 0 419040 0% /sys/fs/cgroup
/dev/vda2 19936256 4473728 15462528 23% /
/dev/vda1 506528 218860 287668 44% /boot
tmpfs 83808 1180 82628 2% /run/user/42
tmpfs 83808 4 83804 1% /run/user/0
172.25.254.150:/westos 19936256 4470144 15466112 23% /net/172.25.254.150/westos
当退出目录之后,默认会等 300s 之后自动卸载,通过对配置文件的更改来缩短自动卸载的时间;
[root@localhost ~]# vim /etc/autofs.conf
timeout = 10
[root@localhost ~]# systemctl restart autofs.service
修改完配置文件之后,重启服务,来观察效果;
在客户端编辑 /etc/auto.master
文件,写入/media /etc/auto.samba
,其中 auto.nfs
文件名是自定义,表示将该文件挂载在 media 下,这叫最终挂载子策略文件;
[root@localhost ~]# vim /etc/auto.master
14 /media /etc/auto.samba
[root@localhost ~]# ll /etc/auto.samba
ls: cannot access '/etc/auto.samba': No such file or directory
[root@localhost ~]# vim /etc/auto.samba
[root@localhost ~]# ll /etc/auto.samba
-rw-r--r--. 1 root root 73 May 5 09:53 /etc/auto.samba
子策略文件内容为,表示将 172.25.254.150
下面的 WESTOS 以 zxk 的身份挂载到 /media/samba
中;编辑一个注配置文件,一个子策略文件;
在客户端编辑 /etc/auto.master
文件,写入/media /etc/auto.nfs
,其中 auto.nfs
文件名是自定义,表示将该文件挂载在 media 下,这叫最终挂载子策略文件;
[root@localhost ~]# vim /etc/auto.master
13 /net -hosts
# 14 /media /etc/auto.samba
15 /media /etc/auto.nfs
[root@localhost ~]# vim /etc/auto.nfs
[root@localhost ~]# cat /etc/auto.nfs
nfs 172.25.254.150:/westos
测试结果如图所示:
以上一个目录都是一个目录写一个挂载点,那么一个目录写入两个挂载点就需要修改配置文件内容如下所示:
[root@localhost ~]# vim /etc/auto.master
12 #
13 /net -hosts
14 /media /etc/automount ##子策略文件名自定义
15 #
[root@localhost ~]# vim /etc/automount
[root@localhost ~]# cat /etc/automount
samba -fstype=cifs,username=zxk,password=westos ://172.25.254.150/WESTOS
nfs 172.25.254.150:/westos
测试结果入下所示:
使用 nfs
和 samba
都会在设备之上的软件;以软件的方式将文件系统共享出去,而 iscsi
主要用于共享硬盘,直接共享设备权限。
此处用两台主机来观察效果,其中一台上有两块硬盘,准备将其中一块共享出去。
在有两块硬盘的服务端,划分分区,此处只划分了一块分区,将整个存储的内容都划分进去;
[root@kkk ~]# fdisk -l ##查看设备情况
[root@kkk ~]# fdisk /dev/vdb ##划分设备
[root@kkk ~]# udevadm settle ##同步分区信息表
[root@kkk ~]# dnf install targetcli -y
[root@kkk ~]# systemctl status target.service
● target.service - Restore LIO kernel target configuration
Loaded: loaded (/usr/lib/systemd/system/target.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@kkk ~]# systemctl enable --now target.service ##设定开启自启,打开服务
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
启动服务之后,输入 targetcli
命令,即可进入交互界面,输入 ls 可以查看;
设定:
/backstores/block create westos_storage /dev/vdb1
表示建立共享的设备,westos_storage是自定义的网络磁盘名称;
/iscsi create iqn.2021-05.org.westos:storage
表示创建一个 iqn 的链,用于时别单个iscsi目标,建立共享名称;
/iscsi/iqn.2021-05.org.westos:storage/tpg1/luns create /backstores/block/westos_storage
表示关联设备 ;
/iscsi/iqn.2021-05.org.westos:storage/tpg1/acls create iqn.2021-05.org.westos:westoskey
表示设置密码;
设定完成之后,结果查看,除了可以看到其设定的信息之外,还有其端口信息 3260;
(1)安装插件
[root@localhost ~]# dnf install iscsi-initiator-utils.x86_64 -y
[root@localhost ~]# iscsiadm -m discovery -t st -p 172.25.254.150
##表示列出服务端可用的网络磁盘,此处若没有在火墙策略处允许端口,就会无法链接
172.25.254.150:3260,1 iqn.2021-05.org.westos:storage
(2)修改认证方式
[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
[root@localhost ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-05.org.westos:westoskey ##此为服务端设定的认证方式
[root@localhost ~]# systemctl restart iscsid
[root@localhost ~]# systemctl enable --now iscsid.service ##设定开启自启
Created symlink /etc/systemd/system/multi-user.target.wants/iscsid.service → /usr/lib/systemd/system/iscsid.service.
(3)认证
[root@localhost ~]# iscsiadm -m discovery -t st -p 172.25.254.150
172.25.254.150:3260,1 iqn.2021-05.org.westos:storage
[root@localhost ~]# iscsiadm -m node -T iqn.2021-05.org.westos:storage -p 172.25.254.150 -l
##启用服务端的存储设备,-l表示登陆
[root@localhost ~]# fdisk -l
-m:操作模式 ,node 为结点认证;
-l 登陆;
-p 设备IP端口;
-T:目标设备名称;
-t:发现设备的类型;
格式化分区并挂载:
客户端
卸载设备,退出,
[root@localhost ~]# umount /mnt
[root@localhost ~]# iscsiadm -m node -T iqn.2021-05.org.westos:storage -p 172.25.254.150 -u
[root@localhost ~]# fdisk -l
此时虽然已经卸载了设备并且登出,分区信息已经看不到,但是并没有删除;
当再次重启设备时,就会恢复;
所在在登出之后,还需要执行删除动作;