iSCSI服务器CHAP双向认证配置及创建步骤

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录一 iSCSI和CHAP介绍1.1 iSCSI 磁盘1.2 CHAP介绍1.2.1 initiator authentication认证1.2.2 target authentication认证1.2.3 单/双向认证二 iSCSI创建步骤三 前置准备3.1 环境准备3.2 查看裸磁盘四 创建后备存储五 防火墙开放六 开启服务七 客户端配置八 客户端登录8.1 发现目标8.2 登录目标8.3 查询信息九 格式化并挂载9.1 格式化并挂载

一 iSCSI和CHAP介绍

1.1 iSCSI 磁盘

iSCSI后端存储支持多种设备类型,主要有:文件单一分区(partition)

1.磁盘

2.数组

3.RAID

LVM 本手册建议以裸磁盘vdb作为示例,其他类型配置参考《002.iSCSI服务端多类型配置》。 同时本手册基于生产环境安全考虑,结合CHAP进行配置认证。

1.2 CHAP介绍

基于IP的认证比较粗糙,对于安全性要求高的环境来说,使用CHAP认证其安全性更有保障。

CHAP(Challenge-Handshake Authentication Protocol),称为挑战式握手认证协议,它是双向认证,当然也支持单向认证。

对于iscsi而言,在CHAP认证的机制上有两种方式:initiator authentication和target authentication。

1.2.1 initiator authentication认证

在initiator尝试连接到一个target的时候,initator需要提供一个用户名和密码给target被target进行认证。

也就是说initiator需要被target认证,它向target端提供的账号和密码是target端指定的。

这个账号和密码对于target来说是流入的账号和密码,用incoming表示。

称呼这个账号和密码为:incoming账号和incoming密码。

即,incoming账号是initiator端提供给target端,被target端认证的账号。

1.2.2 target authentication认证

在initiator尝试连接到一个target的时候,target有时也需要被initiator认证,以确保该target是合法而非伪装的target,这就要求target提供一个用户名和密码给initiator被initiator进行认证。

target向initiator提供的账号和密码对于target而言是流出的,所以称之为outgoing。 

称呼这个账号和密码为:outgoing账号和outgoing密码。

而对于initiator而言是incoming的,所以在initiator配置文件中称为in。 

也就是说outgoing账号是target端提供给initiator端,被initiator认证的账号,但尽管如此,这个账号和密码还是在target端创建和绑定的。 1.2.3 单/双向认证

两种认证方式是有层次顺序的。 

一般来说,有认证需求的时候都是服务器验证客户端是否有权限,iscsi也一样。

initiator authentication可以单独存在,它可以在没有target authentication的情况下应用,这时候的CHAP认证就是单向认证(target认证initiator的合法性)。

但target authentication只有在initiator authentication的基础上才能进行。也就是说target认证和initiator认证必须同时存在才可以。即initiator和target需要相互认证实现双向CHAP认证。

注意:发现认证和登录认证都支持单/双向认证。

二 iSCSI创建步骤

建立用于共享的磁盘创建后备磁盘创建相应的IQN创建相应的规则为后备磁盘创建LUN创建双向认证账号和密码指定侦听的IP和端口检查并保存配置防火墙规则开放服务(开机)启动

三 前置准备

3.1 环境准备

主机名

IP

备注

iscsi

172.24.8.72

iSCSI服务器

client

172.24.8.71

iSCSI客户端

3.2 查看裸磁盘

[root@iscsi ~]# fdisk -l Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors

四 创建后备存储

4.1 安装相关软件

[root@iscsi ~]# yum -y install targetcli

4.2 交互设置

[root@system1 ~]# targetcli #进入targetcli交互配置视图 block:定义的块设备,磁盘驱动器、磁盘分区、LVM等fileio:创建的指定大小的文件,如dd if=/dev/zero of=……所创建pscsi:物理SCSI,通常不采用此类型ramdisk:在内存中创建的一个指定大小ramdisk设备 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

八 客户端登录

8.1 发现目标

[root@client ~]# iscsiadm -m discovery -t sendtargets -p 172.24.8.72                        #发现目标 172.24.8.72:3260,1 iqn.2022-11.com.imxhy:disk01

8.2 登录目标

[root@client ~]# iscsiadm -m node -T iqn.2022-11.com.imxhy:disk01 -p 172.24.8.72 -l           #登录目标

8.3 查询信息

[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: <empty>                 Iface Netdev: <empty>                 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 # BEGIN RECORD 6.2.0.874-22 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 # END RECORD [root@client ~]# fdisk -l                #发现的iSCSI服务器三个共享

九 格式化并挂载

9.1 格式化并挂载

注意:

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
免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容