SolarisTM for ISPsTM utilise SunTM Directory Services pour stocker des informations de composant logiciel et des informations de connexion pour SunTM Internet AdministratorTM et certains services. Ces informations incluent des classes d'objet standard et de nouveaux objets définis supportant les fonctionnalités de Solaris for ISPs.
Ce chapitre présente des informations sur la structure arborescente des informations de Solaris for ISPs, sur la création d'entrées dans l'arborescence, depuis la ligne de commande, et sur les contrôles d'accès requis. Pour plus d'informations sur l'extension de schéma proprement dite, consultez le Chapitre 6.
Sun Directory Services fournit les outils suivants pour utiliser et administrer le répertoire :
L'outil Deja, éditeur de répertoire Java, fournit, ajoute, modifie et supprime des possibilités.
La console d'administration Sun Directory Services offre une administration locale et distante du serveur.
La passerelle Web autorise un accès par navigateur depuis n'importe quel navigateur.
Un jeu complet de programmes de ligne de commande.
Vous trouverez dans les manuels Sun Directory Services, Sun Directory Services 3.1 Administration Guide et Sun Directory Services 3.1 User's Guide, des informations complètes sur le démarrage et l'emploi de ces outils. Ils sont présentés dans le format AnswerBook2 sur le CD-ROM du produit. Les programmes de ligne de commande sont documentés dans des pages de manuel à la section 1 (/opt/SUNWconn/man).
Solaris for ISPs nécessite une structure spécifique dans l'arborescence d'informations de répertoires (DIT), qui est créée pendant l'installation et la configuration. La structure requise est composée de deux contextes de noms, qualifiés d'arborescence OSI (Open Systems Interconnection) et d'arborescence DC (Domain Component). Des parties de ces deux arborescences sont parallèles. Cette structure parallèle simplifie le mappage des noms de domaine d'une requête DNS aux entrées de contenu réelles dans l'arborescence OSI, en passant par l'arborescence DC.
L'arborescence OSI contient les entrées réelles de Solaris for ISPs, ses services de composant, les administrateurs de ses services et les abonnés de ces services. La structure requise est illustrée dans la Figure 5-1.
Dans l'arborescence OSI, l'entrée du domaine sun.com est représentée par l'entrée portant le nom distinctif o=sun,c=us. Cette entrée est qualifiée de domaine racine et représente l'entreprise du client de Solaris for ISPs. Vous spécifiez le nom du domaine racine pendant l'installation des services de répertoire.
Sous le domaine racine, on retrouve quatre entrées organizationalUnit obligatoires :
Administrators contient les entrées des administrateurs SunTM Internet AdministratorTM. Ces entrées sont créées par le produit lors de la création d'administrateurs à l'aide de l'interface utilisateur graphique.
People contient les entrées des abonnés aux services ISP. Vous créez des entrées pour vos clients, sur la ligne de commande ou en utilisant l'outil Deja.
Groups contient des entrées regroupant des entrées d'abonné à des fins de contrôle d'accès. Vous créez des entrées de groupe adaptées à vos besoins, sur la ligne de commande ou à l'aide de l'outil Deja.
Services contient des entrées créées pour des services Solaris for ISPs. Vous devez créer des entrées sous cette unité uniquement lorsque vous intégrez un nouveau service ou que vous effectuez une configuration d'hôte virtuelle spéciale de SunTM Internet FTP ServerTM. Reportez-vous à l'aide en ligne de Sun Internet FTP Server et de Sun Internet Administrator pour plus d'informations sur cette caractéristique.
Les noeuds People, Groups et Services sont requis sous chaque entrée de domaine que vous définissez. Le noeud Administrators existe uniquement sous le domaine racine.
La Figure 5-2 illustre un jeu d'entrées classiques sous chaque unité organisationnelle.
L'entrée organizationalUnit eng est un exemple d'une entrée domain. Elle peut correspondre à un client entreprise de l'ISP ou à quiconque ayant des services d'hébergement de domaine virtuel chez l'ISP. Les domaines doivent avoir deux entrées : une ici dans l'arborescence OSI et une autre dans l'arborescence DC pour le mappage de nom de domaine. Reportez-vous à "Création d'entrées de domaine" pour plus d'informations sur la création de ces deux entrées.
Les domaines, le domaine racine par exemple, nécessitent certaines entrées organizationalUnit. Tel qu'illustré dans la Figure 5-3, les entrées People, Groups et Services sont également requises dans un domaine sous la racine.
Lors de la création d'une entrée de domaine dans l'arborescence OSI, vous devez également créer des entrées pour People, Groups et Services. Lors de la configuration de services pour ce domaine, les entrées de service sont effectuées sous l'unité organisationnelle Services. Les informations d'abonné pour ce domaine forment les entrées ispSubscriber sous l'unité organisationnelle People.
Les entrées Administrator sont effectuées sous le domaine racine dans cette version de Solaris for ISPs. Ces entrées sont créées par Sun Internet Administrator lors de leur spécification par l'intermédiaire de l'interface utilisateur graphique.
L'arborescence DC (composant de domaine) mappe le format de nom de domaine (par exemple sun.com) au nom distinctif de l'entrée correspondante dans l'arborescence OSI. Tel qu'illustré dans la Figure 5-4, la DC est généralement relativement plate et plus simple que l'arborescence OSI.
Dans la Figure 5-4, l'entrée dc=sun,dc=com correspond à l'entrée o=sun,c=us dans l'arborescence OSI. Le domaine eng est mappé ici à la forme de serveur de nom de domaine (DNS) eng.sun.com.
Pour plus de détails sur la création des deux entrées de domaine, reportez-vous à "Création d'entrées de domaine".
Vous trouverez des informations générales sur la création d'entrées de service de répertoire au chapitre 5, "Loading and Maintaining Directory Information," du manuel Sun Directory Services 3.1 Administration Guide. Vous trouverez dans cette section des instructions sur la création des entrées spécifiques requises par Solaris for ISPs.
Pour plus d'informations sur la création d'entrées de répertoire à l'aide de l'outil Deja, reportez-vous à l'aide en ligne de SunTM Internet AdministratorTM.
Sun Directory Services possède les utilitaires de ligne de commande suivants pour créer et modifier les entrées de répertoire :
ldapadd
ldapmodify
ldapdelete
Ces utilitaires de ligne de commande de service de répertoire nécessitent un accès racine. Ils sont entièrement documentés dans les pages de manuel de référence (section 1).
ldapadd et ldapmodify peuvent prendre une entrée de la ligne de commande ou d'un fichier spécifié. Les informations pour une entrée pouvant être relativement longues et complexes, les sections qui suivent décrivent la forme nécessitant un fichier texte.
Dans chaque cas, la création d'une entrée (ou de plusieurs entrées) implique les interventions suivantes :
Ecrire un fichier spécifiant l'entrée ou les entrées à effectuer dans le répertoire. Le format de ce fichier est spécifié dans la page de manuel de référence ldif(4).
Obtenir un accès racine et créer l'entrée à l'aide de ldapadd, spécifiant le fichier contenant les informations de l'entrée.
Dans chaque cas, la forme de la commande ldapadd doit être la suivante :
# ldapadd -D "BindDN" -w password -f file
Où BindDN est le nom distinctif (DN) de la liaison au répertoire avec un accès en écriture à cette partie de l'arborescence de répertoire, et password le mot de passe de la liaison. Remplacez l'option file par le nom du fichier ldif que vous avez créé.
Pour chaque entrée que vous ajoutez dans la ligne de commande, vous créez un fichier de format ldif pour contenir les informations sur l'entrée. Ces fichiers sont de simples fichiers texte avec une ou plusieurs entrées de répertoire, chacune étant séparée par une ligne vierge. Chaque entrée a la structure de l'exemple suivant.
Seuls les attributs obligatoires sont indiqués dans l'exemple. La plupart des classes d'objet ont plusieurs attributs facultatifs pouvant être définis en fonction de votre utilisation particulière de l'entrée.
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
Où
Indique le nom distinctif de l'entrée créée.
Est l'attribut de nom de l'entrée créée. Les attributs de nom commun incluent commonName, organizationalUnit (ou) et domainComponent ( dc).
Contient le nom de domaine (en note point) de l'entrée correspondante dans l'arborescence DC. Pour plus d'informations sur l'interaction entre l'arborescence OSI et l'arborescence DC, reportez-vous à "Structure de répertoires Solaris for ISPs". Pour plus d'informations sur la création des deux entrées de référence croisée d'un domaine, consultez "Création d'entrées de domaine".
Il peut y avoir plusieurs paires attribut:valeur dans cette position, une par ligne.
Est la classe d'objet (type) de l'entrée. Il peut y avoir plusieurs entrées objectClass ; cet exemple en illustre deux.
Pour des informations plus détaillées sur les classes d'objet et les attributs disponibles, reportez-vous au Chapitre 6 de ce guide et au chapitre 8, "Configuring the Directory Schema" du manuel Sun Directory Services 3.1 Administration Guide.
Pour créer un domaine dans le répertoire, vous devez créer deux entrées de domaine parallèles, l'une dans l'arborescence OSI et l'autre dans l'arborescence DC, puis créer les entrées organizationalUnit sous l'entrée de domaine dans l'arborescence OSI.
Pour créer le domaine wcgate1 sous eng.sun.com, procédez comme suit :
Editez un fichier texte (par exemple, domain.ldif) et entrez les données de l'entrée d'arborescence OSI :
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
Sachez que l'attribut associatedDomain de l'entrée contient le nom de l'entrée d'arborescence DC en note point (style DNS).
Ajoutez à domain.ldif les données de l'entrée d'arborescence DC :
dn: dc=wcgate1,dc=eng,dc=sun,dc=com dc: wcgate1 associatedname: ou=wcgate1,ou=eng,o=sun,c=US description: DNS-to-DN Mapping for wcgate1.eng.sun.com labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub objectclass: domain objectclass: labeledURIObject
Sachez que l'attribut associatedName de l'entrée contient le nom distinctif de l'entrée d'arborescence OSI. L'attribut labeledURI contient les mêmes informations (telles que spécifiées dans RFC 2255).
Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle Services requises :
dn: ou=Services,ou=wcgate1,ou=eng,o=sun,c=US ou: Services objectclass: organizationalUnit
Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle People requises :
dn: ou=People,ou=wcgate1,ou=eng,o=sun,c=US ou: People objectclass: organizationalUnit
Ajoutez à domain.ldif les données de l'entrée d'unité organisationnelle Groups requises :
dn: ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US ou: Groups objectclass: organizationalUnit
Enregistrez et fermez domain.ldif.
Obtenez un accès racine et ajoutez les entrées au répertoire avec la commande suivante, en remplaçant le DN et le mot de passe de liaison par les vôtres :
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f domain.ldif
Lorsque votre ldapadd est terminé, le répertoire a l'aspect présenté dans la Figure 5-5.
Il existe plusieurs variétés d'abonnés de Solaris for ISPs :
L'abonné général (de base)
L'abonné qui utilise les services FTP ou Web à hôte virtuel
L'abonné qui a accès aux services par l'intermédiaire d'un serveur RADIUS
L'abonné qui utilise les deux et dont l'entrée de répertoire nécessite à la fois des informations RADIUS et FTP
Dans les sections qui suivent, des instructions sont fournies pour construire l'entrée d'abonné complexe en créant l'entrée simple et en procédant par ajouts dans celle-ci.
Avant de créer des entrées d'abonné, les entrées de domaine et d'unité organisationnelle People doivent exister. Une fois que vous avez créé ces entrées, vous pouvez éditer un fichier texte (par exemple people.ldif) et entrer les données pour l'abonné. L'entrée d'abonné de base a la classe d'objet unique ispSubscriber et quelques attributs obligatoires. Le fichier pour un abonné de base a l'aspect suivant :
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden objectclass: ispSubscriber
Où
Est le nom distinctif de l'entrée d'abonné.
Est l'attribut de nom d'une entrée d'abonné (classe d'objet ispSubscriber). Pour les abonnés et les administrateurs Solaris for ISPs, la valeur de l'attribut commonName prend la forme Prénom Nom (userid).
Est le nom de l'abonné.
Est le nom de connexion de l'abonné.
Est le mot de passe, limité à huit caractères si vous partagez des informations de mot de passe avec des comptes UNIX. Cette valeur est générée avec la méthode de cryptage que vous avez définie dans la console d'administration des services de répertoire.
Est le type de classe d'objet de l'entrée d'abonné.
Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données avec différentes valeurs d'attribut au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, en remplaçant le lien DN et le mot de passe par les vôtres :
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
Les informations requises pour l'hébergement virtuel spécialement configuré avec SunTM Internet FTP ServerTM et SunTM WebServerTM (SWS) ajoutent uniquement trois attributs au fichier de données :
gidnumber: 60001 uidnumber: 60001 ispcontentdirectory: jldoe
Où
Est l'ID de groupe UNIX spécifié pour cet utilisateur dans le domaine à hôte virtuel pour les services FTP et Web.
Est l'ID utilisateur UNIX spécifié pour cet utilisateur dans le domaine hébergé virtuellement pour les services FTP et Web.
Est l'emplacement (par rapport à la racine de document du domaine associé) où se trouve le fichier de contenu de cet abonné.
La définition des valeurs des attributs uidNumber et gidNumber impliquent que les comptes UNIX existants soient correctement configurés pour partager l'accès au domaine FTP virtuel. Reportez-vous à l'aide en ligne de Sun Internet FTP Server pour obtenir des informations sur la définition d'une configuration d'hôte virtuel.
Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, en remplaçant le lien DN et le mot de passe par les vôtres :
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
Si vous avez déjà créé ces entrées, vous pouvez effectuer une opération ldapmodify. Localisez la page de manuel de ldapmodify(1) et suivez ces instructions.
Une entrée pour un abonné ayant accès aux services ISP par l'intermédiaire d'un serveur RADIUS doit supporter une classe d'objet supplémentaire ( remoteUser) et a plusieurs attributs ajoutés aux informations de l'entrée.
La configuration Solaris for ISPs par défaut désigne le domaine racine comme base de recherche pour les entrées d'abonné RADIUS. Si votre configuration est différente, utilisez la console d'administration des services de répertoire pour configurer RADIUS et entrez les valeurs adaptées à votre base de recherche.
Les lignes supplémentaires dans le fichier ldif sont les suivantes :
objectclass: remoteUser authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
Où
Est une classe d'objet obligatoire pour l'abonné accédant aux services à l'aide d'un serveur RADIUS.
Est un suffixe ajouté au nom d'utilisateur de l'abonné pour permettre au serveur RADIUS d'établir une distinction entre les entrées portant le même uid dans différents domaines. Entrez le suffixe approprié pour l'entrée d'utilisateur spécifique.
Indique que le serveur RADIUS doit vérifier la valeur d'attribut authSuffixName avant de sélectionner l'entrée pour authentification.
Indique que le serveur RADIUS doit vérifier la valeur d'attribut userPassword avant de sélectionner l'entrée à authentifier.
Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel qu'indiqué. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.
Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel quel. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.
Si vous utilisez la configuration RADIUS par défaut, entrez cet attribut tel qu'indiqué. La valeur correcte est déterminée par la configuration de votre serveur d'accès réseau.
Demande au serveur RADIUS d'inclure la valeur de l'attribut authServiceProtocol dans son message de réponse.
Demande au serveur RADIUS d'inclure la valeur de l'attribut framedProtocol dans son message de réponse.
Demande au serveur RADIUS d'inclure la valeur de l'attribut framedRouting dans son message de réponse.
Vous pouvez créer n'importe quel nombre d'entrées d'abonné en ajoutant des blocs de données au fichier. Une fois cette opération terminée, enregistrez et fermez people.ldif. Obtenez un accès racine et ajoutez les entrées de l'abonné dans le répertoire avec la commande suivante, remplaçant le DN de liaison et le mot de passe par les vôtres :
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
Si vous avez déjà créé ces entrées, vous pouvez effectuer une opération ldapmodify. Localisez la pagede manuel de ldapmodify(1) et suivez ces instructions.
Le fichier ldif terminé pour un utilisateur complexe a l'aspect suivant :
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden gidnumber: 60001 uidnumber: 60001 objectclass: ispSubscriber objectclass: remoteUser ispcontentdirectory: /home/users/jldoe authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
Avant de pouvoir créer des entrées de groupe, un certain nombre d'entrées doit déjà exister :
Les deux entrées de domaine (arborescences OSI et DC)
L'entrée d'unité organisationnelle Group
Les entrées d'abonné (sous le noeud People) qui deviendront les membres du groupe.
Une fois que vous avez créé ces entrées, vous pouvez démarrer un fichier texte (par exemple, groups.ldif) et entrer les entrées pour le groupe. Un jeu de données typique a l'aspect suivant :
dn: cn=isp-gp1,ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US cn: isp-grp1 objectclass: groupOfNames member: cn=Ed Anchor (anchor),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=April Shower (showers),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=Chili Jones (relleno),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
Où
Est le nom distinctif du groupe à créer.
Est le nom distinctif relatif de l'entrée de groupe.
La classe d'objet groupOfNames distingue ce type d'entrée.
Chaque attribut member prend comme valeur le nom distinctif d'une entrée d'abonné existante.
Vous pouvez créer n'importe quel nombre d'entrées de groupe en ajoutant des données au fichier. Une fois qu'il est terminé, enregistrez et fermez groups.ldif. Obtenez un accès racine et ajoutez les groupes au répertoire avec la commande suivante, en remplaçant le DN de liaison et le mot de passe par les vôtres :
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f groups.ldif
Solaris for ISPs définit un contrôle d'accès pour les services de répertoire, pour garantir un accès approprié par les parties du logiciel qui le nécessitent, tout en assurant la sécurité et en empêchant l'accès par d'autres. Le principe général de ces contrôles d'accès veut que toutes les entités ont des accès en lecture tandis que l'accès en écriture est restreint. Il est très important que vous ne changiez pas les contrôles d'accès existants, car vous pourriez introduire des risques concernant la sécurité ou provoquer le blocage de Solaris for ISPs.
Souvenez-vous que les règles de contrôle d'accès sont tributaires de l'ordre d'utilisation. Lorsque Sun Directory Services procède à des vérification d'accès, la première règle qui s'applique à la requête est employée. Toutes les règles suivantes sont ignorées. Par conséquent, ne changez pas l'ordre des règles dans le fichier. Lors de la création d'une nouvelle règle, veillez à ce qu'elle ne s'applique pas accidentellement à des informations de Solaris for ISPs existantes et annule certaines règles de contrôle d'accès déjà mises en oeuvre.
Le contrôle d'accès est désactivé si vous effectuez une liaison au répertoire comme administrateur.
Généralement, les informations spécifiques de Solaris for ISPs sont stockées dans des entrées prenant en charge des classes d'objet définies dans l'extension de schéma Solaris for ISPs. Chacune de ces classes est nommée en commençant par la chaîne "isp." Toute règle dans le fichier de configuration d'accès qui contient une telle classe d'objet (ou attribut) est probablement une règle Solaris for ISPs et, en tant que telle, est soumise aux modifications. Les règles de contrôle d'accès sont définies dans /etc/opt/SUNWconn/ldap/current/dsserv.acl.conf.
Pour terminer les informations sur les contrôles d'accès Sun Directory Services, reportez-vous au chapitre 1, "Introduction to Directory Concepts," et au chapitre 4, "Configuring a Directory Server," du manuel Sun Directory Services 3.1 Administration Guide.
Les sections qui suivent décrivent le comportement général assuré par les contrôles d'accès Solaris for ISPs. La phrase "a accès" indique qu'une liaison au répertoire avec le DN et le mot de passe de cette entrée donnera la forme d'accès indiquée.
Sun Internet Administrator a besoin des types d'accès suivants pour effectuer son travail :
Il doit créer et supprimer des administrateurs. Par conséquent, Sun Internet Administrator a un accès en écriture à la partie du DIT définie par l'entrée d'unité organisationnelle Administrators.
Il doit être en mesure de changer certains attributs d'administrateur (notamment les attributs userPassword et ispAuthorizedServices).
Il doit être capable de contrôler la création d'entrées de service géré (ispManagedService). Par conséquent, Sun Internet Administrator possède sa propre partie de l'arborescence, sous l'entrée de niveau supérieur SUNWixamc (par exemple, ispVersion=1.0,ou-SUNWixamc,ou-Services,o=sun,c=us).
Il doit créer des entrées de service de niveau supérieur pour les services qu'il enregistre et gère. Par conséquent, Sun Internet Administrator a l'accès et les informations dont il a besoin pour écrire dans cette partie du DIT (par exemple, ou-Services,o=sun,c=us).
Il doit également définir la valeur de l'attribut ispPrivateData protégé sur les entrées ispService. Par conséquent, Sun Internet Administrator a un accès en lecture/écriture à cet attribut des entrées de service existant. En fait, aucune autre entité n'a accès à l'attribut ispPrivateData.
Les divers services Solaris for ISPs doivent enregistrer et accéder à des informations de configuration stockées sous leurs entrées de service (celles situées sous le noeud Services dans les sous-domaines et les domaines virtuels). Par conséquent, chacun a l'accès et les informations qu'il doit écrire pour créer et modifier des entrées dans cette partie du DIT, notamment sa propre entrée de service.
Les utilisateurs (abonnés et administrateurs) ont un accès en écriture à leur propre attribut password, mais ne peuvent pas changer d'autres parties de leur entrée. Cependant, n'importe quel administrateur avec un accès de gestion à Sun Internet Administrator a un accès global et peut changer n'importe quoi.