iSCSI安全之密码认证

要实现iscsi的用户名+密码认证最先要修改的文件就是那个/etc/iet/initiators.allow

1、修改/etc/iet/initiators.allow

[root@Target iet]# vi initiators.allow

ALL ALL

#iqn.2013-09.com.xfzhou.Target:sdb 192.168.10.10

#iqn.2013-09.com.xfzhou.Target:sdc 192.168.10.201

要把之前做的那个IP访问控制给去掉。从这也可以看出IP访问控制和密码认证是不能共存的!


2、配置iscsi-target服务器:

[root@Target iet]# vi ietd.conf

IncomingUser disuser dispass123456

#这里的这个IncomingUser用于对discovery的认证,是一个全局的对所有的客户端都有效。


Target iqn.2013-09.com.xfzhou.Target:sdc

IncomingUser windows windows123456

#由于该IncomingUser配置在Target和Lun之间,所以只对该共享的磁盘、分区有效。

Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz



Target iqn.2013-09.com.xfzhou.Target:sdb

IncomingUser linux linux

Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz



3、配置iscsi-initiator客户端:

[root@file iscsi]# vi iscsid.conf

discovery.sendtargets.auth.authmethod = CHAP

discovery.sendtargets.auth.username = disuser

discovery.sendtargets.auth.password = dispass

#以上是客户端在discovery的时候使用的用户名和密码


node.session.auth.authmethod = CHAP

node.session.auth.username = linux

node.session.auth.password = linux

#这是客户端在登陆


在Linux客户端执行发现操作:

[root@file iscsi]# iscsiadm -m discovery -t sendtargets -p 192.168.10.50

192.168.10.50:3260,1 iqn.2013-09.com.xfzhou.Target:sdc

192.168.10.50:3260,1 iqn.2013-09.com.xfzhou.Target:sdb

[root@file iscsi]#

这里能够看到两块磁盘,说明发现这块的配置是正确的。


重启Linux客户端上的iscsi服务:

[root@file iscsi]# service iscsi restart

Stopping iSCSI daemon:

iscsid dead but pid file exists

[  OK  ]off network shutdown. Starting iSCSI daemon: [  OK  ]

[  OK  ]

Setting up iSCSI targets: Logging in to [iface: default, target: iqn.2013-09.com.xfzhou.Target:sdc, portal: 192.168.10.50,3260]

Logging in to [iface: default, target: iqn.2013-09.com.xfzhou.Target:sdb, portal: 192.168.10.50,3260]

iscsiadm: Could not login to [iface: default, target: iqn.2013-09.com.xfzhou.Target:sdc, portal: 192.168.10.50,3260]:

iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)

Login to [iface: default, target: iqn.2013-09.com.xfzhou.Target:sdb, portal: 192.168.10.50,3260]: successful

iscsiadm: Could not log into all portals. Err 19.

[  OK  ]

[root@file iscsi]#

从上面的信息也可以看出,设置是没有错误的。登陆sdb成功,sdc失败,在预想之中。

同时在LInux客户机上使用fdisk也可以看到新共享过来的磁盘:

[root@file iscsi]# fdisk -l /dev/sdg


Disk /dev/sdg: 10.7 GB, 10737418240 bytes

64 heads, 32 sectors/track, 10240 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes


  Device Boot      Start         End      Blocks   Id  System

/dev/sdg1               1       10240    10485744   83  Linux

[root@file iscsi]#




4、Windows客户端的配置:

首先重新添加一个新的discovery如下:

在这个高级中可以输入discovery的密码如下:

在这里要注意的是,在windows上对这个密码的长度有要求,必须要大于12个字符。其实我的windows的密码策略已经关了,应该不是系统的问题。但是我的linux客户端却是可以使用小于12个字符的密码来登陆的,所以应该是ms的这个软件的问题。如果密码小于12个长度会提示如下:

查看系统日志如下:



当配置好discovery后,就可以在Targets选项卡看到两个共享的磁盘了:

选择那个有权限登陆的磁盘,也就是sdc那个,点击“Log on”,再点“Advanced”,就可以输入log on时的认证信息:


同样这个密码也有长度的要求。最后,可以看到已经连接上了共享的磁盘了。

至此密码认证做完!