本手册建议以裸磁盘vdb作为示例,其他类型配置参考《002.iSCSI服务端多类型配置》。
同时本手册基于生产环境安全考虑,结合CHAP进行配置认证。
基于IP的认证比较粗糙,对于安全性要求高的环境来说,使用CHAP认证其安全性更有保障。
CHAP(Challenge-Handshake Authentication Protocol),称为挑战式握手认证协议,它是双向认证,当然也支持单向认证。
对于iscsi而言,在CHAP认证的机制上有两种方式:initiator authentication和target authentication。
在initiator尝试连接到一个target的时候,initator需要提供一个用户名和密码给target被target进行认证。
也就是说initiator需要被target认证,它向target端提供的账号和密码是target端指定的。
这个账号和密码对于target来说是流入的账号和密码,用incoming表示。
称呼这个账号和密码为:incoming账号和incoming密码。
即,incoming账号是initiator端提供给target端,被target端认证的账号。
在initiator尝试连接到一个target的时候,target有时也需要被initiator认证,以确保该target是合法而非伪装的target,这就要求target提供一个用户名和密码给initiator被initiator进行认证。
target向initiator提供的账号和密码对于target而言是流出的,所以称之为outgoing。
称呼这个账号和密码为:outgoing账号和outgoing密码。
而对于initiator而言是incoming的,所以在initiator配置文件中称为in。
也就是说outgoing账号是target端提供给initiator端,被initiator认证的账号,但尽管如此,这个账号和密码还是在target端创建和绑定的。
两种认证方式是有层次顺序的。
一般来说,有认证需求的时候都是服务器验证客户端是否有权限,iscsi也一样。
initiator authentication可以单独存在,它可以在没有target authentication的情况下应用,这时候的CHAP认证就是单向认证(target认证initiator的合法性)。
但target authentication只有在initiator authentication的基础上才能进行。也就是说target认证和initiator认证必须同时存在才可以。即initiator和target需要相互认证实现双向CHAP认证。
注意:发现认证和登录认证都支持单/双向认证。
主机名
IP
备注
iscsi
172.24.8.72
iSCSI服务器
client
172.24.8.71
iSCSI客户端
[root@iscsi ~]# fdisk -l
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
[root@iscsi ~]# yum -y install targetcli
[root@system1 ~]# targetcli #进入targetcli交互配置视图
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> /backstores/block create block1 /dev/sdb #将裸磁盘创建为后备盘
/> /iscsi create wwn=iqn.2022-11.com.imxhy:disk01 #创建符合名称的IQN
/> /iscsi/iqn.2022-11.com.imxhy:disk01/tpg1/luns create /backstores/block/block1 #将创建的后备磁盘block1创建一个LUN
/> /iscsi/iqn.2022-11.com.imxhy:disk01/tpg1/acls create iqn.2021-11.com.imxhy:client #只允许配置iqn.2021-11.com.imxhy:client的key才能使用此iSCSI提供的磁盘服务
/> /iscsi/iqn.2021-11.com.imxhy:disk01/tpg1/portals/ delete 0.0.0.0 3260 #删除默认的全部侦听
/> /iscsi/iqn.2022-11.com.imxhy:disk01/tpg1/portals/ create 172.24.8.72 3260 #指定本地用于侦听客户端连接的IP
/> /iscsi/ set discovery_auth enable=1 userid=discover password=discoverps #选配,本实验增加discovery的认证
/> /iscsi/ get discovery_auth
DISCOVERY_AUTH CONFIG GROUP
===========================
enable=True
-----------
The enable discovery_auth parameter.
mutual_password=
----------------
The mutual_password discovery_auth parameter.
mutual_userid=
--------------
The mutual_userid discovery_auth parameter.
password=discoverps
-------------------
The password discovery_auth parameter.
userid=discover
---------------
The userid discovery_auth parameter.
/> /iscsi/iqn.2022-11.com.imxhy:disk01/tpg1/acls/iqn.2021-11.com.imxhy:client/ set auth userid=user01 password=u1pass mutual_userid=muser01 mutual_password=m1pass
/> /iscsi/iqn.2022-11.com.imxhy:disk01/tpg1/acls/iqn.2021-11.com.imxhy:client/ get auth #查看配置
AUTH CONFIG GROUP
=================
mutual_password=m1pass
----------------------
The mutual_password auth parameter.
mutual_userid=muser01
---------------------
The mutual_userid auth parameter.
password=u1pass
---------------
The password auth parameter.
userid=user01
-------------
The userid auth parameter.
/> ls /
o- / …………………………………………………………………………………………………………. […]
o- backstores ……………………………………………………………………………………………….. […]
| o- block …………………………………………………………………………………….. [Storage Objects: 1]
| | o- block1 ………………………………………………………………… [/dev/sdb (1.0GiB) write-thru activated]
| | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| o- fileio ……………………………………………………………………………………. [Storage Objects: 0]
| o- pscsi …………………………………………………………………………………….. [Storage Objects: 0]
| o- ramdisk …………………………………………………………………………………… [Storage Objects: 0]
o- iscsi ………………………………………………………………………………. [1-way disc auth, Targets: 1]
| o- iqn.2022-11.com.imxhy:disk01 ………………………………………………………………………….. [TPGs: 1]
| o- tpg1 ………………………………………………………………………………….. [no-gen-acls, no-auth]
| o- acls ……………………………………………………………………………………………. [ACLs: 1]
| | o- iqn.2021-11.com.imxhy:client ………………………………………………………………. [Mapped LUNs: 1]
| | o- mapped_lun0 …………………………………………………………………….. [lun0 block/block1 (rw)]
| o- luns ……………………………………………………………………………………………. [LUNs: 1]
| | o- lun0 …………………………………………………………… [block/block1 (/dev/sdb) (default_tg_pt_gp)]
| o- portals ………………………………………………………………………………………. [Portals: 1]
| o- 172.24.8.72:3260 ……………………………………………………………………………………. [OK]
o- loopback …………………………………………………………………………………………… [Targets: 0]
/> exit
提示:如上操作:
1:创建的ACL将分配到每个LUN。
2:创建LUN必须在TPG下。
3:若不指定端口将采用默认端口3260
4:若不指定IP,将允许服务器上定义的所有网络接口上的连接
5:创建LUN必须在TPG下
[root@iscsi ~]# firewall-cmd --add-port=3260/tcp --permanent #防火墙添加iSCSI的端口
[root@iscsi ~]# firewall-cmd --add-service=iscsi-target --permanent #防火墙放通iSCSI target服务
[root@iscsi ~]# firewall-cmd --reload
[root@iscsi ~]# systemctl enable target --now
[root@client ~]# yum -y install iscsi-initiator-utils #安装客户端
[root@client ~]# vim /etc/iscsi/initiatorname.iscsi #配置CHAP认证
InitiatorName=iqn.2021-11.com.imxhy:client
[root@client ~]# vim /etc/iscsi/iscsid.conf
……
node.session.auth.authmethod = CHAP
node.session.auth.username = user01
node.session.auth.password = u1pass
node.session.auth.username_in = muser01
node.session.auth.password_in = m1pass
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = discover
discovery.sendtargets.auth.password = discoverps
……
[root@client ~]# systemctl restart iscsid
[root@client ~]# iscsiadm -m discovery -t sendtargets -p 172.24.8.72 #发现目标
172.24.8.72:3260,1 iqn.2022-11.com.imxhy:disk01
[root@client ~]# iscsiadm -m node -T iqn.2022-11.com.imxhy:disk01 -p 172.24.8.72 -l #登录目标
[root@client ~]# iscsiadm -m session -o show
tcp: [23] 172.24.8.72:3260,1 iqn.2022-11.com.imxhy:disk01 (non-flash)
[root@client ~]# iscsiadm -m session -P 3 #查询信息
iSCSI Transport Class version 2.0-870
version 6.2.0.874-22
Target: iqn.2022-11.com.imxhy:disk01 (non-flash)
Current Portal: 172.24.8.72:3260,1
Persistent Portal: 172.24.8.72:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: iqn.2021-11.com.imxhy:client
Iface IPaddress: 172.24.8.71
Iface HWaddress:
Iface Netdev:
SID: 1
iSCSI Connection State: LOGGED IN
iSCSI Session State: LOGGED_IN
Internal iscsid Session State: NO CHANGE
*********
Timeouts:
*********
Recovery Timeout: 120
Target Reset Timeout: 30
LUN Reset Timeout: 30
Abort Timeout: 15
*****
CHAP:
*****
username: user01
password: ********
username_in: muser01
password_in: ********
************************
Negotiated iSCSI params:
************************
HeaderDigest: None
DataDigest: None
MaxRecvDataSegmentLength: 262144
MaxXmitDataSegmentLength: 262144
FirstBurstLength: 65536
MaxBurstLength: 262144
ImmediateData: Yes
InitialR2T: Yes
MaxOutstandingR2T: 1
************************
Attached SCSI devices:
************************
Host Number: 3 State: running
scsi3 Channel 00 Id 0 Lun: 0
Attached scsi disk sdb State: running
[root@client ~]# iscsiadm -m node -o show
node.name = iqn.2022-11.com.imxhy:disk01
node.tpgt = 1
node.startup = automatic
……
iface.transport_name = tcp
……
node.discovery_address = 172.24.8.72
node.discovery_port = 3260
node.discovery_type = send_targets
node.session.initial_cmdsn = 0
node.session.initial_login_retry_max = 8
node.session.xmit_thread_priority = -20
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.nr_sessions = 1
node.session.auth.authmethod = CHAP
node.session.auth.username = user01
node.session.auth.password = ********
node.session.auth.username_in = muser01
node.session.auth.password_in = ********
……
node.session.scan = auto
node.conn[0].address = 172.24.8.72
node.conn[0].port = 3260
……
[root@client ~]# fdisk -l #发现的iSCSI服务器三个共享
注意:
1:此时能当做本地磁盘使用,分区格式化等操作;
2:可使用RAID或LVM来进行操作,LVM的可在之后格式化LV。
[root@client ~]# mkfs.ext4 /dev/sdb #格式化相关iSCSI磁盘
[root@client ~]# mkdir -p /iscsdisk/sdb01 #创建用于挂载sdd磁盘的挂载点
[root@client ~]# mkdir -p /iscsdisk/lv01 #创建用于挂载LVM分区的挂载点
[root@client ~]# mount /dev/sdb /iscsdisk/sdb01/ #可直接挂载
[root@client ~]# vi /etc/fstab #自动挂载
……
/dev/sdb /iscsdisk/lv01 ext4 defaults 0 0
手机扫一扫
移动阅读更方便
你可能感兴趣的文章