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

简介:

前面的文章中,介绍了如何搭建一个简单的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磁盘进行分区、格式化等操作了。
 












本文转自南非蚂蚁51CTO博客,原文链接: http://blog.51cto.com/ixdba/579286,如需转载请自行联系原作者




相关文章
|
6天前
|
存储 SQL 安全
网络安全与信息安全:构建安全防线的关键策略
本文深入探讨了网络安全与信息安全领域的核心要素,包括网络安全漏洞、加密技术以及安全意识的重要性。通过对这些关键领域的分析,旨在为读者提供一套综合性的防护策略,帮助企业和个人在日益复杂的网络环境中保障数据安全。
20 4
|
7天前
|
监控 安全 物联网
智能家居安全:保护您的家庭免受网络威胁##
随着物联网 (IoT) 技术的迅猛发展,越来越多的家庭设备连接到互联网,带来便利的同时,也增加了网络安全风险。本文将深入探讨智能家居设备的常见安全漏洞、潜在威胁以及防护措施,帮助您了解如何保护家庭免受网络威胁。 ##
|
7天前
|
人工智能 安全 网络安全
云计算与网络安全:构建安全的数字基石##
在当今数字化时代,云计算已成为推动企业创新和效率的关键驱动力。然而,随着数据上云,网络安全威胁也日益增多,对信息的保护提出了更高要求。本文将深入探讨云计算服务模型、面临的主要网络安全挑战,以及如何通过技术手段和管理策略来强化信息安全,确保数据的完整性、可用性和保密性。 ##
|
2天前
|
存储 安全 网络安全
云计算与网络安全:技术融合下的安全挑战与机遇
【9月更文挑战第33天】随着云计算技术的飞速发展,企业和个人越来越依赖于云服务来处理和存储数据。然而,这也带来了前所未有的网络安全威胁。本文将探讨云计算环境下的网络安全挑战,包括数据泄露、身份盗用等,并讨论如何通过加强访问控制、使用加密技术和实施安全策略来保护信息安全。文章还将分享一些实际的代码示例,帮助读者更好地理解和应用这些安全措施。
99 70
|
1天前
|
数据采集 存储 JavaScript
构建你的第一个Python网络爬虫
【9月更文挑战第34天】在数字信息泛滥的时代,快速有效地获取和处理数据成为一项重要技能。本文将引导读者通过Python编写一个简易的网络爬虫,实现自动化地从网页上抓取数据。我们将一步步走过代码的编写过程,并探讨如何避免常见陷阱。无论你是编程新手还是想扩展你的技术工具箱,这篇文章都将为你提供有价值的指导。
30 18
|
4天前
|
SQL 安全 算法
数字时代的守护者:网络安全与信息安全的现代策略
【9月更文挑战第31天】在数字化时代,网络安全与信息安全成为保护个人隐私和企业资产的关键。本文将深入探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性,旨在为读者提供防范网络威胁的策略和知识分享。
19 7
|
5天前
|
安全 网络安全 数据安全/隐私保护
数字时代的守护者:网络安全与信息安全的深度剖析
【9月更文挑战第30天】在数字化浪潮中,网络安全与信息安全成为我们不可忽视的盾牌。本文将深入探讨网络安全漏洞的形成、加密技术的应用以及提升安全意识的重要性,旨在为读者提供一套全面的网络安全知识体系。通过分析最新的网络攻击案例,我们将揭示防御策略和最佳实践,帮助个人和企业构筑坚固的数字防线。
17 5
|
6天前
|
机器学习/深度学习 安全 网络安全
云计算与网络安全的融合:构建安全高效的云服务体系
本文深入探讨了云计算与网络安全之间的紧密联系,特别是在云服务、网络安全和信息安全等关键技术领域。随着云计算技术的迅猛发展,数据安全成为企业和组织面临的主要挑战之一。通过分析当前云服务中的安全漏洞和威胁,本文提出了一系列增强云计算环境安全性的策略和技术措施,包括加密技术、访问控制、身份验证以及安全审计等。此外,还讨论了未来云计算和网络安全技术的发展趋势,强调了技术创新在提高数据处理效率和保护信息安全中的重要性。
|
6天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务的安全挑战与应对策略
【9月更文挑战第29天】本文将深入探讨云计算环境下的网络安全问题,分析云服务中存在的安全威胁,并提出相应的防护措施。我们将从云基础设施、数据保护、身份管理等方面进行讨论,并提供一些实用的代码示例来展示如何增强云服务的安全性。
|
4天前
|
安全 网络安全 数据安全/隐私保护
数字时代的守护者:网络安全与信息安全的基石
【9月更文挑战第31天】在数字化浪潮中,网络安全和信息安全的重要性日益凸显。本文将深入探讨网络安全漏洞、加密技术以及安全意识等关键领域,旨在提升公众对网络威胁的认识并促进防护措施的实施。通过分析最新的安全事件、介绍加密算法的应用,以及强调个人和组织在维护网络安全中的积极作用,本文为读者提供了一套综合性的安全知识框架。
下一篇
无影云桌面