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

目录
  • 一 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

到此这篇关于iSCSI服务器CHAP双向认证配置的文章就介绍到这了,更多相关iSCSI服务器CHAP内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 用Windows Storage Server 2008做iSCSI存储服务器的图文方法第1/2页

    用Windows Storage Server 2008做iSCSI存储服务器 Windows Storage Server 2008(以下简称WSS2008)是Windows Server 2008系列中的存储服务器版本,是企业级的文件服务器平台,支持多Administrator文件存储相关的优化特性.副本管理,以及iSCSI功能.简单来说,就是可以在普通的服务器上,安装上WSS2008,可以作为iSCSI存储服务器来说.而在以前,存储服务器的硬件.软件成本都非常的昂贵,有了WSS2008,构

  • linux配置ISCSI服务器的方法

    一.在linux下安装启动iscsi target 1.安装启动iscsi服务 [root@wjb10000 ~]# yum -y install targetcli.noarch 2.建立一个目录设置为iscsi设备 [root@wjb10000 ~]# mkdir /iscsi_disks 3.设置target [root@wjb10000 ~]# targetcli Warning: Could not load preferences file /root/.targetcli/pref

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

    目录 一 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

  • iSCSI服务器CHAP双向认证配置

    目录 一 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

  • 详解Nginx SSL快速双向认证配置(脚本)

    目前遇到一个项目有安全性要求,要求只有个别用户有权限访问.本着能用配置解决就绝不用代码解决的原则,在Nginx上做一下限制和修改即可. 这种需求其实实现方式很多,经过综合评估考虑,觉得SSL双向认证方案对用户使用最简单,遂决定用此方案. 注: 本方案在Ubuntu Server 16.04 LTS实施,其他操作系统请酌情修改 SSL双向认证 绝大多数SSL应用都以单向认证为主,即客户端只要信任服务端,就可以使用服务端的公钥加密后向服务端发起请求,由服务端的私钥解密之后获得请求数据. 如果这个过程

  • nginx环境下配置ssl加密(单双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

  • 关于Keytool配置 Tomcat的HTTPS双向认证的问题

    目录 证书生成 keytool 简介 keytool 命令详解 创建证书 创建证书栗子 导出证书信息 导出自签名证书 导出证书栗子 获取认证证书(生成证书签名请求) 生成证书签名请求栗子 导入证书库 导入证书栗子 查看证书 查看栗子证书 Tomcat服务认证配置 SSL双向证书认证配置 配置Tomcat服务 HTTP自动跳转到 HTTPS(按需选配) 测试 常见问题 证书生成 keytool 简介 Keytool是一个Java数据证书的管理工具, Keytool将密钥(key)和证书(certi

  • 利用keytools为tomcat 7配置ssl双向认证的方法

    SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 1.怎样保障数据传输安全? 客户端和服务器端在进行握手(客户端和服务器建立连接和交换参数的过程称之为握手)时会产生一个"对话密钥"(session key),用来加密接下来的数据传输,解密时也是用的这个"对话密钥",而这个"对话密钥"只有客户端和服务器端知道.也就是说只要这个

  • Openssl实现双向认证教程(附服务端客户端代码)

    一.背景说明 1.1 面临问题 最近一份产品检测报告建议使用基于pki的认证方式,由于产品已实现https,商量之下认为其意思是使用双向认证以处理中间人形式攻击. <信息安全工程>中接触过双向认证,但有两个问题. 第一个是当时最终的课程设计客户端是浏览器,服务端是tomcat双向认证只需要对两者进行配置并不需要自己真的实现代码. 第二个是虽然课程也有接近双向认证的实现代码,但当时是Java+JCE环境现在要用C+++OpenSSL环境,总体意思确实还是差不多但具体函数和参数差别还是不少. 所以

  • 详解用Tomcat服务器配置https双向认证过程实战

    工具:keytool (Windows下路径:%JAVA_HOME%/bin/keytool.exe) 环境:Windows8.1企业版.Tomcat-7.0.27.JDK1.6.IE11.Chrome 一.为服务器生成证书 C:\Windows\system32>keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500 输入keystore密码: 再次输入新密码: 您的名字

  • 浅析NFS服务器原理以及搭建配置部署步骤

    目录 NFS服务简介 什么是NFS? NFS挂载原理 NFS服务器到底使用哪个端口来进行数据传输呢? RPC与NFS通讯原理 那么RPC又是如何知道每个NFS功能的端口呢? NFS客户端和NFS服务器通讯过程 Linux下NFS服务器部署 NFS服务所需软件及主要配置文件 RPC主程序:rpcbind NFS主程序:nfs-utils NFS的相关文件 服务端安装NFS服务步骤 第一步:安装NFS和rpc 第二步:启动服务和设置开启启动 第三步:配置共享文件目录,编辑配置文件 NFS客户端挂载配

随机推荐