使用认证机制保护iSCSI连接安全

2017-03-09 08:13
网络安全和信息化 2017年8期
关键词:客户机磁盘命令

同 FC、DAS、NAS、SAN等 存 储技术相比,iSCSI具有配置简单,使用方便,通用性好,成本低廉等特点,在实际工作得到较为普遍的应用。当搭建了简单实用的iSCSI网络存储后,默认情况下客户端都可以随意的连接和使用iSCSI Target服务器上提供的共享磁盘和分区,这在安全性要求较高的环境中是不允许的。因此,

对上述连接进行认证和授权,是管理iSCSI存储网络不可或缺的手段。例如,让指定的客户端只能访问特定的共享分区等。同其他的网络存储技术相比,iSCSI在安全管理和认证授权方面有独到之处,不仅允许针对特定的IP来设置访问权限,还可以使用账户名和密码的方式进行访问控制。

配置iSCSI存储环境

这里使用iSCSI Target软件在Linux主机上配置iSCSI Target。 执 行“tar-xzvf iscsitarget-x.x.x.x.tar”,“cd iscsi target-x.x.x.x”,“make”,“make install”等命令,来装该软件,其中的“x.x.x.x”为具体版本。执行“service iscsi-target start”命令,启动iSCSI Target服务。执 行“vi /etc/iet/ietd.conf”命令,对其配置文件进行编辑,在其中输入诸如“Target iqn.2016.09.com.xxx.storage.disk2.sys1.xyz”之类的行,其中的“xxx.com”表示具体的域名,该行作用是设置iSCSI Target的名称,注意其名称在局域网中应该是唯一的。

添加诸如“Lun 0 Path=/dev/sdc,Type=fileio,Scs iId=xyz,ScsiSN=xyz”之 类的行,用来设置LUN逻辑单元号,表示将某个磁盘设置为共享存储设备。即块设备号 为 0,映 射的磁盘为“/dev/sdc”可以根据需要进行修改。之后执行“service iscsi-target restart”命令,重启iSCSI Target服务让设置生效。对于Windows客户机来说,其自带了iSCSI发起程序,可以快速连接目标iSCSI Target服务器。Linux客户端可以使用自带的iSCSI Initiator命 令进行连接。如果没有该命令,可以执行“yum install iscsi*”命令进行安装。

使用IP认证,实现安全访问

这里就以具体的实例说明。在某台Linux主机上开启了iSCSI Target服务,其 IP 为 192.168.1.100,提供的共享磁盘为“/dev/sdc”,其容量为 100GB,将该共 享 盘 分 为“/dev/sdc1”和“/dev/sdc2”两个分区,两者容量均为50GB。对于前者来说,分配给IP为192.168.1.101的客户端使用,对于后者来说,分配给IP为192.168.1.102的客户端使用。因为使用了iSCSI Target这款软件来搭建iSCSI网络存储,所以执行“vi /etc/iet/ietd.conf”命令,打开其配置文件,在其中添加“target iqn.2016-09.net.ixdba:sdc1”,“Lun0Path=/dev/sdc1,Type=fileio”,“targetiqn.2016-09.net.ixdba:sdc2”,“Lun0Path=/dev/sdc2,Type=fileio”等内容,其作用是定义两个Target,为其分别分配“/dev/sdc1”和“/dev/sdc2”分区。

执行“vi /etc/iet/initiators.allow” 命令,编辑访问规则文件。该文件的主要作用是定义了客户机访问iSCSI Target服务器的规则,例如在其中添加“iqn.2016-09.net.ixdba:sdc1192.168.1.101”,“iqn.2016-09.net.ixdba:sdc2 192.168.1.102”两行内容。这样,就限定了不同的IP可以访问的目标共享磁盘。执行“service iscsitarget restart”命令,重启iscsi-target服务,为客户端的访问做好准备。之后在IP为192.168.1.101的客户机上执行“/etc/init.d/iscsi restart” 命 令,重启Initiator服务,其作用是重新执行Target发现操作。执行“iscsiadm -m discovery -t sendtargets-p 192.168.1.100”命令,来查看在iSCSI Target服务器上设定了哪些LUN。

在默认情况下,可以显示其划分的所有LUN,因为上面已经对该IP的访问权限进行了控制,因此其只能看 到“iqn.2000-04.net.ixdba:sdc1”的 LUN。 这 里的“iscsiadm”命令是iSCSI Initiator这一客户端工具提供的,其作用是用来管理iSCSI配置数据库文件的。执行“iscsiadm -m node -T xxxxxx -p 192.168.1.100”命令,登录到目标iSCSI Target服务器上。其中的“xxxxxx”为根据上一个命令获得的Target名称。执行“fdisk -l”命令,来查看其可以访问的共享分区信息,包括其标识信息、容量等。之后就可以使用“fdisk”命令,对其进行分区格式化等操作。

除了在Linux客户机上访问以上共享磁盘外,还可以在Windows客户端进行访问,例如某Windows主机 的 IP为 192.168.1.102,在Windows控制面板中运行iSCSI发起程序,在其主界面中的“发现”面板中点击“发现门户”按钮,在打开窗口中输入上述iSCSI Target服务器的IP和端口号,在“目标”栏中输入“192.168.1.100”,点击“快速连接”按钮,就会和目标iSCSI Target服务器进行连接,来获取可用的Target信息,因为根据以上设定,该IP只能获得“/dev/sdc2”分区信息,所以在“以发现的目标”栏中值显示该Target信息,选择该目标Target项,点击“连接”按钮,就可以与其建立连接,在本机磁盘管理窗口中对其进行分区和格式化操作。

使用密码认证机制,实现安全连接

除了将客户端IP和目标iSCSI共享磁盘绑定外,还可以使用账户名和密码检测机制,来管控客户端的访问操作。在iSCSI Target服务器上执行“vi /etc/iet/initiator.allow” 命令,在其中进行合适的修改,例 如 包 含“iqn.2016-0 9.net.ixdba:s d c 1 192.168.1.101”,“iqn.2016-09.net.ixdba:sdc2 192.168.1.102”,“ALL ALL”等行内容,允许客户端查看所有的iSCSI共享磁盘。执 行“vi /etc/iet/ietd.conf”命令,在该配置文件中添加“Incoming authname securelink”行,其作用是当客户端针对iSCSI Target服务器执行发现操作时,所需要输入的账户名和密码,这里的账户名为“authname”,密码为“securelink”。

添 加“Targetiqn.2 0 1 6-0 9.n e t.ixdba:sdc1”,“Incoming authname1 securelink1”,“Lun 0 Path=/dev/sdc1,Type=fileio”行,其作用是当客户机试图连接和使用“/dev/sdc1”共享磁盘时,必须输入的账户名和密码。这里的账户名为“authname1”,密码为“securelink1”。添加“Target iqn.2016-09.net.ixdba:sdc2”,“Incoming authname2 securelink2”,“Lun 0 Path=/dev/sdc2,Type=fileio”行,其作用是当客户机试图连接和使用“/dev/sdc2”共享磁盘时,必须输入的账户名和密码。这里的账户名为“authname2”,密码为“securelink2”。这里的账户名和密码可以跟均需要进行设定,注意,在客户机上必须设置相同的账户名和密码,才可以顺利访问iSCSI Target服务器。

在某Linux客户机(例如IP为192.168.10.101)上执行“vi /etc/iscsi/iscsid.conf”命令,对该配置文件进行编辑,添加“node.session.suth.authmethod= CHAP”行,其作用是在登录iSCSI Target服务器时执行CHAP验证机制。添加“node.session.auth.username = authname”,“node.session.auth.password = securelink”行,其作用是设置登录验证信息,注意其账户名和密码必须域服务器端保持一致。添加“discovery.sendtarget.auth.authmothod = CHAP”行,表示在执行发现操作时,使用CHAP验证机制。 添 加“discovery.sendtarget.auth.username= authuser1”,“discovery.sendtarget.auth.password= securelink1”行,其作用是在执行发现操作时,必须使用账户名为“authname1”,密码为“securelink1”的认证信息进行连接。

之后执行“/etc/init.d/iscsi restart”命令,重启Initiator服务。执行“iscsiadm -m discovery -t sendtargets -p 192.168.1.100”命 令,来 查 看 在iSCSI Target服务器上设定了哪些LUN,因为在iSCSI Target服务器上已经允许查询所有的LUN信息,所以在任何客户机上都可以查看服务器提供的共享磁盘。但是当执行“fdisk -l”命令时,则只能连接到“/dev/sdc1”共享磁盘,因为根据以认证信息配置,该机只能连接和使用该共享磁盘。之后就可使用“fdisk”命令,对其执行分区格式化等操作。

当然,也可以使用Windows自带的iSCSI发起程序,也可以实现安全连接。在Windows控制面板中运行iSCSI发起程序,在其主界面中的“发现”面板中点击“发现门户”按钮,在打开窗口中输入上述iSCSI Target服务器的IP和端口号,点击“高级”按钮,在高级设置窗口中选择“启用CHAP登录”选项,在“名称”栏中输入上述用于查询iSCSI Target服务器的账户名(例如“authname”),在“目标机密”栏中输入与之关联的密码(例 如“securelink”),点击“确定”按钮保存配置信息。

之后打开“目标”面板,在其中的“已发现的目标”栏中显示目标iSCSI Target服务器提供的两个Target项目。选择其中某个项目,点击“连接”按钮,在打开窗口中选择“高级”按钮,在高级设置窗口中选择“启用CHAP登录”项,在“名称”栏中输入上述用于登录iSCSI Target服务器的账户名(例如“authname2”),在“目 标机密”栏中输入与之关联的密码(例如“securelink2”),点击确定按钮保存配置信息。这样,Windows的iSCSI发起程序就顺利连接到目标iSCSI Target指服务器上指定的共享分区。当然,这需要服从以上的设定信息。例如,其不能访问没有对应登录权限的共享磁盘。运行“diskmgmt.msc”程序,在磁盘管理窗口中可以看到该共享分区,之后按照常规方式对其进行分区格式化等操作,就可以在本机上使用该共享分区。

猜你喜欢
客户机磁盘命令
叶腊石聚合成型及其旋转磁盘的制作方法
只听主人的命令
它的好 它的坏 详解动态磁盘
解决Windows磁盘签名冲突
修改磁盘属性
移防命令下达后
这是人民的命令
瘦客户机:安全与便捷的选择
升腾瘦客户机借神码翱翔“云端”
基于Web数据提高访问速度的方法