1 前言
在上一篇【基于targetcli的ISCSI服务器搭建】文档中,采用开启demo 模式和允许demo模式写操作,来实现允许任意Initiator端建立链接。这样虽然配置简单,但是安全上没有办法保证。此时我们可以采用Initiator端的iqn配置白名单认证。
2 实验环境
2-1实验需求
- 使用【基于targetcli的ISCSI服务器搭建】的实验环境;
- 只允许授权Initiator端建立连接,非授权的不允许连接。
2-2实验环境
- 在【基于targetcli的ISCSI服务器搭建】的实验环境上还需要准备Initiator端iqn
- win11 iqn :iqn.1991-05.com.microsoft:tg11
3 实验过程
3-1 退出Demo模式开启Demo模式写保护
新部署的targetcli是关闭Demo模式的,不用操作此步骤。因为沿用上次实验环境,所以要退出Demo模式。
1、切换目录
/> cd iscsi/iqn.2003-01.org.linux-iscsi.iscsi-svr.x8664:sn.9d2d7bec358d/tpg1/ /iscsi/iqn.20...7bec358d/tpg1>
2、退出Demo模式
/iscsi/iqn.20...7bec358d/tpg1> set attribute generate_node_acls=0 Parameter generate_node_acls is now '0'.
3、开启Demo模式写保护
/iscsi/iqn.20...7bec358d/tpg1> set attribute demo_mode_write_protect=1 Parameter demo_mode_write_protect is now '1'.
4、查看iSCSI发起程序连接状态,此时的状态为“不活动”
5、尝试点击“连接”按钮显示授权失败。因为该initiator端的iqn不存在target白名单列表,此时target白名单列表为空,所以会提示“授权失败”,磁盘管理器中也不会出现新的磁盘。
3-2 获取Initiator端iqn
不同操作系统iSCSI的发起程序获取iqn的方法不同,此示例仅展示Windows 系统ISCSI发起程序iqn获取方法。
1、打开iSCSI发起程序
2、切换到“配置”选项卡,页面中“发起程序名称”就是iqn地址。也可以在target端按照固定格式指定好特定的iqn,然后再initiator端修改成一致。
3-3配置ISCSI tpg initiator iqn白名单
1、切换到acls目录
/> cd iscsi/iqn.2003-01.org.linux-iscsi.iscsi-svr.x8664:sn.9d2d7bec358d/tpg1/acls /iscsi/iqn.20...58d/tpg1/acls>
2、创建基于initiator iqn白名单,把3-2获取到的iqn加入即可
/iscsi/iqn.20...58d/tpg1/acls> create iqn.1991-05.com.microsoft:tg11 Created Node ACL for iqn.1991-05.com.microsoft:tg11 Created mapped LUN 0. Created mapped LUN 1.
4 测试
4-1.再次点击“连接”按钮可以发现可以正常连接,同时磁盘管理器中也出现新的硬盘
4-2.模拟非白名单设备连接
1、先手动端口iSCSI连接
2、切换到“配置”选项卡,修改“发起程序名称”模拟另一台设备接入
3、重新点击“连接”按钮显示”授权失败”
4-3测试结果
通过上述测试,加入target端白名单的initiator iqn 设备,可以有权挂载磁盘,非授权的initiator iqn设备无权挂载磁盘。和预期一致。
注:此实验为个人理解,仅做个人记录。实验中涉及到的专业名词叫法或整体实验操作,可能存在误差或错误。如和官网不一致请以官网为准。