7. Configuration de l'authentification CHAP

Dans cette partie, on suppose que tous les tests précédents ont été effectués avec succès et que les échanges entre les systèmes target et initiator sont validés.

On s'intéresse maintenant à l'authentification entre ces mêmes systèmes. Pour traiter les questions suivantes, une nouvelle entrée a été utilisée pour le rôle target.

Le mécanisme d'authentification le plus communément utilisé dans le déploiement des connexions iSCSI s'appuie sur CHAP (Challenge-Handshake Authentication Protocol). Il s'agit d'une méthode d'authentification entre deux hôtes pairs sans échange de mot de passe en clair sur le réseau. Cette méthode suppose que les deux hôtes utilisent le même mot de passe.

Q38.

Comment régler les paramètres d'authentification CHAP sur le système target  ?

Comme pour les étapes précédentes, toutes les manipulations se font à partir de l'outil targetcli. Il faut donc consulter la documentation de cet outil à l'adresse Linux-IO : the Linux SCSI Target wiki. Il existe une section Mutual CHAP authentication.

Partant d'une nouvelle configuration, on obtient la liste de paramètres suivante dans laquelle aucun contrôle d'accès n'a été défini.

/iscsi/iqn.20....5208bcd92edd> ls
o- iqn.2003-01.org.linux-iscsi.target.x8664:sn.5208bcd92edd ..[TPGs: 1]
  o- tpg1 .......................................[no-gen-acls, no-auth]
    o- acls ................................................. [ACLs: 0]
    o- luns ................................................. [LUNs: 1]
    | o- lun0 ......... [block/blockvol0 (/dev/vdb) (default_tg_pt_gp)]
    o- portals ........................................... [Portals: 1]
      o- [::0]:3260 .............................................. [OK]

On passe à la création d'une entrée de contrôle d'accès basée sur l'identifiant iqn unique du système initiator.

/iscsi/iqn.20....5208bcd92edd> create iqn.1993-08.org.debian:01:8c6ecf84c11e
/iscsi/iqn.20....5208bcd92edd> ls
o- iqn.2003-01.org.linux-iscsi.target.x8664:sn.5208bcd92edd ..[TPGs: 1]
  o- tpg1 .......................................[no-gen-acls, no-auth]
    o- acls ..................................................[ACLs: 1]
    | o- iqn.1993-08.org.debian:01:8c6ecf84c11e .......[Mapped LUNs: 1]
    |   o- mapped_lun0 .....................[lun0 block/blockvol0 (rw)]
    o- luns ..................................................[LUNs: 1]
    | o- lun0 ..........[block/blockvol0 (/dev/vdb) (default_tg_pt_gp)]
    o- portals ............................................[Portals: 1]
      o- [::0]:3260 ...............................................[OK]

On définit ensuite les paramètres d'authentification pour cette entrée. Comme la méthode CHAP est symétrique, on doit déposer de part et d'autre le secret. On fixe ici les paramètres userid et password.

/iscsi/iqn.20...57c35b07/tpg1> acls/iqn.2015-09.org.debian:01:9d11913c78ac/ set auth userid=SAN-lab-initiator
Parameter userid is now 'SAN-lab-initiator'.
/iscsi/iqn.20...57c35b07/tpg1> acls/iqn.2015-09.org.debian:01:9d11913c78ac/ set auth password=SAN-lab-initiator-53cr3t
Parameter password is now 'SAN-lab-initiator-53cr3t'.

Q39.

Comment régler les paramètres d'authentification CHAP sur le système initiator  ?

Rechercher dans le fichier de configuration principal du rôle initiator les paramètres relatifs à l'authentification.

Le nom d'utilisateur et le mot de passe sont définis dans le fichier /etc/iscsi/iscsid.conf du système initiator.

# *************
# CHAP Settings
# *************

# To enable CHAP authentication set node.session.auth.authmethod
# to CHAP. The default is None.
node.session.auth.authmethod = CHAP

# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = SAN-lab-initiator
node.session.auth.password = SAN-lab-initiator-53cr3t

Le même principe peut être appliqué au mécanisme de découverte en appliquant un couple login/password identique ou non à la suite de ce fichier de configuration.

Une fois la configuration en place, on obtient les résultats suivants lors de la validation.

  • Découverte du nouveau volume réseau :

    $ sudo iscsiadm -m discovery --type sendtargets --portal=[2001:db8:feb2:2:b8ad:ff:feca:fe00]:3260
    [2001:db8:feb2:2:b8ad:ff:feca:fe00]:3260,1 iqn.2003-01.org.linux-iscsi.target.i686:sn.f58f71d5ba26
    192.0.2.12:3260,1 iqn.2003-01.org.linux-iscsi.target.i686:sn.f58f71d5ba26
    [2001:db8:feb2:2:b8ad:ff:feca:fe00]:3260,1 iqn.2003-01.org.linux-iscsi.target.i686:sn.8b7457c35b07
  • Connexion avec authentification CHAP :

    # iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.target.i686:sn.8b7457c35b07 -p 2001:db8:feb2:2:b8ad:ff:feca:fe00 --login
    Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.target.i686:sn.8b7457c35b07, portal: 2001:db8:feb2:2:b8ad:ff:feca:fe00,3260] (multiple)
    Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.target.i686:sn.8b7457c35b07, portal: 2001:db8:feb2:2:b8ad:ff:feca:fe00,3260] successful.
  • Affichage de la session active :

    # iscsiadm -m session
    tcp: [4] [2001:db8:feb2:2:b8ad:ff:feca:fe00]:3260,1 iqn.2003-01.org.linux-iscsi.target.i686:sn.8b7457c35b07 (non-flash)