在前面的文章中,介绍了如何搭建一个简单的iSCSI网络存储系统,作为iSCSI initiator的客户端主机可以任意连接和使用iSCSI target共享出来的所有磁盘和分区,而在很多时候,通过授权认证连接共享磁盘或分区是必须的,例如:只允许客户端主机A连接target共享出来的磁盘分区一,而客户端主机B只允许连接target共享出来的磁盘分区二等等,在这种情况下,就需要在iSCSI target主机上进行授权设定了。
iSCSI 在授权访问和安全管理方面有着不错优势,它能够使用以主机为基础,也就是以 IP地址为基础来设定允许或拒绝存取;也可以通过用户账号密码认证来完成允许或拒绝存取的设定。
         下面通过一个应用案例来讲述iSCSI授权获取磁盘资源的方法。
有一个PC构架的iSCSI target服务器,共享的硬盘标识为/dev/sdc,大小10G,然后此硬盘划分了两个分区/dev/sdc1和/dev/sdc2,分别将/dev/sdc1共享给一个IP地址为192.168.12.136的windows客户端主机,将/dev/sdc2共享给一个IP地址为192.168.12.26的Linux客户端主机,iSCSI target服务器的IP地址为192.168.12.246。接下来通过IP认证和用户密码认证两种方式来讲述如何实现这种需求。

一、Initiator主机以IP认证方式获取iSCSI Target资源
 此种方式配置非常简单,只需在iSCSI target服务器上修改两个文件即可,首先在iscsitarget主目录/etc/iet目录下找到ietd.conf文件,然后添加如下内容:
Target iqn.2000-04.net.ixdba:sdc1
Lun 0 Path=/dev/sdc1,Type=fileio
Target iqn.2002-04.net.ixdba:sdc2
Lun 0 Path=/dev/sdc2,Type=fileio
在ietd.conf文件中,定义了两个Target,每个Target分别添加了对应的磁盘分区,接着修改/etc/iet/initiators.allow文件,这个文件是定义Initiator主机对target服务器的访问规则,作用类似与Linux操作系统中的/etc/hosts.allow文件。修改完成的initiators.allow文件内容如下:
iqn.2000-04.net.ixdba:sdc1 192.168.12.136
iqn.2002-04.net.ixdba:sdc2 192.168.12.26
修改完成,重启iscsi-target服务:
[root@iscsi-target iet]# service iscsi-target restart
Stopping iSCSI Target:                                     [  OK  ]
Starting iSCSI Target:                                     [  OK  ]
接着,在IP地址为192.168.12.26的Linux Initiator主机上执行如下操作:
[root@ Initiator iscsi]# /etc/init.d/iscsi restart
[root@ Initiator iscsi]#iscsiadm -m discovery -t sendtargets -p 192.168.12.246 
192.168.12.246:3260,1 iqn.2002-04.net.ixdba:sdc2
[root@ Initiator iscsi]#fdisk -l
Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       38913   312464250   8e  Linux LVM

Disk /dev/sdb: 5724 MB, 5724794880 bytes
177 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 10974 * 512 = 5618688 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1018     5585735   83  Linux
通过重启iscsi服务,重新执行Target发现,Linux系统已经识别了Target共享出来的磁盘分区,其中“/dev/sdb: 5724 MB”就是iSCSI共享磁盘,接下来就可以在linux上管理和使用这个共享磁盘了。
最后,登录windows系统,打开Microsoft iSCSI Initiator,添加iSCSI共享磁盘即可,这个操作很简单,这里不在详述。

二、Initiator主机以密码认证方式获取iSCSI Target资源

iSCSI Target使用账号密码方式认证分成两阶段:
第一阶段是Discovery查询认证所使用的账号和密码(即SendTargets 用的)。
第二阶段是登入Target / iqn / Lun时所使用的账号密码(即Login登录时用的)。
此种方式在配置方面稍复杂一些,需要在Initiator主机和iSCSI Target服务器上做简单配置,下面分步介绍。

1 配置iSCSI Target
首先修改/etc/iet/initiators.allow文件,打开所有权限,修改后的内容如下:
#iqn.2000-04.net.ixdba:sdc1 192.168.12.136
#iqn.2002-04.net.ixdba:sdc2 192.168.12.26
ALL ALL
 接着修改/etc/iet/ietd.conf文件,修改后的内容如下:
IncomingUser  discovery.auth  discoverysecret

Target iqn.2000-04.net.ixdba:sdc1
IncomingUser  login.windows.auth  windowssecret
Lun 0 Path=/dev/sdc1,Type=fileio
 
Target iqn.2002-04.net.ixdba:sdc2
IncomingUser  login.linux.auth linuxsecret
Lun 0 Path=/dev/sdc2,Type=fileio
 其中,第一个“IncomingUser”是个全局参数,用来指定Discovery查询认证所使用的账号和密码,必须与initiator主机中设定的用户名密码一致。第二个和第三个“IncomingUser”选项包含在对应的Target中,用来指定windows和Linux客户端主机登录Target/iqn/Lun时所使用的账号密码。也必须与initiator主机中设定的用户名密码一致。
 所有配置完毕以后,重启iscsitarget服务。

2 配置Linux Initiator主机
修改/etc/iscsi/iscsid.conf文件,添加如下选项:
#以下三个是针对login的
node.session.auth.authmethod = CHAP     #表示在login时启用CHAP验证。
node.session.auth.username = login.linux.auth    #验证用户名称,可以是任意字符,但必须与target端IncomingUse配置的名字一致。
node.session.auth.password = linuxsecret     #验证密码,必须与target端对应的IncomingUse选项设置的密码一致。

#以下三个是针对discovery的
discovery.sendtargets.auth.authmethod = CHAP     #表示discovery时启用CHAP验证。
discovery.sendtargets.auth.username = discovery.auth  #验证用户名称,可以是任意字符,但必须与target端IncomingUse配置的名称一致。
discovery.sendtargets.auth.password = discoverysecret #验证密码,必须与target端对应的IncomingUse选项设置的密码一致。
配置完毕,重启initiator,重新执行Discovery查询,操作如下:
[root@ Initiator iscsi ]#/etc/init.d/iscsi restart
[root@ Initiator iscsi ]# iscsiadm -m discovery -t sendtargets -p 192.168.12.246
192.168.12.246:3260,1 iqn.2000-04.net.ixdba:sdc1
192.168.12.246:3260,1 iqn.2002-04.net.ixdba:sdc2
从查询结果可知,initiator查询到了两个Target,最后执行fdisk操作:
[root@ Initiator iscsi ]# fdisk -l
Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       38913   312464250   8e  Linux LVM

Disk /dev/sdb: 5724 MB, 5724794880 bytes
177 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 10974 * 512 = 5618688 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1018     5585735   83  Linux
从fdisk的输出结果可知,Linux initiator已经成功连接了ISCSI共享磁盘,而“/dev/sdb: 5724 MB”就是识别的硬盘标识和大小。

3 配置windows Initiator主机
 配置windows Initiator主机的方法在前面章节已经有过介绍,这里仅仅讲述不同的地方,首先打开Microsoft iSCSI Initiator,选择第二个分页标签“Discovery”,然后在“Target Portals”部分点击“Add”按钮,跳出“Add Target Portal”窗口,在此窗口中填写iSCSI Target的IP地址和端口,填写完毕,点击“Advanced”按钮,如图1所示:

图1

在此界面下,选中“CHAP logon information”标签,然后填写Discovery查询认证所使用的账号和密码。填写完毕点击“确定”按钮。
接着选择第三个分页标签“Targets”,此时Initiator已经从iSCSI Target端查询到了两个Target,选中第一个名为“Target iqn.2000-04.net.ixdba:sdc1 ”的target,点击“Log On”按钮,然后在弹出的“Log On to Target”窗口中点击“Advanced”按钮,如图2所示:

图2

在此界面下,选中“CHAP logon information”标签,然后填写客户端登录iSCSI Target / iqn / Lun时所使用的账号密码。填写完毕点击“确定”按钮。
 此时,名为“Target iqn.2000-04.net.ixdba:sdc1 ”的target已经处于“Connectd”状态,即Microsoft iSCSI Initiator已经连接上了iSCSI Target服务器共享出来的磁盘分区,最后,查看windows磁盘管理器,可以看到共享硬盘分区,如图3所示:

图3

到这里为止,windows已经可以对这个iSCSI磁盘进行分区、格式化等操作了。

利用ISCSI存储技术构建IP存储网络(安全篇)相关推荐

  1. 利用ISCSI存储技术构建IP存储网络(概念篇)

    一.iSCSI的概念iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,该技术是将存储行业广泛应用的SCSI接口技术与IP ...

  2. 网络存储技术:DAS存储、NAS存储和SAN存储

    目录 一.直连式存储(DAS) 二.网络直连式存储(NAS) 三.存储网络(SAN) 四.NAS与SAN的区别 网络存储技术(Network Storage Technologies)基于标准网络协议 ...

  3. 浅析单一冗余校验RAID缺陷--云存储环境下IP存储设备组建策略

    浅析单一冗余校验RAID缺陷--云存储环境下IP存储设备组建策略 前面的话 摘要 一.当前常见阵列组建模式及云存储环境下IP存储设备特点 1.只求容量及读写性能的RAID0: 2.为了数据安全宁可牺牲 ...

  4. 如何利用大数据技术构建用户画像

    在大数据时代,我们经常谈论的概念之一是用户画像.准确营销的商业目的可以通过在互联网领域利用用户画像来实现,这就是为什么在这个流量至上的时代构建用户画像是如此重要.任何企业公司的产品要想做好精细化运营, ...

  5. 存储技术与智能存储组件

    前言 信息在网络中的传输,需要借助数据作为载体,那么信息和数据的关系是什么?数据存储的作用是什么? 一.数据与信息 什么是数据 SNIA(Stirage Networking lndustry Ass ...

  6. 如何利用云原生技术构建现代化应用

    简介:在2021研发效能峰会上,阿里云中间件首席架构师愚奇就"如何利用云原生技术构建现代化应用"的主题分享了,如何利用云的特性及云原生的技术及产品,帮助企业的传统应用转化为现代化应 ...

  7. 去中心化云存储技术 | CESS 的多层网络架构详解

    区块链以其特有的分布式算法和技术底层,让链上数据也随着区块链的不同实现了分布式存储,CESS(Cumulus Encrypted Storage System)去中心化云储存网络基础设施,让我们看到了 ...

  8. 存储专家论IP存储现实可行性

    媒体们喜欢iSCSI(注:实际上,我们也很喜欢iSCSI,主要的理由与Charlie所说基本相同):iSCSI的部署成本不高,而且可以为DAS(直连式存储)或NAS(网络附加存储)带来许多优势.本期存 ...

  9. Ruff Chain 重磅首发 利用区块链技术构建标准统一的物联网世界

    当区块链的讨论持续升温,物联网技术渗透生活,不难发现区块链的去中心化和分布式特点与物联网的分布式特性有着相似的共性,根据 IBM 曾发布的报告称物联网可能是区块链技术的最佳应用场景. 没有区块链的辅助 ...

最新文章

  1. Java JFrame实现全屏的四种方式
  2. 【Android】资源加载过程
  3. maven生成jar,运行却提示没有“没有主清单属性”
  4. ElementUI分页组件的封装
  5. k8s 基础概念和术语
  6. MySQL step by step 安装实战
  7. CUDA内存分配、释放、传输,固定内存
  8. vj p1025题解
  9. java retry怎么用_java retry使用详解
  10. Server object instance creation failed on all SOC machines
  11. 交叉火力dsp手机调音软件_汽车音响DSP调音软件哪个好?8音度优美声喜力士常见车载DSP调音软件下载...
  12. POSTGRESQL通过身份证号码筛选年龄的两种方式
  13. 小游戏开发 手机QQ 微信 浏览器 扫码 Debug 调试输出 查看日志
  14. phrases practice_新视野大学英语第三版第二册Book 2 Unit 4 College sweethearts教案
  15. 计算机视觉基石---obj文件简要介绍
  16. 关于double、arccos等计算的问题
  17. 笔记本性能参数有哪些
  18. 我在亚马逊云平台的学习成长之路
  19. 德云社怒怼信息泄露 300元买600多明星证件号
  20. 搜狗皮肤php怎么转换,搜狗皮肤PHP怎么使用 搜狗输入法皮肤PHP使用方法

热门文章

  1. 使用淘宝镜像cnpm安装Vue.js
  2. python学习19--生成器
  3. linux高级编程补充知识
  4. mysql管理员操作
  5. 10.外观模式(Facade Pattern)
  6. crontab 案例
  7. 如果知道一个控件类型的对话框句柄是编辑框控件
  8. 避免图像去雾算法中让天空部分出现过增强的一种简易方法
  9. Android性能优化
  10. 实战项目 10: 货物清单应用